Sử dụng flash 8

Macromedia được thành lập năm 1992 với sự sáp nhập giữa Authorware Inc. (nhà sản xuất Authorware) và MacroMind-Paracomp (sản xuất Macromind Director). Director, một công cụ biên tập đa phương tiện rộng rãi được sử dụng để tạo ra các nội dung trên CD-ROM và các kios thông tin, là sản phẩm chủ lực của Macromedia cho đến giữa những năm 1990. Cho đến thời điểm đĩa CD bị mất thị phần và World Wide Web trở nên nổi tiếng, Macromedia tạo ra Shockwave, một trình cắm bổ sung để xem nội dung Director bằng trình duyệt web. [sửa]Mua lại

pdf200 trang | Chia sẻ: tlsuongmuoi | Lượt xem: 2883 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Sử dụng flash 8, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
tatic v { barCo track borde butto color dateH dateR disab fillC highl scrol selec shado strok symbo symbo symbo symbo symbo theme today shado borde focus shape }; Register the as follows: mx.skins.C The color ca shown here: shape.setSing a new style name created a new style name and it is a color style, add the new name to the s object in the StyleManager.as file (First \mx\styles\StyleManager.as). This example adds the shapeColor style: ize set of inheriting color styles ar colorStyles:Object = lor: true, Color: true, rColor: true, nColor: true, : true, eaderColor: true, ollOverColor: true, ledColor: true, olor: true, ightColor: true, lTrackColor: true, tedDateColor: true, wColor: true, eColor: true, lBackgroundColor: true, lBackgroundDisabledColor: true, lBackgroundPressedColor: true, lColor: true, lDisabledColor: true, Color:true, IndicatorColor: true, wCapColor:true, rCapColor:true, Color:true, Color:true new style name to the circle and square skins on Frame 1 of each skin movie clip, oloredSkinElement.setColorStyle(this, "shapeColor"); n be changed with the new style name by setting the style on the instance, as tyle("shapeColor",0x00ff00);ng Components Incorp your c In this sectio and Button incorporated The comple examples fo ■ In Wind Tutorial ■ On the M Samples The LogIn c LogIn has tw name and p when the us ■ “Creatin ■ “The Lo ■ “Testing Creatin Start by crea To create 1. In Flash 2. Select Fi 3. Create S radio bu If the Li button t 4. Select E 5. Enter a l The defa default vorating existing components within omponent n, you will build a simple LogIn component that incorporates Label, TextInput components. This tutorial demonstrates how existing components are in new components by adding their uncompiled Flash (FLA) library symbols. ted component files, LogIn.fla, LogIn.as and LogIn.swf are located in the lder on your hard disk: ows: the C:\Program Files\Macromedia\Flash 8\Samples and s\Samples\Components\Login folder. acintosh: HD/Applications/Macromedia Flash 8/Samples and Tutorials/ /Components/Login folder. omponent provides an interface for entering a name and password. The API for o properties, name and password for setting and getting the string values in the assword TextInput fields. The LogIn component also dispatches a “click” event er clicks a button labeled LogIn. g the LogIn Flash (FLA) file” on page 173 gIn class file” on page 176 and exporting the LogIn component” on page 180 g the LogIn Flash (FLA) file ting a Flash (FLA) file that will hold our component symbol. the LogIn FLA file: , select File > New and create a new document. le > Save As and save the file as LogIn.fla. elect Insert > New Symbol. Name it LogIn, and select the Movie clip type tton. nkage section of the Create New Symbol dialog isn’t open, click the Advanced o reveal it. xport for ActionScript and deselect Export in First Frame.Incorporating existing components within your component 173 inkage identifier. ult linkage identifier is LogIn. The rest of these steps assume you use the alue. 174 Creati 6. Enter Lo If you pu mx.cont 7. Click O Flash op 8. Insert a 9. Select Fr This is t The Act 10. Select Fr global fu This pre 11. Select Fi from the ■ In W 8\lan ■ On t Com 12. Select Fr browse t compon Asset de library. All the c stop() seen as t You add N O T EgIn in the AS 2.0 Class text box. This value is the component class name. t the class in a package, enter the entire package name. For example, rols.CheckBox denotes the CheckBox class in the mx.controls package. K. ens in symbol-editing mode. new layer. Name the top layer Actions and the bottom layer Assets. ame 2 in the Assets layer and insert a keyframe (F6). he structure of the component movie clip: an Actions layer and an Assets layer. ions layer has 1 keyframe and the Assets layer has 2 keyframes. ame 1 in the Actions layer and open the Actions panel (F9). Enter a stop() nction. vents the movie clip from proceeding to Frame 2. le > Import > Open External Library and select the StandardComponents.fla file Configuration/ComponentFLA folder. indows: \Program Files\Macromedia\Flash guage\Configuration\ComponentFLA\StandardComponents.fla. he Macintosh: HD/Applications/Macromedia Flash 8/Configuration/ ponentFLA/StandardComponents.fla ame 2 in the Assets layer. From within the StandardComponents.fla library, o the Flash UI Components 2 folder. Drag a Button, Label and TextInput ent symbol to Frame 2 of the Assets layer. pendencies for these components are automatically copied to your LogIn.fla omponent assets are added to Frame 2 of the Assets layer. Because there is a global function on Frame 1 of the Actions layer, the assets in Frame 2 will not be hey are arranged on the Stage. assets to Frame 2 for two reasons: For information about folder locations, see “Configuration folders installed with Flash” in Using Flash.ng Components ■ So th insta ■ Placi strea first dow Drag Fram 13. Close th 14. In the A library ( 15. Name that all assets are automatically copied into the library and are available to ntiate dynamically and access their methods, properties, and events. ng assets in a frame ensures they are loaded more smoothly as the movie is med, so you do not need to set the assets in the library to be exported before the frame. This method prevents an initial data transfer spike that could cause nload delays or long pauses. ging a Button component symbol from the library in StandardComponents.fla to e 2 of the Assets layer of LogIn.fla e StandardComponents.fla library. ssets layer, select Frame 1. Drag the BoundingBox movie clip from the LogIn.fla inside the Component Assets folder) to the Stage. e BoundingBox instance boundingBox_mc. Incorporating existing components within your component 175 176 Creati 16. Use the I 150), an The Bou user to h boundin 17. Select th Library 18. In the A This valu full pack mx.cont 19. Click O 20.Save the The Lo The followin comments i elements of To create th Save the file You can cop LogIn.as file element of t /* Import from th import mx. import mx. import mx. import mx. // Event m [Event("ch N O T E If y kee ins usi com connfo panel to resize the BoundingBox to the size of the LogInFinal movie clip (340, d position it at 0, 0. ndingBox instance is used to create the component’s live preview and allow the andle resize the component during authoring. You must set the size of the g box so that it can enclose all the graphical elements in your component. e LogIn movie clip in the library, and select Component Definition from the context menu (Windows: Right-click, Mac: control-click). S 2.0 Class text box, enter LogIn. e is the name of the ActionScript class. If the class is in a package, the value is the age. For example, mx.controls.CheckBox denotes the CheckBox class in the rols package. K. file. gIn class file g code is the ActionScript class for the LogIn component. Please read the n the code for a description of each section. (For detailed information on the a component class file, see “Overview of a component class file” on page 144). is file, you can create a new ActionScript file in Flash, or use any other text editor. as LogIn.as in the same folder as the LogIn.fla file. y or type the following LogIn component ActionScript class code into your new . Typing rather than copying the code will help you become familiar with each he component code. the packages so they can be referenced is class directly. */ ou are extending a component (including any version 2 component) you must p instance names already in use by that component as its code will refer to those tance names. For example, if you include a version 2 component that is already ng the instance name boundingBox_mc, do not rename it. For your own ponents, you can choose any instance name that is unique and that does not flict with an existing name within the same scope.ng Components core.UIComponent; controls.Label; controls.TextInput; controls.Button; etadata tag ange")] [Event("cl class LogI { /* Compo compo static v static v var clas // The c private private private private private private private /* Priva These private private /* Const While the c All i metho function } /* Initi The i in tu The i function super bound bound bound } /* Creat The c exten public f name_ name_ name_ name_ick")] n extends UIComponent nents must declare these member variables to be proper nents in the components framework. */ ar symbolName:String = "LogIn"; ar symbolOwner:Object = LogIn; sName:String = "LogIn"; omponent's graphical representation. var name_label:MovieClip; var password_label:MovieClip; var name_ti:MovieClip; var password_ti:MovieClip; var login_btn:MovieClip; var boundingBox_mc:MovieClip; var startDepth:Number = 10; te member variables available publicly through getter/setters. represent the name and password InputText string values. */ var __name:String; var __password:String; ructor: required for all classes, v2 components require ontstructor to be empty with zero arguments. nitialization takes place in a required init d after the class instance has been constructed. */ LogIn() { alization code: nit method is required for v2 components. It must also rn call its parent class init() method with super.init(). nit method is required for components extending UIComponent. */ init():Void { .init(); ingBox_mc._visible = false; ingBox_mc._width = 0; ingBox_mc._height = 0; e child objects needed at start up: reateChildren method is required for componentsIncorporating existing components within your component 177 ding UIComponent. */ unction createChildren():Void { label = createObject("Label", "name_label", this.startDepth++); label.text = "Name:"; label._width = 200; label._x = 20; 178 Creati name_ name_ this.sta name_ name_ name_ /* Se No in th name_ name_ this.sta name_ passw this.sta passw passw passw passw login this.sta login login login size( } /* The d It is inval This than to mo function super } /* The s chang The s function super // Calabel._y = 10; ti = createObject("TextInput", "name_ti", rtDepth++,{_width:200,_heigh:22,_x:20,_y:30}); ti.html = false; ti.text = __name; ti.tabIndex = 1; t this text input field to have focus. te: Make sure to set select Control > Disable Keyboard Shortcuts the Flash Debugger if it is not already selected, otherwise e focus may not set when testing. */ ti.setFocus(); label = createObject("Label", "password_label", rtDepth++,{_width:200,_heigh:22,_x:20,_y:60}); label.text = "Password:"; ord_ti = createObject("TextInput", "password_ti", rtDepth++,{_width:200,_heigh:22,_x:20,_y:80}); ord_ti.html = false; ord_ti.text = __password; ord_ti.password = true; ord_ti.tabIndex = 2; _btn = createObject("Button", "login_btn", rtDepth++,{_width:80,_heigh:22,_x:240,_y:80}); _btn.label = "LogIn"; _btn.tabIndex = 3; _btn.addEventListener("click", this); ); raw method is required for v2 components. invoked after the component has been idated by someone calling invalidate(). batch’s up the changes into one redraw, rather doing them all individually. This approach leads re efficiency and better centralization of code. */ draw():Void { .draw();ng Components ize method is invoked when the component's size es. This is an opportunity to resize the children, ize method is required for components extending UIComponent. */ size():Void { .size(); use a redraw in case it is needed. inval } /* Event Calle Since this public f // Up __nam __pas // Di dispa } /* This The [ in th to be and f [Bindabl [ChangeE [Inspect function __nam inval } function retur } [Bindabl [ChangeE [Inspect function __pas inval } function retur } }idate(); Handler: d by the LogIn button when it receives a mouse click. we want this event to be accessible outside of the scope of component, The click event is dispatched using dispatchEvent. */ unction click(evt){ date the member variables with the input field contents. e = name_ti.text; sword = password_ti.text; spatch a click event when the button fires one. tchEvent({type:"click"}); is the getter/setter for the name property. Inspectable] metadata makes the property appear e Property inspector and allows a default value set. By using a getter/setter you can call invalidate orce the component to redraw when the value is changed. */ e] vent("change")] able(defaultValue="")] set name(val:String){ e = val; idate(); get name():String{ n(__name); e] vent("change")] able(defaultValue="")] set password(val:String){ sword=val; idate(); get password():String{ n(__password);Incorporating existing components within your component 179 180 Creati Testing You’ve creat class file tha the compon Ideally, you file. The fas use it in the When you’r information To test the 1. In the L to Comp control- A compi movie cl section t 2. Drag Lo main Ti You can Inspecto before th the defa accordin To test t and add // Crea createT myLogin // Even event functio /* Here N O T E If y tim Exi and exporting the LogIn component ed the Flash file that contains the graphical elements, the base classes and the t contains all the functionality of the LogIn component. Now it’s time to test ent. would test the component as you work, especially while you’re writing the class test way to test as you work is to convert the component to a compiled clip and component’s FLA file. e completely finished creating a component, export it as a SWC file. For more , see “Exporting and distributing a component” on page 182. LogIn component: ogIn.fla file, select the LogIn movie clip in the library and select Convert iled Clip from the Library context menu (Windows: Right-click, Mac: click). led clip is added to the library with the name LogIn SWF. You are compiling the ip to test it, only. Otherwise, you would follow the instructions later in this o export the LogIn movie clip. gIn SWF to the Stage in frame 1 of the main Timeline (make sure you’re in the meline, Scene 1, not the movie clip timeline). set the name and password property in the Parameters tab or the Component r. This is useful if you want default text such as “Enter your name here” to appear e user has entered anything. When you set its name and/or password property, ult text in the name and password InputText sub-components will change gly at runtime. he value property at runtime, name the LogIn instance on the Stage myLogin the following code to Frame 1 in the main Timeline: tes a text field in which to view the login values. extField("myLoginValues",10,10,10,340,40) ou’ve already created a compiled clip (for example, if this is the second or third e you’re testing), a Resolve Library Conflict dialog box appears. Select Replace sting Items to add the new version to the document.ng Components Values.border = true; t handler for the login component instance’s dispatched click . n click(evt){ is where authentication would occur. For e which and/o myLog myLog myLog } myLogin 3. Select C To export 1. In the L Definiti 2. Check th 3. Click O 4. In the L SWC Fi 5. Select a If you sa reload th Compon The com N O T E Sin wa com doc N O T E Fo Flaxample the name and password would be passed to a web service authenticates the name and password and returns a session ID r permission roles attributed to the user. */ inValues.text = "Processing...\r"; inValues.text += "Name: " + myLogin.name + " Password: " + in.password; .addEventListener("click",this); ontrol > Test Movie to test the component in Flash Player. the LogIn component: ogIn.fla file, select the LogIn movie clip in the library and select Component on from the Library context menu (Windows: Right-click, Mac: control-click). e Display in Components panel. K. ogIn.fla file, select the LogIn movie clip in the library, again, and select Export le from the Library context menu (Windows: Right-click, Mac: control-click). location to save the SWC file. ve it to the Components folder in the user-level configuration folder, you can e Components panel without restarting Flash and the component appears in the ents panel. ce you are testing this component within your original document, you may see a rning message about having the same linkage identifier for two symbols. The ponent will still work. In practice, you will use the new component within another ument in which case the linkaged identifier should be unique. r information about folder locations, see “Configuration folders installed with sh” in Getting Started with Flash.Incorporating existing components within your component 181 pleted LogIn component 182 Creati Expo Flash export distributed a www.macro for informat The best wa contain all t SWC files a application SWC files c Dreamweav Whether yo important to problems ca This section Unders A SWC file generated by The followin File catalog.xml ActionScrip (AS) files SWF filesrting and distributing a component s components as component packages (SWC files). Components may be s SWC files or as FLA files. (See the article on Macromedia DevNet at media.com/support/flash/applications/creating_comps/creating_comps12.html ion about distributing a component as a FLA.) y to distribute a component is to export is as a SWC file, because SWC files he ActionScript, SWF files, and other optional files needed to use the component. re also useful if you are working at the same time on a component and the that uses the component. an be used to distribute components for use in Macromedia Flash 8, Macromedia er MX 2004, and Macromedia Director MX 2004. u’re developing a component for someone else’s use, or for your own, it’s test the SWC file as an ongoing part of component development. For example, n arise in a component’s SWC file that don’t appear in the FLA file. describes a SWC file and explains how to import and export SWC files in Flash. tanding SWC files is a zip-like file (packaged and expanded by means of the PKZIP archive format) the Flash authoring tool. g table describes the contents of a SWC file: Description (Required) Lists the contents of the component package and its individual components, and serves as a directory to the other files in the SWC file. t If you create the component with Flash Professional 8, the source code is one or more ActionScript files that contain a class declaration for the component. The compiler uses the source code for type checking when a component is extended. The AS file is not compiled by the authoring tool because the compiled bytecode is already in the implementing SWF file. The source code may contain intrinsic class definitions that contain no function bodies and are provided purely for type checking. (Required) SWF files that implement the components. One or more ng Components components can be defined in a single SWF file. If the component is created with Flash 8, only one component is exported per SWF file. You can opt environmen want users t Macromedia SWC files ar file name to Export Flash provid exporting a application. There are tw ■ To distri ■ To test d Exportin You can exp other option Live Previe SWF files SWD file PNG file Property inspector SWF file Fileionally include other files in the SWC file, after you generate it from the Flash t. For example, you might want to include a Read Me file, or the FLA file if you o have access to the component’s source code. To add additional files, use the Extension Manager (see www.macromedia.com/exchange/em_download/). e expanded into a single directory, therefore each component must have a unique prevent conflicts. ing SWC files es the ability to export SWC files by exporting a movie clip as a SWC file. When SWC file, Flash reports compile-time errors as if you were testing a Flash o reasons to export a SWC file: bute a finished component uring development g a SWC for a completed component w (Optional) If specified, these SWF files are used for live preview in the authoring tool. If omitted, the SWF files that implement the component are used for live preview instead. The Live Preview SWF file can be omitted in nearly all cases; it should be included only if the component’s appearance depends on dynamic data (for example, a text field that shows the result of a web service call). (Optional) A SWD file corresponding to the implementing SWF file that allows you to debug the SWF file. The filename is always the same as that of the SWF file, but with the extension.swd. (Optional) A PNG file containing the 18 x 18, 8-bit-per-pixel icon that you use to display a component icon in the authoring tool user interfaces. If no icon is supplied, a default icon is displayed. (See “Adding an icon” on page 185.) (Optional) A SWF file that you use as a custom Property inspector in the authoring tool. If you omit this file, the default Property inspector is displayed to the user. DescriptionExporting and distributing a component 183 ort components as SWC files that contain all the ActionScript, SWF files, and al files needed to use the component. 184 Creati To export 1. Select th 2. Right-cl 3. Select E 4. Save the Testing At different test it in an level Config restarting Fl To test a S 1. Select th 2. Right-cl 3. Select E 4. Browse t Configu 5. Save the 6. Select R The com 7. Drag the Importi When you d instructions To import 1. Copy th 2. Restart F The com N O T E Fo wita SWC file for a completed component: e component movie clip in the Flash library. ick (Windows) or control-click (Mac) to open the Library context menu. xport SWC File from the Library context menu. SWC file. a SWC during development stages of development, it’s a good idea to export the component as a SWC and application. If you export the SWC to the Components folder in your user- uration folder, you can reload the Components panel without quitting and ash. WC during development: e component movie clip in the Flash library. ick (Windows) or control-click (Mac) to open the Library context menu. xport SWC File from the Library context menu. o the Components folder in your user-level configuration folder. ration/Components SWC file. eload from the Components panel’s options menu. ponent appears in the Component panel. component from the Component panel into a document. ng component SWC files into Flash istribute your components to other developers, you can include the following so that they can install and use them immediately. a SWC file: r information about the location of the folder, see “Configuration folders installed h Flash” in Getting Started with Flash.ng Components e SWC file into the Configuration/Components directory. lash. ponent’s icon should appear in the Components panel. Final After you cr tip. To make developmen Adding You can add authoring en To add an 1. Create a The ima be 8-bit masking 2. Add the class def [IconFi 3. Add the includes Adding Tooltips app Component You define a from the Lib component’ To add a t 1. With th (Window 2. Click th The Lib icon of t 3. Select thsteps in component development eate the component and prepare it for packaging, you can add an icon and a tool sure you completed all the necessary steps, you can also refer to the “Component t checklist” on page 186. an icon an icon that represents your component in the Components panel of the Flash vironment. icon for your component: new image. ge must measure 18 pixels square, and you must save it in PNG format. It must with alpha transparency, and the upper left pixel must be transparent to support . following definition to your component’s ActionScript class file before the inition: le("component_name.png")] image to the same directory as the FLA file. When you export the SWC file, Flash the image at the root level of the archive. a tooltip ear when a user rolls the mouse over your component name or icon in the s panel of the Flash authoring environment. tooltip in the Component Definition dialog box. You can access this dialog box rary options menu (Windows: Right-click, Mac: control-click) of the s FLA file. ooltip in the Component Definition dialog box: e FLA file of your component open in Flash, make sure the Library is visible > Library menu). e Library options menu (Windows: Right-click, Mac: Control-click).Final steps in component development 185 rary options menu is on the right side of the Library title bar, and appears as an hree lines and a down triangle. e Component Definition option. 186 Creati 4. In the C Compon The Too 5. Enter th 6. Click O Compo When you d ■ Keep the ■ Make yo ■ Use the draw bo Reference ■ Use tag- ■ Define t ■ Assume settings when th ■ When d absolute applicati its paren consider the purp ■ Avoid m ■ Always i Super.s ■ Avoid ab ■ Use cre ■ Use inv calling d ■ When in movie sy Configuomponent Definition dialog box, under Options, select Display in the ents Panel. l tip text box becomes editable. e tooltip text for your component in the Tool tip text box. K to save the changes. nent development checklist esign a component, use the following practices: file size as small as possible. ur component as reusable as possible by generalizing functionality. RectBorder class (mx.skins.halo.RectBorder) rather than graphical elements to rders around objects. (See “RectBorder class” in the Components Language .) based skinning. he symbolName, symbolOwner, and className variables. an initial state. Because style properties are now on the object, you can set initial for styles and properties so your initialization code does not have to set them e object is constructed, unless the user overrides the default state. efining the symbol, do not select the Export in First Frame option unless ly necessary. Flash loads the component just before it is used in your Flash on, so if you select this option, Flash preloads the component in the first frame of t. The reason you typically do not preload the component in the first frame is for ations on the web: the component loads before your preloader begins, defeating ose of the preloader. ultiple frame movie clips (except for the two-frame Assets layer). mplement init() and size() methods and call Super.init() and ize() respectively, but otherwise keep them lightweight. solute references, such as _root.myVariable. ateClassObject() instead of attachMovie(). alidate() and invalidateStyle() to invoke the draw() method instead of ng Components raw() explicitly. corporating Flash components into your component, use their uncompiled mbols located in the library of the StandardComponents.fla file from the ration/ComponentFLA folder. CHAPTER 7 Coll When you c values availa property val within the P Component range of req within the c properties ca Collection p an object m through the Specifically, each called a and make it modify colle7 ection Properties reate a new custom component in Macromedia Flash, you can make property ble for editing by the user. These properties are called collection properties. The ues can be edited by the user in the Values dialog box (opened from a text box arameters tab for your component). s usually include functionality for a specific task, while remaining flexible for a uirements by the component user. For a component to be flexible, the properties omponent need to be flexible (in other words, for some components, the n be changed by the component user, as well as by the property values). roperties enable you to create an indeterminate number of editable properties in odel. Flash provides a Collection class to help you manage those properties Component inspector. the Collection class is a helper class used to manage a group of related objects, collection item. If you define a property of your component as a collection item available to users through the Component inspector, they can add, delete, and ction items in the Values dialog box while authoring.187 188 Collec You define c ■ Define a ActionS ■ Define a inspecta In Flash, Co programmat related item In addition manage Col Professional Language Re This chapte Defining a Simple col Defining th Accessing Exporting c Using a co Defin You define a file. For mo To define 1. Create a on page 2. Create a 3. In the A “About 4. Define g N O T E This se compoollections and collection items as follows: collection property using the Collection metadata tag in a component’s cript file. For more information, see “About the Collection tag” on page 157. collection item as a class in a separate ActionScript file that contains its own ble properties. llections make it easier for you to manage groups of related items ically. (In previous versions of Flash, component authors managed groups of s through multiple programmatically synchronized arrays). to the Values dialog box, Flash provides the Collection and Iterator interfaces to lection instances and values programmatically. See “Collection interface (Flash only)” and “Iterator interface (Flash Professional only)” in the Components ference. r contains the following sections: collection property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 lection example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 e class for a collection item . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .191 collection information programmatically . . . . . . . . . . . . . . . . . . . . . . . . . . .191 omponents that have collections to SWC files . . . . . . . . . . . . . . . . . . . . 194 mponent that has a collection property . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 ing a collection property collection property by using the Collection tag in a component’s ActionScript re information, see “About the Collection tag” on page 157. a collection property: FLA file for your component. See “Creating a component movie clip” 138. n ActionScript class. See “Creating the ActionScript class file” on page 143. ction assumes that you know how to create components and inspectable nent properties. tion Properties ctionScript class, insert a Collection metadata tag. For more information, see the Collection tag” on page 157. et and set methods for the collection in the component’s ActionScript file. 5. Add the Classes a UtilsCla 6. Code a c See “De Simp The followin contains a co for a compo If you impo fully qualifie import mx. // standar class MySh { // require static v static v var clas // the Col [Colle Discs",c collecti // get and public f { retur } public f { myCom } // priva private N O T E Be Fla Ac utilities classes to your FLA file by selecting Window > Common Libraries > nd dragging UtilsClasses into the component’s library. sses contains the mx.utils.* package for the Collection interface. lass that contains the collection item properties. fining the class for a collection item” on page 191. le collection example g is a simple example of a component class file called MyShelf.as. This example llection property along with a minimal set of imports, methods, and declarations nent that inherits from the UIObject class. rt mx.utils.* in this example, the class names from mx.utils no longer need to be d. For instance, mx.utils.Collection can be written as Collection. utils.*; d class declaration elf extends mx.core.UIObject d variables for all classes ar symbolName:String = "MyShelf"; ar symbolOwner:Object = Object(MyShelf); sName:String = "MyShelf"; lection metadata tag and attributes ction(variable="myCompactDiscs",name="My Compact ollectionClass="mx.utils.CollectionImpl", onItem="CompactDisc", identifier="Title")] set methods for the collection unction get MyCompactDiscs():mx.utils.Collection n myCompactDiscs; unction set MyCompactDiscs(myCDs:mx.utils.Collection):Void cause UtilsClasses is associated with the FLA file, not the ActionScript class, sh throws compiler errors when you check syntax while viewing the component’s tionScript class.Simple collection example 189 pactDiscs = myCDs; te class member var myCompactDiscs:mx.utils.Collection; 190 Collec // You mus // to forc // within private // You mus // to forc // within private // requi function super } function super } } To create 1. In Flash 2. Select In name M 3. Deselect 4. Select th Library 5. Select W MyShelf 6. In the M it Action 7. Place a s 8. Select Fr 9. Open St an instan You mus above cl 10. In Fram This can to use fo 11. Select tht code a reference to the collection item class e the compiler to include it as a dependency the SWC var collItem:CompactDisc; t code a reference to the mx.utils.CollectionImpl class e the compiler to include it as a dependency the SWC var coll:mx.utils.CollectionImpl; red methods for all classes init(Void):Void { .init(); size(Void):Void { .size(); a FLA file to accompany this class for testing purposes: , select File > New and create a Flash document. sert > New Symbol. Give it the name, linkage identifier, and AS 2.0 class yShelf. Export in First Frame and click OK. e MyShelf symbol in the library and choose Component Definition from the options menu. Enter the ActionScript 2.0 class name MyShelf. indow > Common Libraries > Classes, and drag UtilClasses to the library of .fla. yShelf symbol’s Timeline, name one layer Assets. Create another layer and name s. top() function on Frame 1 in the Actions layer. ame 2 in the Assets layer and select Insert > Timeline > Keyframe. andardComponents.fla from the Configuration/ComponentFLA folder, and drag ce of UIObject to the Stage of MyShelf in Frame 2 of the Assets layer. t include UIObject in the component’s FLA file because, as you can see in the ass file, MyShelf extends UIObject. tion Properties e 1 of the Assets layer, draw a shelf. be a simple rectangle; it’s just a visual representation of the MyShelf component r learning purposes. e MyShelf movie clip in the library, and select Convert to Compiled Clip. This allo library) compon compon Defin You code th as follows: ■ Define t ■ Define a ■ Define a The followin class Comp [Inspec var tit [Inspec var art } To view the Acce progr Flash provid interfaces. T The Iterator There are tw ■ “Accessin ■ “Accessin Advanced d programmat in the Comp N O T E Yo comws you to drag the MyShelf SWF file (the compiled clip that’s added to the into the MyShelf.fla file to test the component. Whenever you recompile the ent, a Resolve Library Conflict dialog box appears, because an older version of the ent already exists in the library. Choose to replace existing items. ing the class for a collection item e properties for a collection item in a separate ActionScript class, which you define he class such that it does not extend UIObject or UIComponent. ll properties using the Inspectable tag. ll properties as variables. Do not use get and set (getter/setter) methods. g is a simple example of a collection item class file called CompactDisc.as. actDisc{ table(type="String", defaultValue="Title")] le:String; table(type="String", defaultValue="Artist")] ist:String; CompactDisc.as class file, see “Simple collection example” on page 189. ssing collection information ammatically es programmatic access to collection data through the Collection and Iterator he Collection interface lets you add, modify, and remove items in a collection. interface allows you to loop through the items in a collection. o scenarios in which to use the Collection and Iterator interfaces: g collection information in a component class (AS) file” on page 192 u should have already created the CompactDisc class; otherwise, you’ll get piler errors when converting to a compiled clip.Accessing collection information programmatically 191 g collection items at runtime in a Flash application” on page 193 evelopers can also create, populate, access, and delete collections ically; for more information, see “Collection interface (Flash Professional only)” onents Language Reference. 192 Collec Access class (A In a compon during auth To access co following ap ■ The Col mx.utils [Collec colle ident public ■ Access th Collect var itr ■ Use the Iterato collectio while ( var b ... } ■ Access c example item.la if (but item. } else { item. }ing collection information in a component S) file ent’s class file, you can write code that interacts with collection items defined oring or at runtime. llection item information in a component class file, you can use any of the proaches. lection tag includes a variable attribute, for which you specify a variable of type .Collection. Use this variable to access the collection, as shown in this example: tion(name="LinkButtons", variable="__linkButtons", ctionClass="mx.utils.CollectionImpl", collectionItem="ButtonC", ifier="ButtonLabel")] var __linkButtons:mx.utils.Collection; e Iterator interface for the collection items by calling the ion.getIterator() method, as shown in this example: :mx.utils.Iterator = __linkButtons.getIterator(); Iterator interface to step through the items in the collection. The r.next() method returns an Object, so you must define the type of your n item, as shown in this example: itr.hasNext()) { utton:ButtonC = ButtonC(itr.next()); ollection item properties, as appropriate for your application, as shown in this : bel = button.ButtonLabel; ton.ButtonLink != undefined) { data = button.ButtonLink; enabled = false;tion Properties Access Flash a If a Flash ap collection pr the Values d To access 1. Open th See “Sim This exa 2. Open th This exa 3. Select th Click th right of 4. Use the 5. With th code (wh onClipE impor impor var m myCol var i while va va va tr } } To acces iterator compone 6. Select C Output ing collection items at runtime in a pplication plication uses a component that has a collection property, you can access the operty at runtime. This example adds several items to a collection property using ialog box and displays them at runtime using the Collection and Iterator APIs. collection items at runtime: e MyShelf.fla file that you created earlier. ple collection example” on page 189. mple builds on the MyShelf component and CompactDisc collection. e Library panel, drag the component onto the Stage, and give it an instance name. mple uses the instance name myShelf. e component, open the Component inspector, and display the Parameters tab. e line that contains the collection property, and click the magnifying glass to the the line. Flash displays the Values dialog box. Values dialog box to enter values into the collection property. e component selected on the Stage, open the Actions panel and enter the following ich must be attached to the component): vent (mouseDown) { t mx.utils.Collection; t mx.utils.Iterator; yColl:mx.utils.Collection; l = _parent.myShelf.MyCompactDiscs; tr:mx.utils.Iterator = myColl.getIterator(); (itr.hasNext()) { r cd:CompactDisc = CompactDisc(itr.next()); r title:String = cd.Title; r artist:String = cd.Artist; ace("Title: " + title + " Artist: " + artist); s a collection, use the syntax componentName.collectionVariable; to access an and step through the collection items, use ntName.collectionVariable.getIterator().Accessing collection information programmatically 193 ontrol > Test Movie and click the shelf to see the collection data in the panel. 194 Collec Expo collec When you d following de ■ Collectio ■ Collectio ■ Collectio ■ Iterator Of these file them as dep output SWF However, th specific colle To include t you define p example sho // collect private va // collect private va For more in Using prope When you u dialog box t To use a c 1. Add the 2. Use the 3. Open th 4. Click th right of Flash disrting components that have tions to SWC files istribute a component that has a collection, the SWC file must contain the pendent files: n interface n implementation class n item class interface s, your code typically uses the Collection and Iterator interfaces, which marks endent classes. Flash automatically includes dependent files in the SWC file and file. e collection implementation class (mx.utils.CollectionImpl) and component- ction item class are not automatically included in the SWC file. he collection implementation class and collection item class in the SWC file, rivate variables in your component’s ActionScript file, as the following ws: ion item class r collItem:CompactDisc; ion implementation class r coll:mx.utils.CollectionImpl; formation on SWC files, see “Understanding SWC files” on page 182. a component that has a collection rty se a component that includes a collection property, you typically use the Values o establish the items in the collection. omponent that includes a collection property: component to the Stage.tion Properties Property inspector to name the component instance. e Component inspector and display the Parameters tab. e line that contains the collection property, and click the magnifying glass to the the line. plays the Values dialog box. 5. Click th 6. Click th collectio 7. Click O For informa runtime in ae Add (+) button and define a collection item. e Add (+), Delete (-), and arrow buttons to add, modify, move, and delete n items. K. tion on accessing a collection programmatically, see “Accessing collection items at Flash application” on page 193.Using a component that has a collection property 195 196 Collection Properties Inde Numer 9-slice not su A accessibility 2 ActionScript audience for B best practices Binding tab, bitmap cachin broadcaster 6 C class file about 144 example 1 class keyword 146 class style sheets 82 classes and comp creating re creating. S defining 1 extending importing selecting a UICompo UIObject className va code hints, tr collection item defining 159 inspectable 151 setting 55 viewing 55onent inheritance 18 ferences to (tutorial) 25 ee creating components 46 See also individual component names components 143 ActionScript class 143x ics pported 19 0 class files 143 this document 8 for component development 186 in sample application (tutorial) 30 g not supported 19 4 43, 189 collection properties accessing programmatically 191 defining 188 defining classes 191 example 189 exporting components 194 using 194 Collection tag 157 colors customizing 82 setting style properties 92 columns adding (tutorial) 31 compiled clips about 19 in Library panel 54 component class file. See class file Component inspector Binding tab 30 setting parameters 55 component parameters about 55197 137 146 parent class 136 nent 137 137 riable 147 iggering 58 191 adding an icon 185 adding at runtime 52 adding to Flash documents 50 adding tooltips 185 architecture 17 assigning skins 168 available in Flash MX editions 12 categories, described 16 198 Index class file ex class overv className common e creating m creating su defining d defining in defining p defining si defining v deleting 5 developme dispatchin editing mo events 63 example o example o exporting exporting exporting extending Flash Play getter/sett importing inheritanc installing invalidatio loading 6 metadata t metadata, preloading previewing registering selecting a selecting s source file structure o styles 169 symbolOw testing SW using in an See also ind Components ComponentT JavaScript createClassO CSSStyleDec customizing text 82 customizing cample 143 iew 144 variable 147 vents 167 ovie clips 138 bobjects 162 raw() method 165 it() method 162 arameters 159 ze() method 165 ariables 148 7 nt checklist 186 g events 166 vie clips 139 f building a component 127, 173 f class file with collection 189 and distributing 182 component as SWC 183 SWC files 183 classes 137 er support 17 er methods 148 SWC files 184 e 18 12 n, about 166 2 ags 149 ComponentTask tag 158 60 60 skins to styles 169 parent class 136 ymbol names 147 s 125 f 126 ner variable 147 C files 184 application (tutorial) 21 ividual component names panel 50 ask tag (JSFL) 158 bject() method 162 D data binding, with XML file (tutorial) 29 data grids. See DataGrid component data types, setting for instances (tutorial) 27 DataGrid component adding columns (tutorial) 31 binding to DataSet (tutorial) 29 DataSet component, binding to XMLConnector and DataGrid (tutorial) 29 defaultPushButton property 59 Delegate class (tutorial) 73 deleting components 57 DepthManager class, overview 59 Dial component 127, 173 dispatcher (event broadcaster) 64 dispatching events 166 documentation guide to terminology 9 overview 8 draw() method, defining 165 E event listeners. See listeners Event metadata tag 153 events about 63 common 167 delegating scope 73 dispatching 166 event object 77 handler functions 63 metadata 153 See also individual component names exporting components 182 extending classes 137 F Flash JavaScript (JSFL), ComponentTask tag 158 Flash MX editions and available components 12 Flash Player and components 17 support 62 FlashType not supported 19 FocusManager class, creating focus navigation for 58laration 86, 87 olor and text, using style sheets 82 G getter/setter m global style d grids. See Dat H Halo theme handleEvent handler funct I icon, for a co import statem inheritance, i init() method inspectable p installing com instances setting sty style decla invalidate() m L Label compo tutorial 4 library compiled Library pa StandardC linkage identi listeners about 64 functions objects 65 scope 71 using with using with Live Preview loading, comethods 148 eclarations 86 aGrid component 108 callback function 68 ions 63 mponent 185 ent 146 n version 2 components 18 , defining 162 arameters 151 ponents 12 les on 84 rations 82 ethod 166 nent 0 clips in 54 nel 54 omponents 139 fiers for skins 96 69 component instances (tutorial) 37 components (tutorial) 32 feature 60 ponents 62 M metadata about 149 Collection tag 157 ComponentTask tag 158 Event tag 153 Inspectable tag 151 tags, list of 150 movie clips creating 138 defining as component 141 MovieClip class, extending 138 O on() event handler 78 P packages 18 parameters. See component parameters parent class, selecting 136 preloading components 60 previewing components 60 Property inspector 55 prototype 106 R resources, additional Macromedia 9 S Sample theme 108 screen readers, accessibility 20 ScrollPane component tutorial 40 size() method, defining 165 skin properties changing in the prototype 106 setting 96 skinning components 96 skins applying to components 101 applying to subcomponents 103Index 199 creating variables for 168 editing 99 linkage identifiers 96 See also individual component names 200 Index StandardCom style declarati custom 8 default cla global 86 setting cla style properti style sheets class 82 custom 8 styles about 82 creating co determinin setting 82 setting cus setting glo setting on using (tuto See also ind subclasses, us subcomponen subobjects, cr superclass key SWC files about 19 and comp exporting exporting file format importing testing 18 symbolName symbolOwne system requir T tabbing 58 tags. See meta terminology i testing SWC text, customi TextInput com themes about 108 applying creating 1 tip text, addin typographicalponents library 139 ons 7 ss 89 ss 89 es, color 92 2 mponents 169 g precedence 92 tom 87 bal 86 instance 84 rial) 27 ividual component names ing to replace skins 106 ts, applying skins 103 eating 162 word 146 iled clips 19 183 collection properties 194 182 184 4 variable 147 r variable 147 ements for components 8 data n documentation 9 files 184 zing 82 ponent (tutorial) 40 U UIComponent class and component inheritance 18 overview 137 UIObject class about 137 upgrading version 1 components 62 V Values dialog box 187 variables, defining 148 version 1 components, upgrading 62 version 2 components and Flash Player 17 benefits 16 inheritance 18 W web service, connecting to (tutorial) 28 WebService class (tutorial) 28 X XMLConnector component binding to DataSet component (tutorial) 29 loading an external XML file (tutorial) 31 specifying schema (tutorial) 29113 11 g 185 conventions 9

Các file đính kèm theo tài liệu này:

  • pdfSử dụng flash 8.pdf
Tài liệu liên quan