advanced Flex Application Development Building Rich Media X phần 10 pdf

54 174 0
advanced Flex Application Development Building Rich Media X phần 10 pdf

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

8962CH17.qxd 11/7/07 10:55 AM Page 439 SEARCH ENGINE OPTIMIZATION FOR FLEX The preceding code is a pure XML representation of the example HTML content First, I have my XML declaration specifying my version and encoding choices Next, I load or attach an XSL style sheet to my content (more on that in a minute) After the style sheet is the root node, , which is where I start defining the content To keep it simple and relative, I’m using the same tags that I would if coding HTML The tag contains all the data that I want to appear in the of the HTML page: title plus description and keywords tags Following that is a series of tags Think of these as the HTML body This is the data that will be rendered inside the Flex application Now, back to the style sheet Here’s the code for that: Flex Directory // /* hide from ie on mac \*/ html { height: 100%; overflow: hidden; } #flexcontent { height: 100%; } /* end hide */ body { height: 100%; 439 8962CH17.qxd 11/7/07 10:55 AM Page 440 CHAPTER 17 margin: 0; padding: 0; background-color: #191919; } This style sheet instructs browsers on how to render the XML data model Notice the JavaScript in this XSL because that is what takes care of outputting the Flex application, as well as passing in a FlashVar path to the data model of the application I activate the writeView() method following the onLoad() event of the element Inside that method I use SWFObject to render the application SWFObject’s addVariable() method passes in the URL of our data model (XML) to Flex for processing Using this method, the browser will render the Flex, but search engine spiders don’t even know or care about it They get what they want, just the content, which should already be cached Summary In this chapter, I talked about SEO: what it is, its importance to Rich Internet Application developers, and some of the techniques that Flex developers can use to achieve this often-elusive goal Armed with these kinds of tools, there’s no reason why the quantity and quality of the search traffic to your Flex applications wouldn’t improve Now that you’ve got more traffic coming in, you’ll see how you can pimp out your front end with an ActionScript audio visualizer in the next chapter 440 8962CH17.qxd 11/7/07 10:55 AM Page 441 8962CH18.qxd 11/7/07 10:59 AM Page 442 8962CH18.qxd 11/7/07 10:59 AM Page 443 Chapter 18 BUILDING AN AUDIO VISUALIZER IN FLEX By Hasan Otuome Prior to Flash Player 9, Flash developers had to rely on third-party applications to create equalizer-type displays or audio visualizers Now, thanks to improvements to the ActionScript language, you can create these experience enhancers natively Combine that with the relative ease of use of the Flex framework, and you can come up with some pretty amazing visualizations with minimal effort But before getting into exactly how to create one, I’ll show you how the landscape has changed from ActionScript to ActionScript In addition, this chapter introduces you to the SoundMixer class and the new ByteArray class, and discusses design planning and implementation AS2 vs AS3 Before ActionScript 3, if you wanted or needed to include an audio visualizer in your Flash app, you had to use something like FlashAmp Pro, which examined your audio file and printed an array of amplitude values to a text file that you would then import into your FLA and use the values to animate your equalizer (EQ) movie clips Figure 18-1 shows an example output file 443 8962CH18.qxd 11/7/07 10:59 AM Page 444 CHAPTER 18 Figure 18-1 Sample FlashAmp Pro output file If you wanted a visualizer that actually responded to the audio spectrum of a track, this was the only way Although this method works, it is not the most streamlined, as you have to scan and create a peak file for each MP3, and then some ActionScript coding to actually read these values on the fly and animate your clips accordingly Following is a basic example of the process of creating an audio visualizer in AS2 using Flash Start off by creating a new Flash document and set the frame rate to 24 frames per second Next, create a simple EQ band like the one in Figure 18-2 Figure 18-2 Basic EQ-band graphic 444 8962CH18.qxd 11/7/07 10:59 AM Page 445 BUILDING AN AUDIO VISUALIZER IN FLEX After you’ve created your EQ graphic, convert it to a movie clip and start laying duplicates out on the stage until you have 16 of them like in Figure 18-3 Figure 18-3 16-band EQ Once you’ve completed the EQ layout, give all instances names like s0, s1, and so on until all clips have instance names After the naming phase, you can open your Actions panel by hitting Option+F9 (Mac) or Alt+F9 (Windows) Here you’ll simply be including a reference to an external ActionScript file that you’ll create in a minute So, make sure that Layer is selected, and then insert an include directive into your Actions panel: #include flashamp.as Now, in your favorite text editor, create a new text file and save it as flashamp.as This is where all the ActionScript magic will happen Note that the use of an external ActionScript file is completely optional The code you are about to write can just as easily be inserted into your Actions panel inside of the Flash IDE As a matter of habit, I always start off my scripts with a variable declarations section This serves as my dictionary that I can quickly reference as the code continually grows So, the first few lines of our external script file are dedicated to just that purpose var var var var var var var var var var var var var i:Number; j:Number; index:Number; tl:MovieClip = this; alb:Number = 7860001; fps:Number = 24; numBands:Number = 16; titles:Array = new Array(); tracks:Array = new Array(); muzak:XML = new XML(); spectrumInt:Number; spectrumUpdateInt:Number; spectrumArray:Array = new Array(); 445 8962CH18.qxd 11/7/07 10:59 AM Page 446 CHAPTER 18 Here’s a brief description of what these variables do: The first two are counter variables to be used later on in some looping construct index is a counter variable for stepping through the XML playlist tl is a reference to the main timeline alb is a placeholder for the currently loaded album’s ID fps is the frame rate of the SWF numBands is the number of EQ bands you’re dealing with titles will hold all the song titles for the playlist tracks will hold all the URLs for the playlist muzak will be the name for our XML object spectrumInt will be used as the interval spectrumUpdateInt will serve as the ID for in the setInterval() function that Next, create a new Sound object for the MP3 you’re going to load, and define what you want to happen when the song has loaded var snd:Sound = new Sound(); snd.onLoad = function(){ snd.setVolume(50); snd.start(0, 1); } There’s nothing fancy here You’re loading the song, cutting the volume in half so you don’t blow any speakers, and starting playback The next dilemma comes from how you process that spectrum data that FlashAmp Pro created for you If you look at Figure 18-1 again, notice the double brackets after sv= This means that FlashAmp Pro is outputting those spectrum values as a multidimensional array or arrays inside of an array So, each EQ band has an array of values representative of that bandwidth’s activity at a given point of the song It’s these values that you’ll use to animate your movie clips, but first you have to get the values into Flash in a format that Flash can use Enter the str2array function This utility will parse that text file with the spectrum values and return an array formatted for use in your visualizer String.prototype.str2array = function(char){ var spectrumValues:Array = this.split(" ").join("").split(char); var spectrumIndex:Number = 0; while(spectrumIndex < spectrumValues.length){ spectrumValues[spectrumIndex] = spectrumValues[spectrumIndex].split(char.split(",")[0]).join("") split(char.split(",")[1]).join("").split(","); spectrumIndex++; } return(spectrumValues); } That takes care of one of the hardest parts of the whole process Now, you need to zero out all the EQ band clips This gives your animation that home stereo quality 446 8962CH18.qxd 11/7/07 10:59 AM Page 447 BUILDING AN AUDIO VISUALIZER IN FLEX for(i=0, i < numBands; i++){ setProperty("tl.s"+i, _yscale, 0); } Here you use the global function setProperty(target:Object, parameter:Object, expression:Object) to change the _yscale of all your EQ clips from their defaults to Now they will be hidden until audio playback begins Next, you need to put the pieces in place to actually load the spectrum data For this, the LoadVars object is perfect Define a new LoadVars and set up a callback function for the onLoad event of the LoadVars like the following: var spectrumLV:LoadVars = new LoadVars(); spectrumLV.onLoad = function(success){ if(success){ sv = this.sv.str2array("],["); return(sv); } else { trace("Error loading/parsing data"); } } With your “spectrum reader” set up, you can now focus on loading the XML playlist muzak.ignoreWhite = true; muzak.onLoad = getTrax; muzak.load("playlist-7860001.xml"); You want to ignore any whitespace in the XML file and execute the getTrax() function once the file has been loaded getTrax() is a key function, as it builds the playlist, loads the first track, loads the spectrum data for that track, and starts the spectrum animation function getTrax():Void{ var trax:Array = this.firstChild.childNodes; for(i=0; i < trax.length; i++){ titles.push(trax[i].attributes.lbl); tracks.push(trax[i].attributes.src); } index=0; snd.loadSound(tracks[0]); file = alb+"-"+index+".txt"; spectrumLV.load(file); setStatus(); } You see the last line of the getTrax() function makes a call to the setStatus() function This function will set the initial positions for the EQ clips and set an interval by which to update the EQ display with new spectrum data function setStatus(){ spectrumInt = Math.floor(snd.position/1000*fps); spectrumUpdateInt = setInterval(updateSV, spectrumInt, snd); } 447 8962CH18.qxd 11/7/07 10:59 AM Page 448 CHAPTER 18 So, you use spectrumInt to figure out the frequency or how often you want the animation to be updated Next, you tell Flash that you want to call the updateSV() function every spectrumInt and you’re passing your Sound, snd, as an optional parameter to updateSV() The updateSV() function will take care of the actual clip animations by reading the spectrumArray and updating the corresponding _yscale property of each clip based on the current spectrum value multiplied by the volume to account for user-initiated volume adjustments function updateSV(){ var spectrumPos:Number = Math.floor(snd.position/1000*fps); vol = snd.getVolume()/100; for(i=0; i < numBands; i++){ setProperty("tl.s"+i, _yscale, spectrumArray[spectrumPos][i]*vol); } } Now, that wasn’t extremely painful, but it wasn’t exactly painless either Thanks to the advancements made to the ActionScript language and the new ActionScript Virtual Machine in Flash Player 9, you can bypass some of these steps and still produce some really cool user experiences The first improvement worth exploring is the new SoundMixer class Introducing the SoundMixer The SoundMixer class, found in the flash.media package, contains static properties and methods for global sound control in a SWF file The SoundMixer class controls embedded streaming sounds in a SWF; it does not control dynamically created Sound objects or Sound objects created in ActionScript It’s a top-level class inheriting directly from Object, and it has a few properties and methods that you’ll be tapping into to build your Flex visualizer The most important method of the SoundMixer class is computeSpectrum(outputArray:ByteArray, FFTMode:Boolean, stretchFactor:int) What this method does is it takes a snapshot of the current sound wave and places it into the specified ByteArray object This process is very similar to what FlashAmp Pro does when it creates that text file for you Here, you’re able to keep it all in-house The computed values are formatted as normalized floating-point values that range from –1.0 to 1.0 and are stuffed into the outputArray parameter, a ByteArray object that holds the values associated with the sound The size of this ByteArray object is fixed at 512 floating-point values, with the first 256 representing the left channel of audio and the second 256 values representing the right channel FFTMode is a Boolean value indicating whether a Fourier transformation is performed on the sound data first A Fourier transformation, named after French mathematician and physicist Joseph Fourier, is a mathematical operation where you break something (technically referred to as the function) down into a series of related elements (aka the components) A good example is a musical chord (function) and the individual notes that make up the chord (components) Setting the FFTMode parameter to true causes the method to return a frequency spectrum instead of the raw sound wave In the resulting frequency spectrum, low frequencies are represented on the left, and high frequencies are on the right The stretchFactor parameter deals with the resolution of the sound samples The default is 0, which equates to data being sampled at 44.1 kHz A value of cuts that in half, reducing it to 22.05 kHz and so on 448 8962Index.qxd 11/12/07 3:30 PM Page 478 INDEX content distribution networks (CDNs), 36, 295 content integrity protection, 414 content management framework (CMF), 341 content management systems (CMS), 320, 337–343 Drupal modules, 338–343 Services module, 341–343 Views module, 340–342 content_type_rmx_event table, 389 _continueTemplateLoad( ) method, 254 control panel interfaces event calendars, 87–89 jobs boards, 83–85 control panels, 70–73 DataGrids, 72–73 drag and drop, 73 filters, 73 network versus group, 89–92 saving data, 70–72 tabs, 72 trees, 73 Controller class, 238, 239–240, 252 controls namespace, 99 controls, video, 274–278 Pause/Play button, 274–275 playlist, 287–294 buttons, 291–293 restricting during ad playback, 293–294 RMX, 285–286 Stop button, 276–277 volume control, 277–278 Copy library to deployment path option, 425 Craigslist, 79 Create a new account button, 323 Create content menu, Navigation menu block, 341 createEvent( ) method, 379, 383 creationComplete attribute, 404 creationComplete event, 123, 126, 136, 140, 142, 272, 281, 311, 360, 452 creator tagging, 29 CSS See Cascading Style Sheets (CSS) cue points, 265–266 currentTarget property, 106 currentTime Date object, 273 CursorManager.setBusyCursor( ) method, 256 customizing Drupal, 332–334 CVS, 96 D DART Motif Flash-in-Flash, 301 Data class, 170 data property, 365, 379 data rate, 263 data rate (bitrate), 263, 264–265 478 data sources, 145–147 databases, 146 overview, 145 XML, 147 data transfer object (DTO), 240 data transfer objects (DTOs), 102–105, 197–199, 344–348, 383 event calendar, 384–385 setting up, 198–199 use, 197–198 database administrator (DBA), 146 databases design, 97 MySQL, 146 overview, 146 dataChanged event, 365 DataGrids, 72–73, 85, 89 dataProvider properties, 251 dataProvider variable, 383 Date object, 273 DateFormatter object, 273 dating web sites, 371 DBA (database administrator), 146 dbc class, 170 debug compiler argument, 420 deep linking, 437–438, 467–469 Delete button, 84–85 deleting events, 375 description tag, 430, 439 description property, 180 subelement, 158 design/development tools, 36–38 Adobe Flex Builder, 37 Adobe Illustrator, 36 Firefox plug-ins, 37–38 Charles Web Debugging Proxy, 38 Live HTTP Headers, 37 Web Developer Toolbar, 38 Fireworks, 36 Flash, 36 Flex-Ajax Bridge (FABridge), 37 OmniGraffle Professional, 37 designer/developer workflow, 457–469 code enhancements, 461–465 class outlines, 464 code search feature, 464 compilers, 465 multiple SDK support, 465 Profiler, 465 refactoring feature, 461 component/SDK enhancements, 467–469 CSS outlines, 459 Skin Importer, 458 smaller SWFs, 469 8962Index.qxd 11/12/07 3:30 PM Page 479 INDEX designs, 61 details pane, 365–367 development, 61–66, 95–111 designs, 61 planning, 97–110 data transfer objects, 102–105 database design, 97 main application class, 100–102 method naming, 105–106 namespaces, 97–99 new project template, 99–100 preparing code for documentation, 107–110 project structure, 97–99 source control, 106 variable naming, 105–106 release, 64–66 setting up, 95–97 Eclipse plug-ins, 96–97 Flex Builder, 96 technical specifications, 62 testing, 63–64 DHTML/CS, direct linking, 66 Director, display property, 229 displayAsPassword property, 207 DisplayObject property, 118 tags, 117, 230 documentation, preparing code for, 107–110 DoubleClick, 300 doValidation( ) method, 217 download progress bar, 279–280 downSkin property, 135 drag and drop, 73 drawEQ( ) method, 454 Drop Shadows tab, 137 dropShadowEnabled property, 131 Drupal, 34 Aggregator module, 327–331 Blog API module, 332 Blog module, 332 connecting to services, 350–354 customizing, 332–334 installing, 321–326 modules, 319, 338–343 Services module, 341–343 Views module, 340–342 drupal-5.1 folder, 321 dto folder, 100 dto package, 102 DTOs See data transfer objects (DTOs) Dublin Core tag, 431 dur attribute, 395 E E! Entertainment, Eclipse plug-ins PHPEclipse, 97 Subclipse, 96–97 EdgeCast, 36 Edit button, 84–85 _editCloseHandler( ) method, 254 _editTemplateHandler( ) method, 256 else clause, 275 tag, 227 e-mail addresses, confirming, 215–220 eMail class, 149, 257 Email field, 204 e-mail, sharing by, 148–152 EmailDTO object, 151 EmailValidator, 211–212 Embed directive, 286 Embed metadata tag, 123–124, 125 tag, 131, 153, 432 embedding, 30 video, 152–154 with JavaScript, 152–153 overview, 152 with XHTML, 153–154 Enabled check, 137 tag, 158, 162 endHour property, 383, 385 endMinute DTO property, 383 endMinute property, 385 endTime property, 383, 385 ENTER_FRAME event, 452 Entire RMX Network radio button, 86 eq variable, 452 eqBytes variable, 455 equalizer (EQ), 443 eqX variable, 453 eqY variable, 453 event calendar, 371–389 back-end integration, 386–389 dating sites (Web 2.0 style), 371 DTO, 384–385 events creating, 374 deleting, 375 filtering, 372–374 sharing, 374 updating, 375 viewing, 372 interface, 375–384 overview, 371 event calendars, 85–89 control panel interfaces, 87–89 site interfaces, 86–87 479 8962Index.qxd 11/12/07 3:30 PM Page 480 INDEX Event class, 348–350 EVENT_SERVICED event, 383 eventGroupId property, 379 events creating, 374 deleting, 375 filtering, 372–374 sharing, 374 updating, 375 viewing, 372 events folder, 100 events_service_create database, 386 Events.as class, 375 events.create database, 386 EventsEvent class, 383 eventVenue property, 383 expanded state, 471 Extension Manager, 49 extensions, XML, 159–161 External option, 422 ExternalInterface class, 307, 315 Eyeblaster, 301 F FABridge (Flex-Ajax Bridge), 37 fault handler, 353 FaultEvent class, 289 faultHandler( ) method, 178, 180 FCK (Flex Component Kit), 469 featured video, 28 Feed Icons, 154 FeedBurner, 147 feeds, XML, 433 fetchPage( ) method, 188 fetchProductDetails( ) method, 193 FFMPEG, 35, 58 FFTMode object, 448 Fields section, 340 fieldsDontMatchError property, 217 file property, 455 files directory, 325 filterFunction method, 368 filterFunction property, 367 filtering, 68, 86, 372–374 filterJobs method, 368 filters, 73, 373 Filters section, 340 finally clause, 179 Firefox plug-ins, 37–38 Charles Web Debugging Proxy, 38 Live HTTP Headers, 37 Web Developer Toolbar, 38 Fireworks, 36, 47 480 FiTO (Flash in TO), 20, 406 Flag button, 84 Flag Content dialog box, 81 Flag Moderation screen, 85 Flag Moderation screens, 76 flagging, 31, 75–76 Flash, 3–10, 11, 14, 33–36, 261–296 and ActionScript (AS3), 9–10 benefits of, 5–10 experience, reliability, 5–6 ubiquity, video capability, 7–8 closed captioning in, 394–397 compression, 262–265 bitrate, 263–265 codecs, 262 framerate, 263–264 keyframes, 264 controls, 274–278 Pause/Play button, 274–275 Stop button, 276–277 volume control, 277–278 creating Flex components in, 398–405 cross-platform performance, cue points, 265–266 delivering, 267 download progress bar, 279–280 features and functionality, versus Flex, 14–16 Flex integration, 469–473 legacy architecture, overview, 261 playback progress bar, 280–281 playlists, 287–294 control buttons, 291–293 restricting controls during ad playback, 293–294 RMX video player controls, 285–286 scrubber, 281–283 size, VideoDisplay class, limitations of, 295–296 VideoDisplay component, 267–273 overview, 267–268 playing single static videos, 268–270 time played/total time displays, 270–273 and Web 2.0, 4–5 Flash CS3 Video Encoder, 266 Flash in TO (FiTO), 20, 406 Flash JavaScript (JSFL) command, 469 Flash Media Server (FMS), 262, 266, 414 Flash Video format (FLV), Flash-Flex Integration Kit, 394 flash.media package, 448 flash.utils package, 449 8962Index.qxd 11/12/07 3:30 PM Page 481 INDEX FlashVars attribute, 153 Flex, 67, 457–473 application development, 13–14 audio visualizers, 443–455 AS2 versus AS3, 443–448 ByteArray class, 449 design planning, 449–450 SoundMixer class, 448–449 Visualizer class, 451–455 building interface for Products.php, 174–181 component-driven, 14 components, 48, 398–405 designer/developer workflow, 457–469 code enhancements, 461–465 component/SDK enhancements, 467–469 CSS outlines, 459 Skin Importer, 458 smaller SWFs, 469 versus Flash, 14–16 Flash integration, 469–473 framework, 11, 473 open source model, 473 overview, 10–13, 457 styling, 113–142 ActionScript-driven styling, 122–126 class selectors, 119–120 CSS, 114–137 Flex Style Explorer, 137–138 inline CSS styling, 120–121 tag, 121–122 RMX, 138–142 Scale formatting feature, 129–135 tag selectors, 117–119 styling versus skinning, 14 upgrading application, 184 Flex Build Path, 421, 422, 426 Flex Builder, 11, 37 Flex Charting, 11 Flex Component Kit (FCK), 469 Flex Language Reference documentation, 114 Flex Library Build Path section, 426 Flex Moxie M3, 422 Flex Project window, 449 Flex Properties panel, 174 Flex RIA, 84 Flex Style Explorer, 49, 137–138 Flex TabNavigator component, 72 Flex Templating (FXT), 438–440 /flex_builder_install_path/Flex SDK 2/resources/htmltemplates directory, 189 Flex-Ajax Bridge (FABridge), 37 FlexContentHolder, 471 FlexStyleExplorer menu, 49 FlexTube.tv, 8, 34, 73, 90 Flix, FLV (Flash Video format), FLVPlayback component instance, 397 FLVPlaybackCaptioning component, 394, 469 FMS (Flash Media Server), 262, 266, 414 folksonomies (bottom-up tagging), 4, 29, 405–406 tag, 126 font-family property, 115 fontFamily property, 120 font-size property, 115 font-weight property, 115 for each loops, 348 for loop, 453 for each loop, 257 form class, 208 tag, 199 format( ) method, 273 formatString property, 273 formatting tags, 228 FormItems attribute, 203 forms, 197–231 DTO, 197–199 setting up, 198–199 use, 197–198 overview, 197 security, 226–230 form data, 227 user-generated CSS, 229–230 user-generated HTML, 227–229 setting up, 199–205 tag, 199–201 tag, 201–202 tag, 203–205 submitting, 221–226 managing remoting calls, 222–226 validating on submission, 221–222 user input, 205–220 collecting, 205–207 confirming e-mail addresses, 215–220 confirming passwords, 215–220 validating, 208–215 formValidators array, 209 forums, 26–27 Forward button, 66 fps variable, 446 frame tags, 228 framerate, 263–264 Framework linkage setting, 421 framework_3.0 build.swf directory, 424 framework_3.0 build.swz directory, 424 front pages, 27–28 function block, 171 FutureSplash, 10 FXT (Flex Templating), 438–440 481 8962Index.qxd 11/12/07 3:30 PM Page 482 INDEX G I GATEWAY constant, 177 node, 157 geotargeting, 76 getCap( ) method, 403 getChildren( ) method, 140 getHeaderAt( ) method, 140 getInstance( ) method, 236 getOperation method, 354 getProducts( ) method, 175, 177–178, 187–188 getTemplates( ) method, 252 _getTemplatesHandler( ) method, 256 getTime( ) method, 273 getTrax( ) function, 447 global search, 464 Globals class, 241–242 GNU General Public License (GPL), 32–33 Google, 74 Google AdSense, 300 Google Maps, Google's Language Tools, 393 GPL (GNU General Public License), 32–33 graphical interface, 15 Graphics class, 453 graphics property, 453 group control panels, 89–92 node, 158 id attribute, 166 id properties, 104, 204 IDE (integrated development environment), 10 identity-based content protection, 414 if statement, 97, 216, 275, 293, 354 if else conditional statement, 172 element, 189, 191 IGlobal interface, 238 IIS_rewrite engine, 148 IKEA PAX Wardrobe Configurator, 12 IKEA PAX Wardrobe Planner, 46 Illustrator, 36 Image object, 296 imageClick variable, 309–310, 311 imageSource variable, 309 tag, 310, 432 import statements, 177 Import tab, 167 Import wizard, 458 include directive, 445 independence, 23–25 index variable, 446 Information menu, 333 init( ) method, 136, 178, 242, 272, 275, 277, 288 initApp( ) method, 240 initEQ( ) method, 453, 455 initialize property, 178 inline styling, CSS, 120–121 innerHTML property, 313 INSERT operation, 389 installing Drupal, 321–326 instream ads, 301–302 integrated development environment (IDE), 10 interfaces, event calendar, 375–384 interstitial advertising, 314–315 interstitials, 407 invocation code, 301 IP-to-zip lookup, 76 IService interface, 238 element, 162 itemClick event, 348 itemClick event property, 193 itemRenderer attribute, 358 itemRenderer property, 362 ItemRenderers, with rollover skins, 141–142 H H.264 codec, hand cursors, on Accordion headers, 139–140 handler method, 105 head content, 430–432 element, 432, 439 Header Styles tab, 137 headerStyleName attribute, 127 heading tags, 432 height property, 117 highLimit variable, 187 history, 66 history management, 188–194 historyManagementEnabled property, 190, 194 HistoryManager class, 191 HistoryManager variable, 188 hotspots, 408 href attribute, 228, 310 HTML, user-generated, 227–229 $html variable, 257 HTML_CSS package, 230 tag, 439 html-template folder, 189 htmlText property, 363 HTTPService class, 288–289 482 J JavaDoc comments, 107 JavaScript, embedding video with, 152–153 javascriptReturn variable, 309 Job Listing Flag Moderation screen, 89 job posting, 80 8962Index.qxd 11/12/07 3:30 PM Page 483 INDEX job property, 365 Job type, 349 JOB_SELECTED constant, 350 jobDetails property, 365, 367 JobRenderer class, 363 jobs board, 28, 337–369 advanced DTOs, 344–348 CMS, 337–343 connecting to Drupal services, 350–354 Event class, 348–350 jobs browser, 355–367 details pane, 365–367 jobs service, 358–361 list view, 361–365 jobs filters, 367–369 overview, 337 RMX base class, 354–355 jobs boards, 79–85 control panel interfaces, 83–85 site interfaces, 80–83 jobs browser, 355–367 details pane, 365–367 jobs service, 358–361 list view, 361–365 jobs filters, 367–369 jobs service, 358–361 JobsBoard application, 350 JobsBoard class, 360, 365, 367 JobsBoard.as class, 355, 358 jobsBoardComplete event, 360 JobsBoardEvent parameter, 349 jobsBrowser class, 360 jobsDP, 361 _jobsDP ArrayCollection, 368 jobSelected event, 365 jobSelected( ) method, 349, 350 JSFL (Flash JavaScript) command, 469 K Key frame placement, 264 keyframes, 264 keywords tag, 430, 439 keywords variable, 187 L LA Flash, 77 LA Flash (Los Angeles Flash User Group), 21 label property, 203, 279 LAMP, 33–34 node, 157 node, 157 layout tags, 228 LCDS (Live Cycle Data Services), 11 _leftStereoBarX variable, 452 length attribute, 159 leveling, 60 libraries, 96 Library panel, 471 Library panel menu, 398 Library Path Item Options window, 425 Library path tab, 422, 426 LIMIT clause, 166, 172 tag, 121 tag, 433 Linux, 33 list view, 361–365 listener property, 210 ListEvent class, 193 Live Cycle Data Services (LCDS), 11 Live HTTP Headers, 37 liveDragging property, 278, 282 loadPlaylist( ) method, 288 loadStyleDeclarations( ) method, 135–136 loadTemplate( ) method, 254 LoadVars object, 447 LocalSharedObject (LSO), 240 Logger class, 383 login( ) method, 241 logout( ) method, 241 Los Angeles Flash User Group (LA Flash), 21 lowLimit variable, 187 LSO (LocalSharedObject), 240 M mail( ) function, 149 main application class, 100–102 maintainAspectRatio property, 268 makeDataProviders( ) method, 361 Mantis, 39 MATCH argument, 181 Max Media Manager, 302 maxChars property, 213, 214–215 maximum property, 278, 284 maxLength property, 210, 214 MaxMind GeoIP database, 76 Media Player, 66, 162, 414–415 Media RSS (MRSS), 159, 162 Medtronic, 43 Member class, 104 Member Manager, 59 Member.as DTO, 198 memberInfo instance, 206 MemberListing class, 104 memberProfile property, 104 Members link, 78 483 8962Index.qxd 11/12/07 3:30 PM Page 484 INDEX membership communication, 26 Menus, 326 Merged into code option, 422 tags, 430 tag, 435 method naming, 105–106 methodName argument, 353 methodTable array, 171, 182 methodTable variable, 170 Microsoft Project, 60 micro-transactions, 409 MIME types, 149 minimum property, 278 minLength property, 210 minutes variable, 383 mod_rewrite, 148 mode property, 279 Model class, 240–241 Model-View-Controller (MVC), 237, 438 moderation, 31 Moderation tab, 72 moderators, 76 modularization, 184–186 module file extension, 338 modules, 326 Drupal, 338–343 Services module, 341–343 Views module, 340–341 Modules subsection, 327 money, 409–410 paid content, 409 payment models, 409–410 points-based, 410 subscription-based, 409–410 unit-based, 409 royalties system, 410 mood boards, 61 MovieClip class, 470 Mozilla Public License (MPL), 473 _mp3 variable, 451 MPL (Mozilla Public License), 473 MRSS (Media RSS), 159, 162 MS Project, 38–39 multiple SDK support, 465 muzak variable, 446 MVC (Model-View-Controller), 237, 438 tag, 117 tag, 98, 118, 127, 136, 138, 175, 202, 311, 354, 402, 404, 419, 421 tag, 125 tag, 285 tag, 176, 185 mx.events package, 193 484 tag, 199–201, 203 tag, 199, 201–202 tag, 199, 203–205 tag, 310 tag, 360 tags, 104 tags, 353 MXML, 10, 243–244 tag, 127, 130 tag, 130, 136, 142, 180, 185, 272 tag, 116, 121–122, 127, 136, 357 tag, 151 tag, 268 myApp property, 102 myFirstClass class, 116 myFirstStyle class, 115 MySpace, 78 MySQL, 34, 146, 167 myTitleStyle declaration, 127 N name property, 348 tag, 159 NameSpace object, 160 namespaces, 97–99, 159–161 Natural Docs, 63 navigateToURL ActionScript method, 306 navigateToURL( ) method, 191 navigation, 165–194 history management, 188–194 pagination, 165–181 building Flex interface for Products.php, 174–181 creating databases, 167 Products class, 168–174 search integration, 181–188 enhancing code, 186–188 modularization, 184–186 upgrading Flex application, 184 Navigation menu block, 341 Navigator pane, 426 Navigator panel, 135, 176, 449, 451 NetConnection object, 295 Netflix, 4, 74 Netscape, NetStream object, 295 network control panels, 89–92 network, sharing outside of, 147–162 embedding video, 152–154 with JavaScript, 152–153 overview, 152 with XHTML, 153–154 overview, 147 8962Index.qxd 11/12/07 3:30 PM Page 485 INDEX sharing by e-mail, 148–152 sharing permalinks, 147–148 sharing video, 152–154 using RSS, 154–162 attaching files to RSS feeds, 158–159 MRSS and syndicating to Adobe Media Player, 162 overview, 154–158 XML namespaces and extensions, 159–161 New Flex Project window, 449 new Gateway( ) method, 237 new Responder( ) method, 237 NewMemberForm class, 200, 205, 221–222 Newprojectname class, 101 newprojectname folder, 100 Newprojectname.as class, 100 newValue argument, 122 newValue property, 123 Next button, 305 node_save( ) method, 388 null value, 213 numBands variable, 446 O Object class, 199 Object package, 256 Object type, 193 tag, 153 tag, 432 ObjectProxy type, 250 offset class, 170 offset variable, 179 OmniGraffle Professional, 37, 47 onFault event handler, 226, 289 onFault method, 226 onLoad event, 440, 447 onmouseover attribute, 228 onPlaylistResult event handler, 289 onResult( ) event handler, 361 onSuccess event handler, 226 onSuccess method, 226 open source advertising, 300 open source model, Flex, 473 OpenAds, 35, 76, 300 consuming, 307–313 setting up, 302–306 Operation instance, 353 outputArray parameter, 448 overlay ads, 314–315 overlays, 407–408 override keyword, 217 overSkin CSS property, 133 overSkin property, 135 P

