ActionScript 3.0 :: Two Symbols Sharing The Same Class?
Jul 25, 2011
In my library I have a few symbols (with diffrent graphics) that I want to share the same class (the same methods I written in as3).
First I tried to set the same name on the class line when converting to symbol but Flash then tells me that the name have to be unique. So I tried diffrent ways of inherit the class in each symbols custom class, but I didn't get that to work either..
I've been sorting through the XML docs and i've bumped my head into a bit of a question. So, to preface, I have been able to load the XML successfully, but I want to be able to use my own XML loader class to load the XML and then be able to reference it from the document class. Also, I'd like to be able to send a file path to the loader class when I call it.
I have two MovieClip symbols in my library and I want them to share the same class, but Flash doesn't allow me to assign the same class to any two different MC symbols, so instead I created two bogus classes which extend the class I wished to share initially.
So having two MC symbols defined by 2 different classes extending a different class allows me to share the same piece of code.
My Question: is there a better was to share a class between 2 or more different library symbols?
I have four instances of the same class called Tile, that is bound to a movieclip with four frames. They're imbedded in a movieclip that I'm using to hold all of the visuals.In the main class of my .fla I declare a variable called menu1 that is bound to another movieclip with 2 buttons on it.
I'm trying to make three things happen here: on clicking the Tiles the menu will pop up over the tile that was clicked; that on clicking another tile when the menu is already up it will close that one before adding a new one; and lastly, that on clicking the second button in the menu, it will change the frame of the tile clicked and close the menu.The tile.as has an addeventlistener in it's construction method to add the function onTileClick to each Tile.
public class Tile extends MovieClip{ public function Tile():void{ addEventListener(MouseEvent.CLICK, onTileClick);[code]....
This works fine for one tile. I can click on it, the menu pops up, I can close and reopen the menu as many times as I want, and I can use the other button with no problems.Also, clicking around on different tiles moves the menu around without repeatedly adding it, so that seems to be working fine as well.The problem is this: If I click on a tile, close the menu, then click on another tile and close it, I get an error 1009.It still closes, that error just comes up. And it will come up for any more tiles I open and close it on.Then, after clicking on however many tiles, if I do click the advance button, it affects all of the tiles, and I get an ArgumentError: Error #2025 for each tile clicked on.I tried adding a variable that held the event.target value in the onAdvance function, and using that for the gotoAndStop, but the same thing happened. When I tried tracing the name of the variable, I noticed that it was tracing the names of each tile clicked with each subsequent trace.
Am I building this all wrong?I thought that making a class for my tile object, and adding eventlisteners to the class, and adding the functionality of the tiles inside of the class would be good practice for Object Oriented Programming, but it seems to be producing nothing but errors. When I defined these tiles inside the main timeline, with separate event listeners, I didn't have this problem
Is there any way for movieClips to share the same class definition?When you have alot of objects to keep track of it becomes a pain to have to write separate actionscript files to do the same thing.For example if I:Create an actionScript file which extends movieClip with the name ClassX.as with all the nescessary code incased in package{}I try properties>export for actionscript>ClassX.as for two movie clips (each with different graphics).An error occurs on the 2nd movieClip complaining that the class I used was not unique. y other question is how do I make an actionscript file file that both extends a movieClip and another class.For example:In a game there is a movieClip for an enemyShip1 with its own class definition contained in an actionscript file (defining its behavior)There are 2 child objects enemyShip2A and enemyShip2B each of which have there own images,class definition but which inherit all the functions from the enemyShip1Class.It would seem that the logical thing to do would be:
Is there a way for 1 class to have multiple symbols, (not individual instances but symbols) Or should I just make a major Class with minor classes extending that one class?
I've got a question which is primarily an OOP question, but it is specific to AS3 in it's implementation.
I writing an interface which consists of displaying a (circuit) card rack which holds twenty cards of various types. Some of the properties of the cards are common to all cards such as slot number, card type, id, etc. They also behave similar when clicked on, taking you to another view.
It seems to make sense to create an abstract class (Card) that has all the common properties and behavior of all the cards, and then extend that class to create the specific card types, but the problem is that the display objects representing the cards are movie clip symbols in the library.
It boils down to this question: How do I extend a class that is already extending the movie clip class (a symbol in the library)? I know that AS3 doesn't allow it, but I figured someone has probably run in to something like this before.
I frequently create a lot of Library Symbols, export for Actionscript, letting Flash auto-generate the Class & extending a custom base-class in order to give them all custom functionality w/out having to create a Class for each, and/or without having to create a FactoryClass for instantiating X number of ClassObjects for each Symbol to be added to.It's really fast for prototyping, and with this workflow I've only hit a few obstacles. Those are:
1 - If the Symbol has children you cannot give the children instance-names, else the compiler gives an error related to automatically declaring stage instances. Two workarounds for this are that you can uncheck automatically declare stage instances, and do it manually in your base-class. or you can avoid using instance-names, and use getChildAt().
2 - If the Symbol is a MovieClip, the timeline doesn't inherit the base-classes imports. I don't have a workaround for this.are these limitations that could be addressed by Adobe's Flash team, or are they limitations that are unavoidable without altering the workflow?
I've started a new cs3 flash file. I've created a few symbols, scattered them about the stage, then gone to start writing my class file. I've created the class fine and i have created an external .as with the same name as the fla file (miniGolf.fla and miniGolf.as). The problem is that i can't link the fla to the .as. Every time I click the little pencil icon I get an error saying:
"You must specify a unique class name that is not associated with any library symbols"
Is there anyway that Actionscript allows multiple symbols to be linked to the same class? This is because the symbols' are diff. in appearance but the same in functionality. It seems a bit redundant to create a new class everytime.
I stumbled upon this while trying to customize the tree component following the example on the LiveDocs, see [URL].. To see the problem, do the following:
PART 1: 1) create an empty test.fla file 2) put a tree component on the stage 3) convert it to a symbol named TreeNavMenu, export for Actionscript as TreeNavMenu
when you have a document class for something, how do you load the symbols?lets say you have a gallery and a few buttons for it, and you will load that gallery swf into main site.is it better to leave these symbols on the stage or load them from the library or something else?
I have been busy building the UI for a class file I wrote a while ago.
The problem I have is in referencing the symbols on the TimeLine. All the symbols have an instance name, and only exist in the first frame (main timeline has only one frame anyway).
At the moment I am instantiating my AS3 class file from a timeline layer using[code]...
I used this tut to create a menu. [URL] And my question is; Can I make the slider to move after a movie clip symbols instead of button symbols? That way my menu would be animated.
I'm working through a book called Foundation Game Design with Flash, and I'm finding the Flash IDE confusing. I've been programming for several years, so working with AS3 directly is far easier than trying to understand symbols and nested symbols and the difference between graphics and movie clips and scoping issues and all that -- when tied into the IDE.
How many of you who are making games in AS3 also use the Flash IDE? Can anyone recommend a resource that is AS3 heavy and Flash IDE light? I don't care how much time I may or may not save by using things like the timeline, I just want to understand what I'm using.
I'm attempting to use CS4 (PC/Vista, if that matters) to create a SWF file that will basically act as a "library" of commonly used symbols. This SWF would be loaded at runtime by other SWFs, which could then use the symbols within it, including all art and code assets.
In my library I have:A Sprite named Emily of base-class "Character" with a sub-sprite labeled "head" of auto-generated Class "EmilyHead".A Sprite named Jess of base-class "Character" witha sub-sprite labeled "head" of auto-generated Class "JessHead".
Flash compiles with the following warning: Warning: All instances named 'head' will be automatically declared as JessHead in symbols that use Character as their base class. In symbols that are linked to user-defined base classes, instances with the same name must be of the same type. And then the runtime error:TypeError: Error #1034: Type Coercion failed: cannot convert EmilyHead@3a0d1e81 to JessHead. at flash.display::Sprite/constructChildren() at flash.display::Sprite()at Character() I can turn of auto-declare stage instances in the Actionscript 3 panel, but then I have to manually add a public var for all sub-child's, such as the head sprite. But then at least everything works as expected. This is more setup than I'd prefer to do, but everything else about this workflow is very fast & easy. What can I do to sidestep this error, while keeping the same workflow?
I am customizing Google Maps for Flash.I have an external .AS file for my document class and one .AS file that extends the look of the Google Maps popup window.I am importing the locations of many apartment buildings from an XML file. The XML is being read in the main .AS file.There are textfields I need to populate in the popup.AS file but I don't know how to get that XML information from the document class .AS file into the popup.AS file. I wouldn't think I need to run an XML loading function in the popup.AS file right? how I can get variables from one .AS file to another?
How would I set it up so that I can share a single piece of art across multiple files? My goal is to arrange it so that I can edit the art in the original file and automatically update the art in all files linked to it when published?
For example, I'm working on a character animation where the character appears in many episodes and the episodes are split into many .fla files. If I needed to change the appearance of the character in all of the episodes which are spread across many .fla files, I would I have to do it manually?
Say I create a swf and in it, I have two dynamic text fields. I do all the usual stuff like give these text fields instance names. I call this swf1.Now say I load swf1 into another swf, say swf2. Can I set the values to be placed into the text fields in swf1 from within swf2?
As you know, we could build a RIA application based on flex. Also, we could build an desktop application based on AIR. I have a question, If we want to build web & desktop application simultaneously. Could we use the same codes to ship our production to web & desktop?
Are there any off the shelf components for adding a screen sharing feature to my app?I've built real time text chat for a group chat room - now I'd like to have a button where a user can share their screen with the other members of the chat. Basically, I'm looking for a way to add this feature as easily as possible:
flash video that incorporates buttons to share to sites like twitter or facebook? For example at the end of a video at youtube you are presented with a share button. At vimeo there are links on the right hand side of the video for like, share, embed, etc. Are these buttons (i.e. links) added during creation of the video or are they added by the site itself?
I am trying to build a small site that allows a user to upload videos and have a 'share to facebook' and 'share to twitter' button show up in the video when the video is done playing.
I have Flash project that is set up something like this:
myProject.fla
- document class = myMenu.as
- the document class imports a menu item from menuItem.as (import menuItem;)
I have a function in myMenu.as that sets the text formatting for all the text fields on the page. I want to be able to use this same function in menuItem.as so that all the formatting is consistent & you only have to change it in one place. How do I access this function from both myMenu.as & menuItem.as?
I have an issue with an apparent bug in Flash Pro CS5.5. I have recently upgraded to CS5.5 Master Collection from my previous version of 4.0. The bug is when I create a fonts FLA file with fonts embedded in it that I want to use throughout an entire site. I correctly configure those fonts as export for runtime sharing.
In any other FLAs in which I wish to use the shared fonts, I either (a) drag the assets from one library to the other, or (b) add them to the new fla and configure them as import for runtime sharing (both of which achieve the same result).
i have in my flex application various mxml components that all need to show stats based on the same data. how can i go about doing that? do i need some mvc framework like cairngrom or puremvc for that or can i do it without them?
I'm developing a web app based on videos that my client would like to upload using an online resource such as YouTube or Vimeo. Since YouTube has a 15 mn restriction length on the videos one can upload, my client has decided to use Vimeo instead, but Moogaloop(!) the Vimeo AS3 API is fairly restrictive and only offers a handful of methods to control the video.
What would be your best AS3 API for an online video sharing site? By best , I mean one that allows as much control as possible over the site's player features. I need to be able to listen to events , control the fullscreen capability , enable/disable some specific features such as a "embed" or "share" button.