Flash :: Instantiate Objects With Similar/identical Functionality But Different Properties?
Aug 25, 2011
New to AS3, long time programmer. Essentially I am creating a myriad of objects, all of which will have the same functionality, although the properties will vary between each object, including the artwork. I believe they will all be movieclips as they will be interactive and I believe they will be moving.
I am wondering what the best way to create these objects are. I am assuming that I create an object class with the functionality and properties, I'm just unsure how to instantiate multiple copies with different properties, if that makes sense.
I'm about to start on a side-scrolling game which will involve around 10 different characters the play could choose from and probably about 20 different enemies. Each of these will have slightly different graphics, movement speeds, attack rates, etc. but I'm wondering how to manage it. The way I see it there's two options: Have a general classes "Player" and "Enemy" with a setter method for the exact character which could set a bunch of class variables like speed, max health, etc.. Most of the code would be the same but I'd need a lot of "if" statements in some places (ranged attack vs. sword, etc.).Have a whole bunch of classes "Goblin", "Scarecrow", "Skeleton", etc. that inherit from "Player" or "Enemy". All the stats could be hard coded in individual classes, no need to perform multiple checks on which character it is, but there will inevitably be some code repetition.
I'm bearing in mind that I'll have to reference these regularly. For example, each "Player" will probably have a "target" class variable to track who it's moving towards/attacking. If I strongly type this as "Enemy" and then set it to an instance of "Goblin", for example, will it be cast to "Enemy"? Is that a bad thing performance wise? What about using Vector.<Enemy> for tracking objects on screen? I'm guessing I'll have the same casting issue if the actual objects I push there are instances of Player's sub-classes. Will it negatively impact performance to have ~30 extra classes if I go with option 2?
What I have is a game with a Level object, inside the Level is a Player object, and they don't have instance names given, what I'm trying to figure out is how to do is make it so that the player can change the x or y properties of the Level object.
To be more precise, I'm making it so that when the player moves in a certain direction, he either moves accross the stage, or he starts moving the Level object around the stage, it'd be in an Event kind of function, now I can easily make the Player move, but I don't know how to make the Level object move which the player is inside of.
Does creating a new instance of an Object that uses an identical name to an older instance, delete the previous instance? Or should the original instance be deleted first? The code uses a ridiculous amount of XML vars. Isn't it less memory intensive to parse the XML and save the properties to an Object, and then delete the XML Object, rather than keep the XML Object around and reference it's child nodes directly? Is it better form to break up a huge XML file (>600lines/3200vars) into smaller chunks?
Such as the famous game Plants VS Zombies, or Machinarium. They have Mac and PC version, and even online flash demo. It must be a flash engine or something, does anyone know this, what's that?
I am trying to make a web page that has multiple of the same SWF on it. I am having a problem with it being stupidly slow loading (download time is fine though). I have a 4x4 table in each cell there is a swf file embedded in an iframe. (Note: 4 X 4 table => 16 SWFS).
Is there a good way to embed multiple identical swfs into a web page? Why are IE and Firefox struggling so poorly? I suspect it has to do with the fact that both IE and Firefox each only have one thread to run plugins (Flash) in. I have a similar app written in AS2 (not written by me, I just have the swf file). It is much more complex but it loads orders of magnitude faster in IE and FF. Is there a reason that AS3 pins the browser when AS2 does not? How can I embed multiple AS3 swfs into FF & IE 7 without pinning the browser? Is there a way to make an application that is more light weight?
Can anyone offer a clue as to why flashdevelop would compile to a smaller swf than Flash Builder?The FD swf is 150k, FB swf is 220k.I'm exporting as a release build in FB.
How can you call objects based on properties they have instead of object names? For example if i want all the objects in an area to move somewhere else. Thats not what im trying to do but just an example. Also im using flash mx 2004
I have created a class, that is simply a group of text fields. In the main app, I create instances of this class, and add them to the main app. How can i access the textFields that are in the class, to say, change the text, etc... When I try, I get this: 1119: Access of possibly undefined property txtHeadLine through a reference with static type Article.
Previously I post a discussion on this matter on Flex Adobe forum and still don't understand what needs to be done. So, I'll try my luck again on stackoverflow. I'm using drag and drop data binding functionality in flash builder 4 on a data-grid. However, the data I need to show need to be query from another object.
i'm currently using a dictionary to associate a boolean to my (non-dynamic) sprites, but i would like to know if there is a smarter way of doing this? i could just use MovieClips to assign my properties instead of Sprites since MovieClips are dynamic, but i will not be using any of the MovieClip properties or functions so it comes down to a best practice issue. basically i want to create a state boolean property on my sprites - they are either on or off so my boolean variable is called isOn.
I am attempting to set the propreties of a navigation button (movie clip) that has been built dynamically. The button contains a text field that I want to format and a movie clip that I want to adjust the alpha. I find the object using getChildByName(), however do not seem to be able to set the properties using the code below.[code]
I am working on a native extension for Flash. I am going to invoke my native methods from Flash and pass Dictionary objects where those objects have various data members of various data types. These property types are dynamic and might not be known at compile time.So I found that we have a method called FREGetObjectProperty that says it can return the value given the property name. But in this case since we dont know the property name since it is dynamic, how to extract the property names and values from the Dictionary objects?
i am working on a native extension for Flash. I am going to invoke my native methods from Flash and pass Dictionary objects where those objects have various data members of various data types. These property types are dynamic and might not be known at compile time.
So I found that we have a method called FREGetObjectProperty that says it can return the value given the property name. But in this case since we dont know the property name since it is dynamic, how to extract the property names and values from the Dictionary objects?
I have a little bit of code that makes a nifty kaleidoscope effect, but I would like to take it one step further by having each star in the kaleidoscope gradually shift color as it expands outwards. Right now, I create randomly colored "star" movieclips by drawing 6 different triangles within the movieclip, and then add those individual "star" movieclips to a "stars" array.
What I'd like to do is use a "for...in" loop to grab the .color property of each of the "star" movieclips and change it slightly (using colorTransform?) at each ENTER_FRAME. How can I go in and access the star.color property (or is it star.transform.colorTransform?) of each of the movieclip objects that are now stored in my "stars" array?
Would it be:
Code: for (var i in stars){stars[i].transform.colorTransform = myColorTransform; }OR for (var i in stars){stars[i].star.transform.colorTransform = myColorTransform; }
I was chatting with my buddy about this, he is convinced you can do this and says he has done it, but I cannot get this to work.
I am wondering if it is even possible at all. I tried typing a var as a Class that is within the externally downloaded SWF and then making an instance but no can do.
some code
private static function onCompleteHandler(e:Event) { dashboardObject = e.target.content; // registerClassAlias("Dashboard", ); doesnt work
[Code]....
So it seems you cannot make an instance of a class unless it is complied within the project SWF. Which if true is what I want it to do. I do not want people trying to make instances of my classes just from downloading the SWF file for what I am building here.
I made a Post-It note movie clip that is draggable. I want to create a whole pad of notes, or at least simulate this. I thought the best way to do this would be to add another Post-It whenever the startDrag() is triggered.
I first tried creating the Post-It with symbols but didn't think I could dynamically create new ones this way. I then created a class and added it to the stage[code]...
I'm trying to use a listbox to instantiate a class. "SEA30_05_215_Single_Classroom" is a class that is loaded in using another function just fine. When I attempt to use the function below I get an error that says "Instantiation attempted on a non-constructor."Any ideas how to either fix the error or do it a different way? It seems like it should be a fairly simple thing to instantiate a class using a list box..[code]
I want to use RTMP based HTTP DVR functionality and HLS based IOS functionality, So I need to know how to MPP from my existing DVR app to the livepkgr app so that the stream being recorded at the DVR app can be used by the Flash and Stream MPP over to livepkgr app and can be used by the IOS HLS.
I have a movieclip created in the IDE exported to Actionscript via the Library panel (Linkage?).I instatiate multiple instances of it via a loop on the timeline.I want to move them around randomly via Actionscript. How do I do that?I tried using listeners, but I have no way to store values to make each movement unique.
Okay, so i have a bunch of simple shapes in movie clips... THen, i have "levels" that are each in their own movie clip... Sometimes in the levels i have to instantiate these random movie clips on the fly and create multiple instances, so ill just do something like
[Code]...
This works great..but... in another movie clip now on my "level 2" movie clip I literally take the same exact code, that worked in level one...But now it will not work in this other movie clip.... I get this error whenever i try hexagonOne = new hexagonOne(); or ANY other shape movie clip i try to instantiate. Symbol 'lvl1-2', Layer 'Layer 2', Frame 1, Line 99 1180: Call to a possibly undefined method hexagonOne. I don't understand because it worked fine inside the other movie clip, which is just like this one...It makes no sense.
I would like to put 2 identical mc's on top of each other... the bottom one bright red... and the top one black... and blur the one on top in such a manner that it does not let the red one be seen.... (blured from it's edge out... instead of on the middle)
Is that possible? like specifying where the blur should start (like how you can specify in some programs if the border is in the middle, exterior, or interior of a box)
I am working on a game in which i need to compare two movieclips for being identical. What i am doing is creating a complex shape out of some primitive shapes and then I allow the user to drag and drop some primitive shapes to recreate a similar shape. how can I calculate that the user created shape is similar to the original complex shape or not.
i'm working on a project with numbers, but there has appeared an logicalmisunderstanding. so what i want to make (this is just simple code to see the logic not the whole project) i have :
ActionScript Code: var numberVar1:Number = 5; var numberVar2:Number = 6;