31136bindex.qxd 5/22/07 8:30 PM Page 349

Index

Note to the Reader: Throughout this index bold- dissolves, 258–265 faced page numbers indicate primary discussions filters, 215–220 of a topic. Italicized page numbers indicate FotoBooth application, 270–277 illustrations. masks, 199–206, 207 Media Player, 152–154 metadata A reading, 160, 161 video duration, 163–164 abstract objects, 58 progressive delivery, 48–49, 50 access control lists (ACLs), 308 streaming delivery, 51–52 access control to streams and recording, 308–309 transitions, 225–230 Accordion components, 132 video snapshots, 239–245 ACLs (access control lists), 308 videoconferencing application, 300–305 (AMF), 187 ActionScript Virtual Machine (AVM2), 65 349 ActionScript 2 (AS2) versions addASCuePoint method, 166–167 ■ vs. AS3, 64–66 addEventListener method INDEX bandwidth checking, 111–114 Component, 332 cue points VideoPlayer, 254 captions, 173, 174, 175 Administration Console, 296 chapter links, 178–180, 178 Adobe DevCenter, 313 dynamic, 171 Align property, 79 reading, 168–169 alpha channels dissolves filters with, 207–208, 208 bitmaps for, 246–254 vs. masks, 193 transitions class, 254–257 transparency, 19–20, 193 filters, 210–215 video settings, 34–35 FotoBooth application, 266–270, 267 alternatives in proposals, 12–13 masks, 193–198, 198–199 AMF (Action Message Format), 187 Media Player Animation Codec setting, 20 structure, 94–98 animHandler method, 195, 205 XML playlist in, 149–151 AnimMask.as file, 200 metadata App.as file reading, 160, 161 AS2, 248–250 video duration, 162–163 AS3, 258–260 progressive delivery, 46–47, 47–48 Application class, 291 streaming delivery, 50–51 applyFilter method, 233 transitions, 221–225 archiving, 127 video snapshots, 235–239, COPYRIGHTED235 arrays MATERIAL videoconferencing application, 298–300 cue points, 165 ActionScript 3 (AS3) versions in ListBoxes, 137–138, 138 vs. AS2, 64–66 pixel data, 232 bandwidth checking, 114–118 ASDT plug-in, 67 cue points aspect ratio captions, 174–176 in frames, 26, 26 chapter links, 180–182 pixels, 32 dynamic, 171–172 assert statements, 103 reading, 169–170 asset files, 126 31136bindex.qxd 5/22/07 8:30 PM Page 350

associative arrays, 165 bookmarks AsyncErrorEvent handlers, 170 cue points, 176–177 attachBitmap method, 232 in interactive video, 134 audio BoxMask.as file, 201 compression, 27, 34 broadcastMessage method, 332 importance, 18 browsers, testing on, 105–106 streaming, 305–306 buffering, video, 109–110 synching, 33 bufferLength property, 88 audiocodecid metadata, 158–159 bufferTime property, 88 audiodatarate metadata, 158 bug handling, 107–108 audiodelay metadata, 158 Bunch, Kenny, 329 autoexposure, 18 buttons, 132, 337–338 autofocus, 18 bytesLoaded property, 88 automatic playing, 79, 142–144, 142, 144 bytesTotal property, 88 autoPlay property, 79 AVM2 (ActionScript Virtual Machine), 65 C B caching with progressive downloads, 44, 55–56 Camera class, 291 back button considerations, 40–41 canSeekToEnd metadata, 158 350 background for transparent videos, 19 Captionate tool, 188, 188–189 ■ bandwidth captions, cue point buffering for, 109–110 AS2, 173, 174, 175 and data rate, 31 AS3, 174–176 INDEX detecting, 110 CBR (constant bit rate) compression, 28 AS2, 111–114 CDNs (content-delivery networks), 53, 119, 120 AS3, 114–118 FVSS, 53 in encoding, 30 hosting, 54 FMS, 289, 307–308 certificates, SSL, 309 smart streaming, 310–311 changeHandler method bark method, 91 FunWithFilters, 219–220 beginBitmapFill method, 232 FunWithMasks, 205–206 BevelFilter filter, 209 FunWithTransitions, 229–230 bit rate chapter links, cue points for, 177 audio, 34 AS2, 178–180, 178 encoding, 27 AS3, 180–182 BitmapData object, 231 Charles utility, 30, 107 dissolve transitions, 246–247 checkDataLoaded function, 143 AS2, 247–254 checklists, wrap-up, 127–128 AS3, 258–265 chooseVideo method, 238, 243 transitions class, 254–257 classes dynamic thumbnails deployment methods in, 324–331 AS2, 235–239, 235 in OOP, 58 AS3, 239–245 Click.TV site, 134, 135 FotoBooth application, 265–266, 265 clickable thumbnails, 132 AS2, 266–270, 267 clickHandler method AS3, 270–277 FLVDissolveTransition, 256 overview, 232–235 FunWithFilters, 214 blogs, FMS, 313 FunWithMasks, 196 BlurFilter filter, 209, 212–213 FunWithTransitions, 224 blurHandler method, FunWithFilters clients AS2, 211 deployment requirements, 316 AS3, 219 FMS classes, 291–292 31136bindex.qxd 5/22/07 8:30 PM Page 351