tag, 114 pagesize class, 170 pageSize variable, 179 pageText variable, 186–187 pagination, 74, 165–181 building Flex interface for Products.php, 174–181 creating databases, 167 Products class, 168–174 pagination navigation, 74 paid content, 409 parseObject method, 348 Partner Management screen, 89–90 passwords, confirming, 215–220 pause( ) method, 275, 277, 293 Pause/Play button, 274–275 payment models, 409–410 points-based model, 410 subscription-based model, 409–410 unit-based model, 409 payRange property, 348 PEAR (PHP Extension and Application Repository) class, 228 percentHeight property, 117 permalinking, 4, 30, 66, 81, 147–148 persistent framework caching (PFC), 13, 419–421 PHP, 34 PHP Extension and Application Repository (PEAR) class, 228 PHPEclipse, 97 phpMyAdmin, 303 physical library management, 411 Picnik, 67 PICS-Label tag, 431 play( ) method, 277 playback progress bar, 280–281 playheadTime property, 273, 281–282, 291 playheadUpdate event, 273 playheadUpdateInterval event, 273 playing property, 275 playlist XMLList object, 290 playlistControlsHandler( ) method, 293 playlistCursor event handler, 291 playlistCursor variable, 289 playlists, 287–294 control buttons, 291–293 restricting controls during ad playback, 293–294 playlistService variable, 289 playVideo( ) method, 290, 291, 293–294 PodMailer component, 246 PodTemplates component, 246 PodTemplates.mxml, 246 PodTerms component, 246 485 8962Index.qxd 11/12/07 3:30 PM Page 486 INDEX PointRoll, 301 points-based payment model, 410 POLICY constant, 177 popUps folder, 100 Post a Job button, 83 Post Event button, 87, 383 private function, 178 private keyword, 178 private variable, 367 product_desc field, 175 product_id field, 175 product_name field, 175 product_price field, 175 Products class, 168–174, 182 $products variable, 173 productsDP ArrayCollection, 177 productsDP variable, 179 Products.php, building Flex interface for, 174–181 Profiler, 465 progress bars download, 279–280 playback, 280–281 progress event, 279, 284 progressive disclosure of controls, 137 progressive video players, restricting scrubbers for, 283–285 project guides, 59 Project Insight, 38–39 project management tools, 38–40 Mantis, 39 MS Project, 38–39 Project Insight, 38–39 Subversion (SVN), 39–40 project plans, 56–61 project schedules, 60–61 project specifications, 51–55 project structure, 97–99 project templates, 99–100 Properties option, 422 Properties panel, 396, 435 node, 157 public beta, 65 public function, 178 public properties, 383 public property, 199, 208 public static method, 353 public static variables, 125 public variable, 360 pull technology, 31 px suffix, 117 486 Q Quality Assurance (QA), 64 $query variable, 172 Quicken, 57 QuickTime, R rating, 30 rating tag, 431 node, 157 ratings, 74–75 ratings widgets, 75 rCap instance, 400 readFloat( ) method, 449, 454 ready event, 268, 273 RealMedia, redInputs class, 120 redundant tags, 228 refactoring feature, 461 refresh( ) method, 362, 368 release, 64–66 Reload Current Settings, 72 reloadTemplate( ) method, 254 _reloadTemplateHandler( ) method, 256 Remote Procedure Call (RPC) toolkit, 168 RemoteObject class, 350, 353 RemoteObject tag, 149 removeBusyCursor( ) method, 180 replace( ) method, 310 required property, 203, 210 requiredError property, 210 Reset Filters button, 83 ResourceManager class, 469 restrict attribute, 151 restrict property, 213–214 result array, 179 result event handler, 354 result handler, 353 result property, 290, 361 ResultEvent class, 289 ResultEvent type, 361 resultHandler( ) method, 178–180, 187 resultXML variable, 290 Revert button, 89 rewrite portion, 148 rewrite rules, 148 RewriteBase, 437 RewriteRule, 437 Rich Internet Applications (RIAs), 9, 457 Rich Media Exchange (RMX), 8, 19–92, 138–143, 165 Adobe User Group (AUG) communities, 20–21 complexity, 43–45 content, 23 8962Index.qxd 11/12/07 3:30 PM Page 487 INDEX development, 61–66 designs, 61 release, 64–66 technical specifications, 62 testing, 63–64 development of, 21–22 extending, 391–415 advertising, 406–408 data, 393–406 distribution, 411–415 future, 391–392 money, 409–410 overview, 391 user group features, 410–411 features, 26–32 advertising, 32 blogs, 27 commenting, 29–30 flagging, 31 forums, 26–27 front pages, 27–28 jobs board, 28 membership communication, 26 moderation, 31 rating, 30 RSS feed generation, 31–32 sharing, 30 social media functionality, 28–29 tagging, 29 video network, 28 flexible feature set, 26 functional requirements, 22–23 independence, 23–25 membership, 24 planning, 45–61, 66–92 control panels, 70–73, 89–92 defining business requirements, 46–47 event calendars, 85–89 jobs boards, 79–85 project plans, 56–61 project specifications, 51–55 searching and filtering, 68 site, 73–78 user-generated content, 68–69 web pages versus applications, 66–68 wireframes, 47–51 styling obstacles, 138–142 hand cursors on Accordion headers, 139–140 ItemRenderers with rollover skins, 141–142 subscription, 26 syndication, 26 tools, 32–40 application platform, 33–36 design/development, 36–38 GNU GPL, 32–33 project management, 38–40 video player controls, 285–286 Rich Media Institute training sessions, 86 rich symbols, 47 _rightStereoBarX variable, 452 RMX See Rich Media Exchange (RMX) RMX base class, 354–355 RMX event listings, 372 rmx folder, 199 RMX interface, 372 rmx object, 160 RMX video player controls, 285–286 rmxEvent object, 379 rmxEvent variable, 379, 383 RMXGateway class, 226 rollout( ) event handler, 142 rollover( ) event handler, 142 rollover skins, ItemRenderers with, 141–142 tag, 310 $row variable, 173 royalties system, 410 RPC (Remote Procedure Call) toolkit, 168 RSLs See runtime shared libraries (RSLs) rsls directory, 424 RSS feed generation, 31–32 sharing outside of network using, 154–162 attaching files to RSS feeds, 158–159 MRSS and syndicating to Adobe Media Player, 162 overview, 154–158 XML namespaces and extensions, 159–161 node, 156 RSVPed, 414 RSVPing, 411 RSVPs, 86, 411 rule, 148 runtime localization, 469 runtime shared libraries (RSLs), 419, 420–426 custom SWCs and, 426 and persistent framework caching (PFC), 419–420 setting up applications to use, 421–426 Runtime shared library, 426 Runtime shared library option, 422 S sample_products database, 167 Save Changes button, 89 Save Changes tab, 305 Save configuration button, 322 Save Settings, 72 saveEmailChanges( ) method, 254 saving data, 70–72 487 8962Index.qxd 11/12/07 3:30 PM Page 488 INDEX Scale formatting feature, 129–135 scaleGridBottom parameter, 131 scaleGridLeft parameter, 132 scaleGridRight parameter, 132 scaleGridTop parameter, 131 schemas, XML, 147 “Screen: Control Panel, Member Manager”, 59 Script block, 175, 313, 367 script tags, 152, 189, 228 Scripting, 321 scrubbers, video, 281–285 SDK (Software Development Kit), 457, 467–469 deep linking, 467–469 multiple support, 465 runtime localization, 469 search, 77–78 search engine optimization (SEO), 429–440 FXT, 438–440 overview, 429 semantic markup, 430–438 body content, 432–433 clean URLs, 436–437 deep linking, 437–438 head content, 430, 432 SWF metadata, 435–436 XML, 433–434 search engine-friendly URLs, 148 search integration, 181–188 enhancing code, 186–188 modularization, 184–186 upgrading Flex application, 184 search( ) method, 182 Search results panel, 464 searchClickHandler( ) method, 186 searching, 68 searchProducts( ) method, 187 searchResultHandler( ) method, 187 Secure Shell (SSH), 321 security, form, 226–230 form data, 227 user-generated CSS, 229–230 user-generated HTML, 227–229 seekTo variable, 282 SELECT statement, 166, 181 selectedIndex property, 254 selectedIndex variable, 193 selectedOverSkin attribute, 128 selectedProduct variable, 193 semantic markup, 430–438 body content, 432–433 clean URLs, 436–437 deep linking, 437–438 head content, 430–432 488 SWF metadata, 435–436 XML, 433–434 send( ) method, 152 sendMail( ) method, 257 send-to-friend, 30 SEO See search engine optimization (SEO) server software, 13 serviceProperties object, 353 Services class, 242–243, 254–256, 350, 353–354 services directory, 169 Services module, 338, 341–343 Services.GET_EVENTS constant, 353 Services.GET_JOBS constant, 353 ServiceUtil class, 237–238 ServiceUtility class, 176–178 setBusyCursor( ) method, 178 setButtonVisibility( ) method, 178–179, 186 setInterval( ) function, 446 setPageText( ) method, 187 setProgress( ) method, 279 setProperty(target:Object, parameter:Object, expression:Object) global function, 447 setStatus( ) function, 447 setStyle method, 122–123, 135, 138, 142 setting up applications to use RSLs, 421–426 DTO, 198–199 forms, 199–205 tag, 199–201 tag, 201–202 tag, 203–205 OpenAds, 302–306 setupVideo function, 400, 403 Share button, 84 sharing, 30, 374 Show in Resource History option, 106 showAlert( ) method, 102 showBusyCursor property, 289 showJobDetails event handler, 365 Single Page Architectures (SPAs), 432, 467 singleBand variable, 455 Singleton classes, 236 site interfaces event calendars, 86–87 jobs boards, 80–83 Sitemaps Protocol, 434 sitemaps, XML, 433–434 sites, 73–78 flagging, 75–76 pagination, 74 ratings, 74–75 search, 77–78 tabs, 74 zip codes, 76–77 8962Index.qxd 11/12/07 3:30 PM Page 489 INDEX sites/all/modules/ directory, 338 /sites/all/themes/ path, 333 Skin Importer, 458 SkinnedButton class, 126, 134 Skov Holt, Mara, 51 Skov Holt, Steven, 51 social media functionality, 28–29 social networking, 19 soft launch, 65 Software Development Kit See SDK (Software Development Kit) Sorenson Spark, 8, 262 Sort Criteria section, 340 Sound object, 446, 448, 452 SoundChannel object, 452 SoundMixer class, 443, 448–449 SoundMixer.computeSpectrum( ) function, 449 source attribute, 121, 310 source control, 96–97, 106 source property, 210, 268, 287 SPAs (Single Page Architectures), 432, 467 spectrumArray object, 448 spectrumInt object, 448 spectrumInt variable, 446 spectrumUpdateInt variable, 446 Sprite class, 400 SQL (Structured Query Language), 166 src attribute, 153 SSH (Secure Shell), 321 start Date object, 273 start variable, 273 startHour property, 383 startMinute property, 383 startRemoteObject( ) method, 353 startTime property, 383 static method, 353 Stop button, 276–277 stop( ) method, 277 stopPlayback event listener, 277 str2array function, 446 stretchFactor parameter, 448 StringValidator class, 209–210, 217 strip_tags( ) function, 227, 228 structure tags, 228 Structured Query Language (SQL), 166 structures, XML, 147 style tags, 116, 228 StyleManager class, 135 StyleManager.loadStyleDeclarations( ) method, 136 styleName attribute, 116 styleName property, 120 styling, 14 Subclipse, 96–97 submitting forms, 221–226 managing remoting calls, 222–226 validating on submission, 221–222 subscription-based payment model, 409–410 subtabs, 92 Subversion (SVN), 39–40, 96–97 super class, 360, 383 super( ) method, 217 super.doValidation( ) method, 217 svc.send( ) method, 354 SVN (Subversion), 39–40, 96–97 SVN Resource History tab, 106 SWC Link Type setting, 426 SWCs, and RSLs, 426 SWFs metadata, 435–436 size of, 419–420, 469 switch statements, 97 Symbol Properties panel, 49 syndicating, to Adobe Media Player, 162 syndication controls, 406 T ta_eventDesc component, 383 tab navigation, 72 TabNavigator component, 74 tabs control panel, 72 site, 74 tag namespace, 220 tag selectors, 117–119 tagging, 29 tags.css Style tag, 122 talking-head video, 264 taxonomies (top-down tagging), 4, 29 taxonomy (top-down tagging), 29 taxonomy array, 346, 348 technical specifications, 62 temp variable, 313 template ObjectProxy properties, 251 templateDP ArrayCollections, 250 templateDP property, 254 templates directory, 189 termsDP ArrayCollections, 250 testing, 63–64, 425–426 text property, 104, 207, 217, 251, 270, 363 text transcripts, 393 $text variable, 257 TextField instance, 397 themes, 326 themes/engines directory, 333 threaded comments, 29 thumbDownSkin property, 286 489 8962Index.qxd 11/12/07 3:30 PM Page 490 INDEX thumbDrag event, 282 thumbOverSkin property, 286 thumbPress event, 282 thumbRelease event, 282 thumbUpSkin property, 286 Thurman, Robert, time played/total time displays, 270–273 Timed Text Tags XML specification, 394 timeDisplayFormatter DateFormatter object, 273 timeDisplayFormatter property, 273 timeline, 15 Timer callback, 314 title attribute, 153 node, 157 tag, 431 TitledList class, 383 titles variable, 446 titleStyleName attribute, 127, 129 titleStyleName property, 126 tl variable, 446 togglePlayback event handler, 275 toggleVideoControls( ) method, 294 tooLongError property, 210 tooShortError property, 210 top-down tagging (taxonomies), 4, 29 toString( ) method, 310 $total_products array, 173 totalChars variable, 383 totalProducts variable, 179 totalTime property, 281 trackHeight CSS property, 279 tracks variable, 446 transcribing audio, 393–394, 405 Tree components, 73 trees, 73 trigger property, 210 triggerEvent property, 210 try catch block, 179 type attribute, 159, 294 U UAT (User Acceptance Testing), 64 UI (user interface) components, 11 UIMovieClip class, 401, 471 undo feature, 66 unit-based payment model, 409 unthreaded comments, 29 updateSV( ) function, 448 updateTemplateSubject( ) method, 254 updateTimeDisplay event handler, 273 updateVenue( ) method, 379, 383 updating events, 375 upgrading Flex application, 184 490 Upload button, 52 Upload Moderation control panel, 70 Upload Video screen, 52 upSkin CSS property, 133 url attribute, 159 url property, 289 URLRequest object, 311 URLs, clean, 436–437 User Acceptance Testing (UAT), 64 user group features, 410–411 physical library management, 411 RSVPs, 411 user input, 205–220 collecting, 205–207 confirming e-mail addresses and passwords, 215–220 validating, 208–215 EmailValidator, 211–212 maxChars property, 214–215 restrict property, 213–214 Validator classes, 209–211 validators array, 208–209 user interface (UI) components, 11 user tagging, 29 User Testing (UT) phase, 64 user video, 28 user-generated content, 68–69 user-generated folksonomy, 405–406 UT (User Testing) phase, 64 V validateAll( ) method, 221, 222 validateForm( ) method, 222 validateProperty property, 217 validating user input, 208–215 EmailValidator, 211–212 maxChars property, 214–215 restrict property, 213–214 Validator classes, 209–211 validators array, 208–209 ValidationResult object, 217 validationResults function, 222 Validator class, 208, 211, 221–222 Validator classes, 209–211 validators array, 208–209 validators property, 222 value attribute, 153 value object (VO), 240 value property, 278 variable bitrate (VBR), 264–265 variable naming, 105–106 VBR (variable bitrate), 264–265 Verify RSL digest option, 426 Verify RSL digests option, 424 8962Index.qxd 11/12/07 3:30 PM Page 491 INDEX video See also Flash embedding, 152–154 with JavaScript, 152–153 overview, 152 with XHTML, 153–154 video compression formats, 262 video encoder, video network, 28 video players progressive, restricting scrubbers for, 283–285 RMX, 285–286 Video settings panel, 264 Video View screen, 58 VideoBitmapDisplay class, 295 videoComplete event handler, 291 VideoDisplay class, 295–296 VideoDisplay component, 267–273 overview, 267–268 playing single static videos, 268–270 time played/total time displays, 270–273 VideoDisplay instance, 270 VideoEvent.COMPLETE event, 295 VideoEvent.PLAYHEAD_UPDATE event, 273 VideoEvent.READY event handler, 273 videoFileTotalBytes variable, 283–284 videoLength variable, 273 videoReady event handler, 273 videoReady( ) method, 273 video-sharing sites, View Comments state, 56 View Filters button, 81 view_name field, 342 _viewEvents( ) method, 383 Views module, 339, 340–342 views package, 355 tag, 104 visibility property, 229 Visualizer class, 450, 451–455 Vivo, VO (value object), 240 volume control, 277–278 volume property, 278 weblog, 319 WHERE clause, 181 while loop, 173, 257 while loops, 97 width property, 117 Wildform, wireframes, 47–51 wmode parameter, 138 wrapper, 189 wrapperFunction variable, 309 writeView( ) method, 440 X XHTML, 153–154 XML, feeds, 433 namespaces and extensions, 159–161 overview, 147 sitemaps, 433–434 structures and schemas, 147 web feeds, 147 xml namespace, 201 XMLListCollection class, 367 xmlns attribute, 99, 159 xmlns:myComps="*" attribute, 402 Y YouTube Remixer, 67 _yscale property, 448 _yscale variable, 447 Z zero icon, 75 zip codes, 76–77 W Web 2.0 applications, 19 dating sites, 371 overview, 4–5 Web 2.0 Logo Creator, 65 Web Developer Toolbar, 38 web feeds, XML, 147 web pages, versus applications, 66–68 Web server, 321 491 8962Index.qxd 1-59059-543-2 11/12/07 3:30 PM Page 492 1-59059-518-1 $39.99 [US] 1-59059-542-4 $36.99 [US] 1-59059-558-0 $39.99 [US] $49.99 [US] $39.99 [US] 1-59059-651-X $44.99 [US] 1-59059-314-6 EXPERIENCE THE DESIGNER TO DESIGNER™ DIFFERENCE 1-59059-517-3 $59.99 [US] 1-59059-315-4 $59.99 [US] 1-59059-619-6 $44.99 [US] 1-59059-304-9 $49.99 [US] 1-59059-355-3 $24.99 [US] 1-59059-409-6 $39.99 [US] 1-59059-748-6 $49.99 [US] 1-59059-593-9 $49.99 [US] 1-59059-555-6 $44.99 [US] 1-59059-533-5 $34.99 [US] 1-59059-638-2 $49.99 [US] 1-59059-765-6 $34.99 [US] 1-59059-581-5 $39.99 [US] 1-59059-614-5 $34.99 [US] 1-59059-594-7 $39.99 [US] 1-59059-381-2 $34.99 [US] 1-59059-554-8 $24.99 [US] ... 426 Flex Moxie M3, 422 Flex Project window, 449 Flex Properties panel, 174 Flex RIA, 84 Flex Style Explorer, 49, 137–138 Flex TabNavigator component, 72 Flex Templating (FXT), 438–440 /flex_ builder_install_path /Flex. .. skinning, 14 upgrading application, 184 Flex Build Path, 421, 422, 426 Flex Builder, 11, 37 Flex Charting, 11 Flex Component Kit (FCK), 469 Flex Language Reference documentation, 114 Flex Library Build... /flex_ builder_install_path /Flex SDK 2/resources/htmltemplates directory, 189 Flex- Ajax Bridge (FABridge), 37 FlexContentHolder, 471 FlexStyleExplorer menu, 49 FlexTube.tv, 8, 34, 73, 90 Flix, FLV (Flash Video

Ngày đăng: 14/08/2014, 11:21

Từ khóa liên quan

Mục lục

  • SEARCH ENGINE OPTIMIZATION FOR FLEX

    • Summary

    • BUILDING AN AUDIO VISUALIZER IN FLEX

      • AS2 vs. AS3

      • Introducing the SoundMixer

      • Understanding the ByteArray

      • Design planning

      • The visualization

      • Summary

      • THE EVOLVING FLEX SCENE

        • Designer/Developer workflow

          • Skin Importer

          • CSS outlines

          • Code enhancements

          • Component and SDK enhancements

          • Smaller SWFs

          • Flex and Flash integration

          • Flex + open source = no limits!

          • Summary

          • INDEX

Tài liệu cùng người dùng

Tài liệu liên quan