ActionScript 3.0 :: Where To Create Array Of Items (Which Class File)
Jan 25, 2012
This is a hard question to phrase and having trouble finding the right search terms. In the last couple of weeks I have been learning AS 3.0 and the fantastic Classes that are cool as heck (not a programmer... well sort of). Everything has been working great and I've grasped the concepts well, but because of my lack of experience I am not sure of the "best" way to do some things. For example where (which "as file" to create an array of characters?)
This is a very simple game:
25 "characters" (character class in Character.as)
All characters have the exact same properties with different values:
charName:int
life:int
strength:int
movement:int
type:String
char_mc:MovieClip (or sprite.. probably mc)
There are 2 types of characters; shipCrew and aliens. The differences between the two is that shipCrew can use various weapons and have unique "names". Aliens don't have names, just a type and they can grow and/or multiply. All of the interaction and basic game play I can handle no problem once I figure out "where" to create my characters and classes and or subclasses. My initial "training experiments" worked well... until I started reading up on "best practices" in coding and realized I had it kind of all mixed up and backwards. My concern is "doing it wrong at the start".
My first stab at this was to create the array of ALL characters in the "main.as" class for the document, then looping the array, creating new character instances on the stage. Since each character has different properties I just created the same array properties for each with a different value. So basically I am "hard coding" all the characters up front "by hand" so to speak with all the properties in the array. Since they were all identical basically, looping the array to "do stuff" was straight forward... for now. The array looks horrible in the code and is hard to "read" but since it's all "static" anyway it doesn't seem to matter... but would still like to "do it right".
Game play is simple because at a basic level each character regardless of what type it is will do the same thing. I would expand on the differences later. However as part of this inquiry I will need class instances on the stage to communicate with each other (like the idea of a registry for this). So my questions are:
Should I create individual as class files for all 25 characters? (icky?)
Or use an array to store the character class objects? A dictionary? A vector?
They all worked, I tried them all. I like arrays better because easier to deal with, but dictionaries look like fun and might be more efficient (only 25 items, how bad could it be?) storing in an object works too. Whatever type of "array thingy" I choose, Which class file do I create the array in? In the "main" document class or the character class itself? In another type of file like an "init" file? Could I create a "custom" file "type" or class... thingy like "CharacterCreator.as"? How about using a registry?
I am trying to create an array of purchases or objects. I have several products that I want to store the users selection to contain the item they selected, price, & quantity. I'm at a loss on how to set this up. Currently the user can select their product and their total price will be displayed in the Cart Total text field but I have no way of storing the data.[code]...
I have 10 dynamic text fields inside a movieclip, which are populated via an XML file. However, the xml file sometimes has less than 10 items. It never has more than 10. This results in the following error, which is normal. I need the code to count the amount of items in the XML file and then create a for-each loop. I can visualize it, but I don't know how to write it. Basically what I need the code below transformed in to is this... (notice the #'s)
i) Create a symbol called SimpleSquare. This should consist of a simple red square graphic
ii) Create a class file to define a class called SimpleSquare. This should be linked to the SimpleSquare symbol. SimpleSquare ashould have the following functionality: When the instance is placed on the Stage, it should start to disappear by decreasing its alpha at 0.01 in every frame (hint: alpha)
I have been practicing and trying to understand how classes work and I was wondering if it is possible to create a class that can be reused by declearing the class only once in my fla file. Rightnow I create an instance of the class than I asign it to a MovieClip the problem is that I can only use it once and if I want to use it again I have to create another instance of the same class, something like this.
this lack of formal multidimensional arrays in Actionscript is getting to me. I'm trying to create an array within a class so that it's flexible enough to dynamically allocate enough space depending on how the instance of the class is specified. Ideally, I want this array's elements to also be dynamically allocatable.I've used the trick to "force" a multidimensional array in Actionscript by doing something like this before:
var row0:Array = new Array(); var row1:Array = new Array(); var matrix = [row0, row1];
...but this method isn't practical for dynamically sized arrays.
I've been trying to create an Array of Objects in a Class structure, for easy access of the objects from other classes and my .fla file. Unfortunately I keep running into this error:
"TypeError: Error #1034: Type Coercion failed: cannot convert Seed@31161a1 to SeedCollection. at flowerGame06_fla::MainTimeline/flowerGame06_fla::frame1()"
I'm new to Flash AS3. I started making a game and I am a bit confused. Let's assume that I want to create a game that has multiple levels/modes, how can I do this in an object orientated way?
When i create games in other languages e.g. XNA C#, i create a separate class then create an object of that class within the main class and run the game based on a simple statement.
I am working on making an app to display xml data, which currently is using data from parameter file where the data has been stored in array format.[code]...
I am working on trying to collect data within an array (which works) and this data is collected when a button is pressed or selected. I also want the ability to remove an item from the array if the button is pressed again. Currently, I have these buttons dynamically generated and everything works well. The buttons have ids applied to them. SO what I am trying to get working is, if I select button 0, 2, 3 (0 indexing), the data array created holds [A., C., D.]. I want to remove A. after I click button 0. Instead, it seems to cause problems. What I am doing wrong with splicing??? trace statement:
A. items so far selected selected items are: 0 A.,C. items so far selected
I'm so proud of myself. I figured this out all by myself and thought I would share. (If you can't tell, I'm new to AS) I needed a way to grab an item in a specific location and have it return an array of items. Here is how I did it:
possible to create a movieclip and apply it to a class file that you could make? I mean...When you have a movieclip in the library in flash and have it be exported for actionscript...is it possible to do this for movieclip made in actionscript?
So I've created box that looks like simulated wood in illustrator and save it as a "gif". I've imported it to the library in flash. I would like to create a custom class with it. Is this possible? Does it have something to do with the source box in Symbol Properties?
How to create class files in flash. I am trying to create a rectangle with the class file here is the code also.
class hotSpotClass extends MovieClip { function hotSpotClass(logoToLoad:String){ var myName:String; var hotSpotX1:Number; var hotSpotY1:Number; [Code] .....
I am accessing all the methods working fine but the rectangle was not created. I have wrtien this code in my FLA file. import hotSpotClass; var testObj:Object = new hotSpotClass() testObj.addHotSpot(5,15,45,0,1,0xffcc00,100,0x9999 99,15)
I've been playing around with custom classes. My objective was to create a custom class (Testing) that would create a box when an instance of the class is created. I've tried three different approaches, however only (3) seems to be showing up. I'm just curious why (1) or (2) doesn't work?
Also is there a better approach than (3)? Since at the moment it's been created on _root. I hope the box can only be accessible through the instance. Since I'd like to incorporate the whole idea of public, private, encapsulation, etc.
i want to create a global function in actionscript 3.0 i can do this in flash as2 As3 remove that _global. if i want to create a _global function then want to create a static metod in another class file...?
I am trying to create a basic flash script to load an external swf file using MovieClipLoader class. Here's my code:
var myMCL:MovieClipLoader = new MovieClipLoader(); var myListener:Object = new Object(); myMCL.addListener(myListener); myMCL.loadClip("splash.swf",5);
I simply copied it from a tutorial. Unfortunately it throws an error message as follows:
1046: Type was not found or was not a compile-time constant: MovieClipLoader 1180: Call to a possibly undefined method.
PS: I have CS3 professional in my machine but I am following Flash 8 book. But my CS3 application supports AS1, 2 and 3.
I have an array that contains movieclips. All of the movieclips have te type and they are all positioned on the stage next to eachother.
Above the displayed movieclips i have 3 buttons, each simbolizing a type, what i want to do is: i click on one of the buttons and all of the movieclips that dont match the right type should be removed from the stage, the remaining movieclips should then tween so that they are next to eachother again. If i click the button again then the movieclips should be displayed again to where they were and should all be positioned again next to eachother.
I'm a bit green when it comes to code and I have a specific thing I need to do which has had me going round in circles (no laughing at the back!). It must be pretty simple but I'm stumped! Basically I have 6 movieclips on the timeline with instance names 'btn1', 'btn2' etc to 'btn6'. These movieclips have an "on" and an "off" state (frame labels)
I am undergoing some experiments on creating object arrays before I attempt to implement it on my main flash document.
Ive created an object array with 3 variables, and im attempting to change the values, then trace the values back to see if its working. Ive tried many things but I keep getting [object: Object] back in the output window.[code]...
What I've got is a menu that loads images as buttons. It will only display menu items that are within a certain group (i.e. if themenuitem.node Value == groupid[q] then it will display that menu item. Each of the menu items has a unique number (Itemnumber[n]). I have a loop that goes through and displays the menu items that are within a certain group. I am currently able to also find out the unique number of each of the menu items where themenuitem.nodeValue == groupid[q], but what I want to do with these numbers, is place them all into an array as it loops through.So, say for example, it finds an item in the loop. It tells me this item is number 4 (if I tell it to trace(Itemnumber[n]) within the loop). Then, it finds another item in the loop, and it tells me this item number is 6. I want to be able to add items to an array as it loops through, so I'll have an array at the end like this: (4, 6).Currently my ActionScript looks like the following. Never mind if there are variables that are not defined in there -- they have been defined in other parts of my movie.[code]As you can see, I've made an attept at achieving this by trying numarray[numarraylength] = n; -- but all this does is send me an array, then overwrite it next time it loops (so I get an array like (4, 4), then one like (6, 6). I've added comments in the code to further explain what I'm trying to do.