needs, 2–5 contents, 165 remote shared objects, 290 dynamic ActionScript, 170–172, 172 separation anxiety, 127 NetStream, 168–170 source videos from, 16–17 purpose, 165 clone method, 233 types, 167–168 close method, 88 CuePoint_trace. file, AS2, 168–169 code-based animation libraries, 318 CuePoint_trace_AS3.swf file, 169–170 codecs, 21 CuePoint_trace_comp.swf file ColorMatrixFilter filter, 209, 213–214 AS2, 171 colorMatrixHandler method, FunWithFilters AS3, 171–172 AS2, 211 CuePoints_captions.swf file, 175 AS3, 219 CuePoints_captions_AS3.swf file, 176 ColorTransform filter, 209, 213, 233 cuePoints metadata, 159 colorTransformHandler method, FunWithFilters CuePoints_ns_captions.swf file, 173, 174 AS2, 211 CuePoints_ns_captions_AS3.swf file, 174–175 AS3, 219 CuePoints_playlist.swf file, 178–180, 178 ComboBox components, 132 CuePoints_playlist_AS3.swf file, 180–182 comments in interactive video, 134 cuePoints property, 79 compare method, 233 currentFps property, 88 Component class, 332–334 custom display, 132 compression customizing UI controls, 83–84, 84 351 audio, 27, 34 ■ types, 28 INDEX concrete state functionality, 63, 63 D configure method, 319 connect method, 322 data rate, 27, 30–31 connections day rates in proposals, 11 in deployment, 318–319 debugging, 107–108 to FMS, 293 defining client needs, 2–5 testing speed, 106–107 deinterlacing, 28–29, 29 constant bit rate (CBR) compression, 28 deliverables in wrap-up, 126 content-delivery networks (CDNs), 53, 119, 120 delta frames, 27 FVSS, 53 deployment, Media Player, 315–316 hosting, 54 class methods, 324–331 content updates, 130–131 client requirements, 316 context functionality, 62, 63 Component class, 332–334 Control class, 337 connections, 318–319 Controller.as class, 89 download progress bar, 343 controllers elapsed/total time display, 335–336 FMS interface methods, 320–321 fast-forward/rewind buttons, 337–338 in MVC pattern, 60–62, 60, 62 higher-level framework code, 317–318 controls, customizing, 83–84, 84 interface methods, 320–324 CoordinateSpace.as class, 90 mute/unmute buttons, 336–337 copyChannel method, 233 play/pause button, 339–341 copyPixels method, 233 progressive, 118, 118–120 copyright issues, 55–56 seek bar, 343 Core.as class, 89 streaming, 121–124, 122–124 core package, 89 view components, 331–332 Create Motion Tween option, 225 volume slider, 342–343 cue points, 155–156, 165 wrapup, 343–344 adding, 166–167 design patterns, 59–60 bookmarks, 176–177 MVC, 60–62, 60, 62 captions, 173–176, 174 state, 62–64, 63 chapter links, 177–182, 178 destroy method FLVBitmapThumb, 239, 244 31136bindex.qxd 5/22/07 8:30 PM Page 352

