ActionScript 3.0 :: Creating Classes - Use Of Linkage And Library?
Oct 11, 2010
I am starting to create classes instead of using the timeline and I am learning a lot more even if mistakes happen more often. However I have a question about linkage & library. For example let say that I have a ball pic called Ball1.mpg. I copy and past that Ball1.mpg in my folder where the Fla file is as well as the as file. If I want to utilize this Ball1.mpg in my code using Flash do I absolutely need to import into my library and link it and export using linkage? Or can I use the object Ball.1mpg just using actionscript. Of course that implies that I would use an actionscript class not the timeline.
I have just started my first project using AS3.0 and Flash 9 this week.I feel like I know AS3.0 from my flex experience very well, but it is downscaled for Flash 9. Anyway I have looked for this issue in the forums and maybe I am just missing something.I have a class we'll call MyClass which extends Sprite. I have several methods in there that update things like rotation and position based on events it is listening for via the model. I even have a trace statement in the constructor for testing.
Now maybe this is just stupidly obvious but when ever I set a library element to link with the class (i.e. linkage = MyClass), all my script fails to work. If I remove that linkage and work from a purely data perspective it works as expected.I have the project settings to Flash 9 and AS3.0 so that shouldn't be an issue.
Flex complains if I want to create an object from a library symbol with linkage: 1180: Call to a possibly undefined method [linkage name]. So to avoid this, I create a class for that symbol, in this case extending BitmapData using Flex's new ActionScript Class feature. Flex create that class for me and the constructor looks like this: public function CustomBitmapData(width:int, height:int, transparent:Boolean=true, fillColor:uint=null)
I'm kind of messy and I ussually change the class linkage name a lot .
What happens with unused anymore linkage classes ? Are they automatically deleted by flash CS3 IDE ?
Edit:Long time no answer What I mean is not if they are still available (haven't tested but probably aren't) , what I mean is will those linkage classes be compiled into swf increasing the size or not ?
In my project I have to classes that inherit the MovieClip class. Then I create a movie clip and in the library I click on linkage and I set on AS2 class field the name of the first class. Inside this movie a create another movie clip and I set his AS2 class to the second class. The problem is, when I run the file the properties of the nested movie clip are not available for the parent. What a mean is that in the constructor of the first class I cannot acces the methods of the nested movie clip. Somehow I need the nested movie clip to be initialized first and then the parent.
I have a fla with nested swf's. My question is, can I update a swf in the fla library if I have changed it within its own source fla and re exported to the same swf file name. ( as can be done with graphics in Indesign )
currently this is the problem i'm having.i'm exporting a symbol - song1 - from my library to AS ("export for actionscript") and then using it to dynamically create some movieclips (hereafter referred to as MC's) on the stage. each MC contains a text field that is filled by an value in an array....
Code: function xmlLoaded(event:Event):void { songList_XML = new XML(xmlLoader.data); var songNodes:XMLList = songList_XML.song.title var songTime:XMLList = songList_XML.song.time
[code]....
Now all this works without a hitch - all the trace statements produce what they are supposed to and the MC's appear on the stage where they are supposed to and with the proper text (song name song time).
BUT - here's what i don't understand - *how do i REFER to the INSTANCES of each clip*?because they are created dynamically they don't have instance names and there is no way to assign them instance names via AS (right?).i tried to use the Display List to access them by assigning each one a name (last line - commented out) and then using the getChildByName() method - for ex. getChildByName("nameSong1"). but that didn't work either... i have a few other ideas but they all seem ridiculously complicated - i believe there's GOT to be a *simple* solution for this but i've checked all the references i have (O'Reilly, AS Bible, and others) and found almost nothing. just the display list trick above which didn't work.
Is there anyway in ActionScript 3.0 to assign instance names to movieclips in the library without assigning linkage id? I said that because I have over 1000 movieclips in the library that I need to be able to manipulate at runtime. I hope I don't have to Right Click -> Linkage... a thousand times to assign the linkage IDs. How can I reference to the library movieclips without having to name 1000 times?
I am creating a library in AS3. Inside the library I make use of a bunch of classes/packages that need not be exposed to the end user of my lib. I want to only expose one of these classes.
I guess my questions are:
1) How are libraries commonly distributed in AS3?
2) Is there a .jar equivalent in AS3 that developers can include, but will only have access/knowledge of the classes I've declared as public?
So I have 20 buttons on a page..and i want it so that a certain button when i click it.. it starts a sound and cuts off all the other ones that may have been playing...this is my code...
on (press) { stopAllSounds(); }[code].......
..but it doesn't workwhat am i doing wrong?I made sure to enable action script in the linkage library too
right now i have some items in my library that use a base class using the linkage menu item by right clicking on the item in the library.
i want to dynamically populate the movie clips instead of them being already in the library. I know how to create/populate the movieclips by using the loader class, but i am not sure how i assign the base class to each movieclip i create in my .as file
I have a button symbol in the library that has a linkage. When I run my movie, everything works fine. If I go into the properties of that button turn off linkage, then immediately turn it back on with the same settings, then run the movie. I get; 1046: Type was not found or was not a compile-time constant: Phase02_btn. 1180: Call to a possibly undefined method Phase02_btn.
i know flash has problems with preloading files that use linkage... i know it has something to do with 'export in first frame'. because when you have that checked you can preload it because its on the same frame as the preloader... but if i dont have it checked it isnt exported and when i click a button i cant hear anything... how to work around this? how must i preload / link my embedded sound files?
I have a big tedious project which requires to change all library symbol linkage URL�s (into the same name). Instead of copying/pasting,is there a way to do this at once (using a JSFL perhaps?)
If one uses [Embed] to refer to external graphic assets its easy to instantiate and use them.However, I've got a png in an Fla, with the Class identifier set to "Symbols", Base class is BitmapData.I need to instantiate it like this:
var symbols:BitmapData = new Symbols(1, 1); addChild(new Bitmap(symbols));
Of course the compiler complains about a call to a possibly undefined method Symbols.For a temporary fix I guess i'll put the graphic external to the swf, but for this project it needs to be in the library along with everything else.
I have a movie clip that holds one bitmap image, some simple AS3 to change the image displayed, and a ton of bitmaps I've imported into my library.Currently, I swap the images by changing the bitmapData
holder.bitmapData = new test2(1,1);
but this requires me to check off 'Export for ActionScript' in every symbol. I'd rather not go through every bitmap in the library and do this, is there some way to reference them by their library name?
How do I reference a library movieclip in a class? I couldn't get it to work entering the name of the class in the linkage properties (as2 class name text field). The variable was undefined. I know I'm missing something....what is it?
I have created this madly complex menu rollout with buttons, tweens lables with dynamic text- you name it..... now I want to duplicte this symbol and change its colour to make a new menu tab, but when I try to do this (by going into it and duplicating each nested part- I am getting a linkage error- **Warning** The linkage identifier 'Symbol1' was already assigned to the symbol 'Symbol 2', and cannot be assigned to the symbol 'Symbol 1', since linkage identifiers must be unique.
I have a symbol named picHolder. In symbol properties under linkage, I chose "Export for ActionScript" and "Export in frame 1" and gave it a class name of picHolder.Normally, to instantiate a new instance, I'd say:
Code: var tempPic:picHolder = new picHolder(); and I'd go about my way.
I'm trying to create a linkage to swap movie clip dynamically. I already create a linkage and after my movie clip symbol actuall say Export: contact_idea. But when I try to attachMovie("contact_idea"). It does nothing. Is there anyway that I can test that the linkage is actuall linked?
I've created a carousel class which takes one parameter, an array of menu item names, these will then be displayed on the carousel. I've then created two movieclips for the left and right controls, added them to the library and given them classes of their own.Within the carousel class I instantiate instances of the two control classes which then enables me to add event listeners for rollover and rollout.
What I'd like to know is, is this the best way to do this short of creating the controls using pure actionscript?I'd like to not have to add the class properties for the left and right controls and have a situation where I could just give them the right name and they would work or maybe pass them in as parameters and use them that way.
I'm having some doubts about how to access some features of embedded files and loaded.
For example, I created a .fla and added a symbol to your library - a MovieClip with name and class circle. Then convert the .fla to .swf, thus becoming test.swf.[code]...
The one thing that was never covered (that I read) was how to set up your library. As a result, I have been guilty of starting a project folder and copy/pasting all of the classes I need into each project folder. (As a result I have like 30 copies of TweenLite on my PC). I have done some searching, but the topic seems elusive... I have also read where most people use a reverse web address format (e.g., "com.site.page"). So my questions: Is there a standard way of setting up a library for your classes?WHERE does the "com" folder live on the directory (ex: c:com, or c:Adobecom, etc).How do YOU have your library set up?
I was wondering if anyone knew how to create a .swc library file that could be used in Flash or Flex?I want to compile a custom package of classes into a .swc for use and download,
How do you access Library items from classes other than the document class?For example, if I create a movie clip in Flash and Export it for Actionscript with the name Foo, I can do this in the document class:
Code: Select allvar f = new Foo(); this.addChild(f);
And it appears on the stage, as it should. But I need to be able to create other instances of this object from other classes. If I use the same code above in SomeOtherClass.as, I get nothing on the stage, obviously because this class doesn't know about the Foo object in the library.
I've been heavily mired in 3D recently, and decided to pay a visit back to good ole Flash.
My problem is this. I'm extending the MovieClipLoader class to create a Preloader Class (yes I'm sure it's been done fifty billion times but). I'm trying to refer to a symbol in a common library, the preloader symbol itself.
baseClip is a MovieClip object which takes a MovieClip passed to the constructor of the class in the FLA. (say a container movieclip which has a target clip preloaded into it) The class does load the target clip into the baseClip, but doesn't show the preloader, which makes me think I'm not referring to it properly.
1. I've got a Main Document class, that loads external swf each with its own document class (they are pages and pieces of the site).
2. The Main class makes use of some movieclip simply instantiated from the GUI library. It all goes fine.
3. The external swf have references to the Main class, and here start problems: when I compile them, I get an error for every library mclip used by Main. See the attachment. A simple trace(Main) is enough to start getting all that errors.
A partial solution is to uncheck Strict Mode in publish settings