FotoBooth dynamic playlists, 129–130 AS2, 270 content updates, 130–131 AS3, 277 ListBox arrays, 137–138, 138 VideoPlayer, 264 sequential playback, 144–146 destroyListeners method, 332 shuffle playback, 146–147 detection, bandwidth, 110 steps, 131–132, 132–133 AS2, 111–114 XML, 148–154 AS3, 114–118 XML data in ListBoxes, 139–141, 141 development environment for FMS, 287 dynamic thumbnails digital rights management (DRM), 44, 55–56 AS2, 235–239, 235 Digital Video (DV) format, 20 AS3, 239–245 directories automatic playing from, 142–144, 142, 144 FMS, 288–289 E disable method, 317 dispatchEvent method, 254 Eclipse code editor, 67–69, 68 display standards, 20 ECMA-standard-based languages, 65 dispose method, 233 elapsed/total time display, 335–336 dissolve transitions, 246–247 Emacs code editor, 67 AS2 embedding in SWF, 43, 43 encapsulation in OOP, 58 352 bitmaps for, 247–254 transitions class, 254–257 encoding, 15, 21, 29 ■ AS3, 258–265 alpha channel video settings, 34–35 documentation files, 126 audio compression, 34 bandwidth target, 30 INDEX Dog class, 91 doOnEnterFrame method, 339 data rate, 30–31 doOnPress method frame size, 32 Control, 337–338 keyframe intervals, 33–34 ISlider, 342 optimal frame rate, 33 doOnRelease method options, 21–24, 22–23 Control, 337, 339 reference, 26–29, 26, 29 ISlider, 342 standards and formats, 20 download progress bar, 343 tips, 24–25 downloads, progressive, 44–45 video analysis for, 30 AS2, 46–47, 47–48 equity, working for, 12 AS3, 48–49, 50 EventBroadcaster class, 317–318 scripted pseudo-streaming, 184–187, 185–186 events vs. streaming, 42–45, 43 cue points, 167 dragMeHandler method, 195, 205 MediaPlayerModel methods, 330 draw method, 233 expiring caches, 56 DRM (digital rights management), 44, 55–56 Express Install option, 41 dropShadow method, 212 DropShadowFilter filter, 209 dropShadowHandler method, FunWithFilters F AS2, 212 fadeOut method, 252, 263 AS3, 219 fast-forward/rewind buttons, 337–338 duration of videos, metadata for, 159, fast pans and zooms, 18 161–164, 161 fastForward method DV (Digital Video) format, 20 IMediaPlayerController, 321, 339 DVDs MediaPlayerModel, 328 FLVs on, 54–55 FCS (Flash Communication Server), 281–282 source videos on, 17 FDT plug-in, 67, 69, 70 dynamic ActionScript cue points, 170–172, 172 feedback, 40 31136bindex.qxd 5/22/07 8:30 PM Page 353

fees in proposals, 11–12 Flash Professional 8 (FP8) encoder, 21 FFButton method, 338 Import Wizard, 21–22, 22 ffmpeg encoder, 24, 73 Flash Video Streaming Service (FVSS), 45, 53, 284 ffmpeX encoder, 24 FlashDevelop code editor, 67 FHTML framework, 346–347 Flashloaded components, 42 File class, 291, 306 FlashMedia List site, 312 file properties, Sorenson Squeeze, 157 FlashVideoProFilters package, 215–216 file structure, FMS, 288–289 FlashVideoProMasks package, 200–201 fillColor data type, 232 FlashVideoProTrans package, 227 fillRect method, 233 Flex Client ActionScript Debugger tool, 108 filters, 191 FlexBuilder2, 67 alpha channels, 207–208, 208 flexibility for playlists, 131 classes for, 210–220 Flomag, Rick, 184 overview, 208–209 floodFill method, 233 final project walkthrough, 126 flow, 38–42, 39 findCuePoint method, 166 flow charts, 39–40, 39 findNearestCuePoint method, 166 FLV (Flash Live Video) format, 16 findNextCuePointWithName method, 166 FLV MetaData Injector (FLVMDI) utility, 74, 187 Flash 8 Video Encoder, 21 FLV QuickTime Export plug-in, 22, 24 Flash Communication Server (FCS), 281–282 FLV to Video Converter, 55 Flash Debug Player tool, 108 flv2fmpeg4 utility, 73 353 Flash Debugger tool, 108 FLVBitmapThumb.as file ■ Flash Detection Kit, 41 AS2, 235–239, 235 INDEX Flash Live Video (FLV) format, 16 AS3, 239–245 Flash Media Server (FMS), 44, 281–282 FLVBitmapTransition file access control, 308–309 AS2, 247–254 alternatives, 285–287 AS3, 258–265 applications, 283 FLVDissolveTransition.as file, 254–257 bandwidth management, 307–308 FLVMDI (FLV MetaData Injector) utility, 74, 187 client side classes, 291–292 FLVPlayback component connections, 293 AS3, 78 development environment, 287 benefits, 77 file structure, 288–289 for cue points, 170–172 hosting, 53–54, 284–285 customizing, 82–84, 84 load balancing, 308 full-screen mode, 86 operation, 282–283 implementing, 78–80 planning, 283 instantiating and configuring, 80–82, 81 remote shared objects, 290 limitations, 77–78 secure applications, 309 methods, 166–167 server-side data manipulation, 306–307 skins, 82–86, 84 server-side streaming, 308 FLVPlayback Skins folder, 85 server-to-server communication, 307 FLVPlayerBasic class smart bandwidth streaming, 310–311 AS2, 46–47, 50–51 streaming MP3s, 305–306 AS3, 48–49 streams, 289 FLVPlayerBasicBwCheck class tips and tricks, 311–313 AS2, 111–114 videoconferencing application, 293–294 AS3, 115–118 AS2, 298–300 FLVs, creating, 21–24, 22–23 AS3, 300–305 FLVTool2 utility, 73, 187 asset setup, 296–297 FMS. See Flash Media Server (FMS) server-side setup, 294–296 FMS FAQ, 313 Flash Media Streaming Service (FMSS), 121 FMS Resource Center, 313 Flash Player detection, 41 FMSS (Flash Media Streaming Service), 121 31136bindex.qxd 5/22/07 8:30 PM Page 354

FMSWiki site, 313 getRandomVideo function, 147 formats, 16–17 getSound method, 321 FotoBooth application, 265–266, 265 getTopPlayer method, 249 AS2, 266–270, 267 getValue method, 333 AS3, 270–277 getVideoInstance method FotoBooth.as file, 267–270 ImediaPlayerView, 344 frame rate MediaPlayerView.as, 96 optimal, 33 getVolume method setting, 27 IMediaPlayerController, 321 frame size, 26, 26, 32 MediaPlayerModel, 329 framerate metadata, 159 grab method Fridge Magnet application, 290 BoxMask, 201 full-screen mode, 86 FunWithMasks, 205 functionality, 38–42, 39 GradientGlowFilter filter, 209 FunWithFilters.as file Gunesch, Moses, 318 AS2, 210–215 AS3, 215–220 FunWithMasks.as file H AS2, 193–198, 198–199 AS3, 199–206, 207 handleLoadProgress method IMediaPlayerModel, 322 354 FunWithTransitions.as file AS2, 221–225 MediaPlayerModel, 330 ■ AS3, 225–230 handleOnMetaData method, 330 FVSS (Flash Video Streaming Service), 45, 53, 284 handleOnStatus method FLVBitmapThumb, 238, 243–244 INDEX MediaPlayerModel, 330 G handlePosition method IMediaPlayerModel, 322 gaffes, 7–8 MediaPlayerModel, 330 generateFilterRect method, 234 hasNext method, 151 getBytesTotal function, 112 haXeVideo application, 287 getColorBoundsRect method, 234 HD (High-Definition Video) format, 20 getContinuousPlay method, 323 height getMax method, 342 aspect ratio, 26, 26 getMediaDuration method metadata, 159 IMediaPlayerModel, 322 hide method, 333 MediaPlayerModel, 328 hideLogin method, videoconferencing application getMediaPosition method AS2, 298–299 IMediaPlayerController, 321 AS3, 302 MediaPlayerModel, 328 High-Definition Video (HD) format, 20 getMin method, 342 higher-level framework code in deployment, getMPController method, 344 317–318 getMPModel method highest-quality source videos, 16 IMediaPlayerController, 321 hitTest method, 234 ImediaPlayerView, 344 hosting getMPView method, 321 choices, 52–55 getNext method, 151 FMS, 53–54, 284–285 getPixel method, 234 hotFlashVideo extension, 183 getPixel32 method, 234 hotspots, 182–184, 183–184 getPixels method, 234 hourly fees in proposals, 11–12 getPlaylist method, 151 HSlider class, 342–343 getPlayState method, 341 HTTP connections vs. RTMP, 283 getPosition method, 342 31136bindex.qxd 5/22/07 8:30 PM Page 355

I L ifc folder, 90 launching, 118, 126 IISlider interface, 342 progressive deployment, 118, 118–120 IMediaPlayerModel interface, 321–322 soft launches, 108 incoming FMS streams, 289 streaming deployment, 121–124, 122–124 Influxis host, 54, 121–124, 122–124 layout method infoObject, 311 ImediaPlayerView, 344 inheritance in OOP, 58 MediaPlayerView.as, 96 init method, 318–319 length of video metadata, 161–164, 161 App, 258–259 letgo method, 206 Component, 333, 335 libraries, code-based animation, 318 ImediaPlayerView, 344 lighting scenes, 18 MediaPlayer.as, 94 links MediaPlayerView.as, 96 chapter, 177 VideoPlayer, 261–262 AS2, 178–180, 178 initButtons method AS3, 180–182 FLVDissolveTransition, 256 relative, 106 FunWithFilters, 214 ListBoxes FunWithTransitions, 224 simple arrays in, 137–138, 138 initCoordinates method XML data in, 139–141, 141 355 MediaPlayer.as, 94 listenForClicks method, 249, 259 ■ MediaPlayerView.as, 96 live video. See Flash Media Server (FMS) INDEX initDisplays method, 335 load balancing initMedia method, 323 CDNs, 53 initMediaPlayer function, 150, 153, 320 FMS, 308 integrating XML playlist into MVC Player, load method, 253, 264 148–154 loadBitmap method, 234 interactive video, 133–136, 135–136 LoadVars class, 291, 306–307 Interface package, 90 lock method, 234 interfaces deployment methods in, 320–324 description, 91 M interframe (temporal) compression, 28 interlaced video, 28–29, 29 Main.as file IntervalUtils utilities, 329 FLVBitmapThumb.as, 240 interviews for client needs, 4–5 FotoBooth application, 271–274 intraframe (spatial) compression, 28 Media Player, 152–153 ISlider interface, 342–343 main.asc file, 82, 288, 294–295 makeThumbBitmap method FLVBitmapThumb J AS2, 238 AS3, 243 Java Runtime Environment (JRE), 68 FotoBooth jumpcuts in interactive video, 135 AS2, 269 AS3, 276–277 mashups, 135 K masks, 191 classes for, 193–206, 198–199, 207 keyframe intervals, 33–34 overview, 192–193 keyframes media classes for FMS clients, 291 for cue points, 168 MediaPlayer.as class, 90, 94–95, 149–150 description, 27 MediaPlayerController.as class, 89 Kremens, Jim, 76 31136bindex.qxd 5/22/07 8:30 PM Page 356

MediaPlayerModel, 325 N event-based methods, 330 time-based methods, 329 Name property, 165 transport methods, 325–329 National Television System Committee (NTSC) MediaPlayerModel.as class, 89 format, 20 AS2, 151 navigation AS3, 153–154 cue points for, 167–168 MediaPlayerView class, 319–320 testing, 42 MediaPlayerView.as class, 89, 95–98 Nellymoser codec, 304 meetings, scheduling, 127 NetConnection class, 87, 291–292 Menu components, 132 NetConnection Debugger tool, 108 merge method, 234 NetStream class metadata, 155–156 cue points on, 168–170 cue points. See cue points FMS clients, 291 overview, 156–159 NetConnection for, 87–88 reading, 159–164, 161 NetStreamExt.as class, 90 scripted pseudo-streaming, 184–187, 185–186 noise method, 234 third-party tools, 187–188, 188–189 nonpersistent properties, 158 Metadata_duration.swf file nonpersistent remote shared objects, 290 AS2, 162–163 NTSC (National Television System Committee) 356 AS3, 163–164 format, 20 Metadata Injector, 187

■ NTSC-J (National Television System Committee— Metaliq components, 42 Japan) format, 20 methods in OOP, 58

INDEX Microphone class, 291 Model.as class, 89 O Model-View-Controller (MVC) pattern, 60–62, 60, 62 object-oriented programming (OOP), 57 models AS2 vs. AS3 for, 64–66 class methods, 325–330 benefits, 59 interface methods, 321–323 design patterns, 59–64, 60, 62–63 in MVC, 60–62, 60, 62 elements, 57–58 Moock, Colin, 287 offline video, 54–55 MoreMX host, 54 On2 Flix Pro encoder, 22 mouseClickHandler method, 249, 259–260 metadata, 157 MP3s, streaming, 305–306 presets, 25, 25 MPEG-2 files, 55 onAdPlay method, 317 MTASC compiler, 70–73, 71, 73 onConnect method, 324, 344 multiple browser and platform testing, 105–106 onCuePoint method, 168 Multiplication class, 103 CuePoint_trace_AS3.swf, 169–170 mute method CuePoint_trace_comp.swf, 172 IMediaPlayerController, 321 CuePoints_captions_AS3.swf, 176 MediaPlayerModel, 329 CuePoints_ns_captions_AS3.swf, 175 mute/unmute buttons, 336–337 VideoPlayer, 264 MVC (Model-View-Controller) pattern, 60–62, one-pass encoding, 28 60, 62 onEnterFrame method MVC Player, XML playlist integration into, AnimMask, 200 148–154 Metadata_duration.swf, 164 MVCApplication.as class, 89 TransitionMask, 227–228 MVCMediaPlayer.as class, 89 onFastForward method, 323, 344 MVCMediaPlayer framework, 344 onInitMedia method, 324, 344 mx.transitions class, 254–257, 257 onLoadComplete method, 107, 112, 116 onLoadDone method, 112 31136bindex.qxd 5/22/07 8:30 PM Page 357

onLoadProgress method, 324, 343–344 optimal frame rate, 33 onLoadStart method, 112, 116 optional Sorenson Squeeze properties, 158 onMediaEnd method, 324, 344 O’Reilly, James, 76 onMetaData method, 158–160 outgoing FMS streams, 289 CuePoints_playlist_AS3.swf, 181 FLVBitmapThumb, 242 FLVPlayerBasic, 49, 52 P FLVPlayerBasicBwCheck, 115 FotoBooth, 277 packages, 89–90 ImediaPlayerView, 344 PAL (Phase Alternating Line) format, 20 MediaPlayerView.as, 97 PAL-M format, 20 Metadata_duration.swf, 164 paletteMap method, 234 videoconferencing, 301 pans, 18 VideoMC, 202, 216, 226 Parameters property, 165 VideoPlayer, 264 pattern.mvc package, 89 onMute method, 323, 344 pause method onNetStatus method, 301–302 IMediaPlayerController, 321 onPause method MediaPlayerModel, 327 ImediaPlayerView, 344 NetStream, 88 MediaPlayerView.as, 97 perlinNoise method, 234 persistent FMS connections, 282 onPlay method 357 ImediaPlayerView, 344 persistent properties, 157 ■ MediaPlayerView.as, 97 persistent remote shared objects, 290 INDEX onPlayMedia method, 335 Phase Alternating Line (PAL) format, 20 ImediaPlayerView, 344 photobooth application, 265–266, 265 MediaPlayerView.as, 97 AS2, 266–270, 267 onPositionChange method AS3, 270–277 IMediaPlayerView, 324, 344 PHP scripts, 142–144 MediaPlayerView, 336 piracy, 55 onRewind method, 323, 344 pitfalls, anticipating, 6–8 onRollout method, 339 pixelDissolve method, 234, 246 onRollover method, 339 pixels onSetMediaPosition method arrays of, 232 ImediaPlayerView, 344 aspect ratio, 32 MediaPlayerView.as, 97 platform testing, 105–106 onSetVolume method play method ImediaPlayerView, 344 IMediaPlayerController, 321 MediaPlayerView.as, 97 MediaPlayerModel, 327 onStatus method, 107 VideoPlayer, 252, 262–263 ImediaPlayerView, 344 play/pause button, 339–341 MediaPlayerView.as, 97 playback onStatusTriggered property, 88 sequential, 144–146 onStop method shuffle, 146–147 ImediaPlayerView, 344 playerFadeCompleteHandler method, 250, 260 MediaPlayerView.as, 97 Playlist.as class, 90 onSync method, 290, 304 PlayListAutoPlay.fla file, 145–146 onUnload method, 240 PlaylistListBox.fla file, 137–138, 138 onUnMute method, 323, 344 PlaylistListBox_XML.fla, 139–141, 141 OOP (object-oriented programming), 57 playlists, dynamic. See dynamic playlists AS2 vs. AS3 for, 64–66 PlaylistShuffle.fla file, 146–147 benefits, 59 PlaylistUtils.as class, 90 design patterns, 59–64, 60, 62–63 playMedia method elements, 57–58 IMediaPlayerController, 321 open source products, 73–74 MediaPlayerModel, 326–327 31136bindex.qxd 5/22/07 8:30 PM Page 358

playNext method readAccess method, 308–309 IMediaPlayerController, 321 reading metadata, 159–164, 161 MediaPlayerModel.as, 151 real-time data sharing, 290 playPrevious method Real-Time Message Protocol (RTMP), 55, IMediaPlayerController, 321 282–283 MediaPlayerModel.as, 151, 153 Real-Time Messaging Protocol over Playstation Portable (PSP), 55 SSL (RTMPS), 309 playVideo method, FLVPlayerBasicBwCheck recording, access control to, 308–309 AS2, 113–114 red/green/refactor procedure, 102 AS3, 117–118 Red5 project, 285–286 port testers, 313 Red5-minimal project, 286 potential flaws, 6 relative links, 106 predesigned skins, 82 release method, 201 preview property, 79 releases from subjects, 17 pricing in proposals, 11–12 remote shared objects (RSOs), 288, 290, 311 producing videos, 17–18 removeASCuePoint method, 166 “programming to the interface”, 320 removeEventListener method progress bars, 343 Component, 332 progressive delivery and downloads VideoPlayer, 254 AS2, 46–47, 47–48 resetFilters method, FunWithFilters 358 AS3, 48–49, 50 AS2, 211 scripted pseudo-streaming, 184–187, 185–186 AS3, 218 ■ vs. streaming, 42–45, 43 resetMasks method progressive deployment, 119, 119–121 FunWithMasks

INDEX project fees in proposals, 12 AS2, 194–195 project steps, 1 AS3, 204 defining client needs, 2–5 FunWithTransitions, 223 pitfall anticipation, 6–8 resetMetaData method, 322 proposals, 8–12, 9–10 rewind method solutions, 5–6 IMediaPlayerController, 321 wrap-up, 124–128 MediaPlayerModel, 328 properties Richter, Stefan, 184 OOP, 58 Riva Encoder, 24 Sorenson Squeeze, 22–24, 23, 25 RSOs (remote shared objects), 288, 290, 311 proposals RTMP (Real-Time Message Protocol), 55, guidelines in, 8–10, 9–10 282–283 pricing in, 11–12 RTMPS (Real-Time Messaging Protocol Proxus components, 42 over SSL), 309 Proxy.as class, 90 pseudo-streaming, 184–187, 185–186 PSP (Playstation Portable), 55 S publishing choices, 52–55 sample rate in audio, 27 Sanders, Bill, 64 Q Savage, Steve, 184 saving quality assurance (QA), 105 bitmap data, 232 working file versions, 105 scale method, 270 R scaleMode property, 80 scaling UI components, 83 radio button groups, 132 scheduling meetings, 127 random videos from playlists, 146–147 scratch method, 91 rates in proposals, 11 scripted pseudo-streaming (SPS), 184–187, read_dir_contents. file, 142–144 185–186 31136bindex.qxd 5/22/07 8:30 PM Page 359

scroll method, 234 setVolume method scrubbing IMediaPlayerController, 321 limitations, 33 MediaPlayerModel, 328–329 streaming, 44 shared objects, remote, 288, 290, 311 SD (Standard Definition Video) format, 20 SharedObject class, 292 SDP (state design pattern), 62–64, 63 show method, 333 search engines, metadata for, 156 shuffle playback, 146–147 SECAM (Sequential Color and Memory) simple arrays in ListBoxes, 137–138, 138 format, 20 simple buttons, 132 secure FMS applications, 309 simplicity, 6, 42 Secure Sockets Layer (SSL), 55, 309 Simulate Download feature, 107 security through obscurity, 55 sitUp method, 91 seek bar, 343 skin property, 80 seek method, 88 skinAutoHide property, 80 seekToNavCuePoint method, 166 skinBackgroundAlpha property, 80 seekToNextNavCuePoint method, 166 skinBackgroundColor property, 80 seekToPrevNavCuePoint method, 166 skins separation anxiety, 127 FLVPlayback component, 82–86, 84 Sequential Color and Memory (SECAM) video players, 98–99, 98 format, 20 sliders, 337, 342–343 sequential playback, 144–146 smart bandwidth streaming, 310–311 359 Server-Side ActionScript (SSAS), 288, 311 snapshots ■ Server. file, 312 AS2, 235–239, 235 INDEX servers. See Flash Media Server (FMS) AS3, 239–245 service providers, 284 FotoBooth application, 265–266, 265 setAdPlaying method, 324, 344 AS2, 266–270, 267 setBandwidthLimit method, 308 AS3, 270–277 setBufferTime method, 88 from webcams, 278–279, 279 setContinuousPlay method, 323 soft launches, 108 setFLVCuePointEnabled method, 166 solutions, determining, 5–6 setInterval method, 317 Sorenson Squeeze encoder setMask method, 195 metadata in, 157–158 setMax method, 342 settings, 22–24, 23, 25 setMediaPosition method sortData method, 182 IMediaPlayerController, 321 sortValues method, 179 MediaPlayerModel, 328 source property, 79 setMin method, 342 source videos from clients, 16–17 setPixel method, 234 spaghetti code, 59 setPixel32 method, 234 Spark codec, 304 setPixels method, 234 spatial (intraframe) compression, 28 setPlayState method, 341 spec sheets, 125 setPosition method speed ISlider, 342 FMS, 312 seek bar, 343 testing, 106–107 setSound model, 321 SPS (scripted pseudo-streaming), 184–187, setupLogin method, 302 185–186 setupVideo method SSAS (Server-Side ActionScript), 288, 311 AS2, 299–300 SSL (Secure Sockets Layer), 55, 309 AS3, 303–304 Standard Definition Video (SD) format, 20 setValue method standards, video, 20 Component, 333 startInterval method, FotoBooth ISlider, 343 AS2, 269 setVideoInstance method AS3, 276 ImediaPlayerView, 344 startPositionInterval method, 329 MediaPlayerView.as, 96 startProgressInterval method, 329 31136bindex.qxd 5/22/07 8:30 PM Page 360

startup ventures, 12 test-driven development vs. testing while startVideo method, 226 coding, 102–104 startWipe method, 227–228 usability, 40, 108 startXInterval method, 329 versions, 106 state design pattern (SDP), 62–64, 63 TestMultiplication class, 103 state functionality, 63, 63 Third-Generation Platform (3GP) format, 55 stop method third-party metadata tools, 187–188, 188–189 IMediaPlayerController, 321 threshold method, 234 MediaPlayerModel, 327 thumbnails stopPositionInterval method, 329 clickable, 132 stopProgressInterval method, 329 dynamic stopVideo method, 226 AS2, 235–239, 235 stopWipe method, 227–228 AS3, 239–245 stopXInterval method, 329 options for, 245 storage and retrieval of FMS data, 290 time-based methods, 329 storyboards, 17 time property Stream class, 292 cue points, 165 streaming delivery in NetStream, 88 AS2, 50–51 timerCompleteHandler method, 263 AS3, 51–52 timerHandler method, 253, 263–264 360 MP3s, 305–306 TiVo, 134 vs. progressive, 42–45, 43 toggle method ■ scripted pseudo-streaming, 184–187, 185–186 IMediaPlayerController, 321 streaming deployment, 121–124, 122–124 MediaPlayerModel, 326

INDEX streams togglePlayState method, 341 access control to, 308–309 tools FMS, 289 open source, 73–74 string tokens, 308–309 third-party metadata, 187–188, 188–189 strokeHandler method, 194, 204 toString method, 97 StrokeMask.as file, 199–200 traceObject method suffixes, code with, 292 CuePoints_playlist.swf, 179–180 surveys, sample questions, 3–4 CuePoints_playlist_AS3.swf, 181 swapDepthsWith method, 252 TransitionMask.as file, 227–228 SWF, embedding in, 43, 43 transitions, 220–221, 221 synching audio, 33 classes for, 221–230 dissolve, 246–247 AS2, 247–254 T AS3, 258–265 transitions class, 254–257 tags in interactive video, 134 in state design pattern, 63 takeSnapshots method, FotoBooth transparent videos, 19–20 AS2, 270 transport methods, 325–329 AS3, 276–277 triggers in state design pattern, 63, 63 target players, AS2 vs. AS3, 65 tripods, 18 temporal (interframe) compression, 28 two-pass encoding, 28 test-driven development (TDD), 102–104 Type property, 165 test_playlist.xml file, 148–149 testConnection method, 111 testing, 40, 102 U bug identification in, 107–108 connection speeds, 106–107 ui.component.mediaPlayer package, 89 limitations, 104 ui.component.mediaPlayer.playlist package, 90 on multiple browsers and platforms, 105–106 ui.util class, 90 navigation, 42 Unity 2 application, 287 for quality assurance, 105 unlock method, 234 31136bindex.qxd 5/22/07 8:30 PM Page 361

unMute method FotoBooth application, 265–266, 265 IMediaPlayerController, 321 AS2, 266–270, 267 MediaPlayerModel, 329 AS3, 270–277 updateDuration function from webcams, 278–279, 279 AS2, 162 videocodecid metadata, 159 AS3, 163 videoconferencing application, 293–294 updates, content, 130–131 AS2, 298–300 usability tests, 40, 108 AS3, 300–305 user interface (UI) asset setup, 296–297 components, 42 server-side setup, 294–296 customizing controls, 83–84, 84 videodatarate metadata, 159 util package, 90 VideoMC.as file utilities, open source, 73–74 FunWithFilters, 215–217 Uvault host, 54 FunWithMasks, 201–203 FunWithTransitions, 225–227 VideoPlayer.as file V As2, 250–254 AS3, 260–265 valueOf method, 112 videos variable bit rate (VBR) compression, 24, 28 producing, 17–18 vector video format, 24, 25 transparent, 19–20 361 Veotag Player, 134, 134 vidOneHandler method, FunWithTransitions ■ versions AS2, 222 INDEX detecting, 41 AS3, 229 testing, 106 vidPlay method working files, saving, 105 FLVDissolveTransition, 256 vhost.xml file, 311 FunWithTransitions vidAnimMask method, 195 AS2, 223–224 vidBlur method, FunWithFilters AS3, 229 AS2, 212 vidShow method AS3, 218 FLVDissolveTransition, 255–256 vidColorMatrix method, FunWithFilters FunWithTransitions AS2, 213 AS2, 223 AS3, 218 AS3, 229 vidColorTransform method, FunWithFilters vidTwoHandler method, FunWithTransitions AS2, 213 AS2, 222 AS3, 218 AS3, 229 vidCompleted function, 145, 147 View.as class, 89 vidDragMeMask method, 195–196 views vidDropShadow method, 219 class methods, 331 video interface methods, 323–324 buffering, 109–110 in MVC, 60–62, 60, 62 formats, 20 volume property, 80 interactive, 133–136, 135–136 volume slider, 342–343 standards, 20 VP6 codec, 22, 304 video players, 75–76 code, 92–98 components for. See FLVPlayback component W creating, 86 skins for, 98–99, 98 watermarks, 55 structure, 89–92, 91–93 webcams video snapshots FMS for. See Flash Media Server (FMS) AS2, 235–239, 235 snapshots from, 278–279, 279 AS3, 239–245 WebService class, 292 widescreen video aspect ratio, 26, 26 31136bindex.qxd 5/22/07 8:30 PM Page 362

width X aspect ratio, 26, 26 metadata, 159 XCode code editor, 67 work environment, 66–67 XML Eclipse installation, 68–69, 68 for AS3, 65 FDT installation, 69, 70 ListBox data, 139–141, 141 MTASC configuration, 70–73, 71, 73 playlist integration into MVC Player, 148–154 working file versions, saving, 105 XML class, 292, 306–307 Wowza Media Server Pro, 286 xmlLoaded function, 140 wrap-up, 124–128 XMLSocket class, 292, 307 writeAccess method, 308–309 XMLStreams class, 18, 292, 307

362 ■ INDEX