ActionScript 3.0 :: Loading Several Instances Of A Symbol Into One Class?
May 14, 2011
I am making a platforming game for an assignment and I have a problem with this bit of code:
package
{
import flash.display.MovieClip;
public class PlatformTest extends PlatformManager
[Code].....
All platforms are loaded into this class, and there are currently 2 instances within a Level movieclip. It's kept at 2 for seeing if it works purposes. This code basically gets the y values and x values for all sides which is used for collision detection purposes, loads it into an array, and the array number is incremented.
I'm not exactly sure if this method works or not, and I don't even know if every instance of the symbol is being loaded into the array, but is this code right, if not how do I fix it?
I have a symbol that contains all the weapons. I placed 6 of them on the stage. I have 6 variables P1Weapon1... P1Weapon2..etc. I need each one to stop on whatever variable matches them. The scripts needs to be on a external as file linked to the symbol. The variables are declared on a external as file linked to the main timeline.
For a hangman-esque game I have a flash document (using CS5, but that probably doesn't matter) that has (or rather will have) a library of 26 movie clips which will contain a letter of the alphabet each. They will be inside their own dynamic textbox, so I am able to change the font, colour background etc. at will. But is it even possible to change more than one instance of a movie clip on the stage at the same time, without getting too complex?
In other words can I put multiple A's, B's, C's etc. on the stage and get all of them to change at the same time if someone guesses a letter? I know that you can change single instances of a movie clip, but for that you need to give each instance a name and I don't know how many of each letter I would be putting on the stage, let alone how I could access them all easily. Perhaps it could be through classes or something? I haven't really covered them before though. Feel free to ask for any more details... I admit some of I stuff I write can be a bit vague...
I have 10 different map symbols on the stage. I have 1 class called ContinentView which is linked as the base class to each of these 10 map symbols. All I want to do is duplicate the same map symbol and miniaturize it when the map symbol is clicked upon. Thus, 2 symbols will be on stage prior to clicking, 1 large and 1 small. The 10 different map symbols have names such as zone1, zone2, zone3...etc. all the way up to 10. I know that I can do var mini:MovieClip = new zone1() as MovieClip; but thats ONLY if I click on the 1st map symbol and vice versa. This means I would have to do an if tree or several cases in a switch statement to check the id or name of the clicked symbol (e.currentTarget.name or something)...I want to avoid that and be dynamic.
Is it possible to automatically make a text list of all symbol instances used on the stage and within all movie clips which are used on the stage? E.g. I have a symbol "my metal bar" in the Flash library and its instance on the stage is called "metal_bar_mc". So the list should contain a line with text: "metal_bar_mc".
Is there any automatic tool or maybe an AS3 library or it is possible to somehow write AS3 code to do this? And one more thing, it would also be very helpful to be able to determine, which of those instances are exported to AS3 (so the text list would contain an asterisk for those which are exported, or whatever)
Code: var parcher0:_parcher0 = new _parcher0(); _parcher0 is a Symbol in the Library with the Class definition _parcher0
I want to addChild this Symbol to an MC on the stage like this:
Code: this.pccard0.sprite_.addChild(parcher0)
All good! Except I want to do the same thing, the same way, with this.pccard1.sprite_, and several more. When I do so, parcher0 only shows up on the final, most recently assigned addChild().
Is it forbidden to add a Symbol in this way in more than one place, and if so how do I get around it without creating a raft of arbitrary duplicates?
I am creating an app using CS4 flash. I have it calling an asp containing xml with from 1 to 30 records. The xml example at the bottom has 3 records.I was hoping someone would be able to tell me the code needed for my swf to check how many records there are and generate that many "pages" from a page template, with the data dynamically entered into text boxes on each generated page.I have included the method i am using to call the xml.[code]
i'm creating an application using AS3.0 and class files. in this application i have a MovieClip in the library i'm using that contains several symbols and configurable textfields and have already defined the functionality for these symbols. my question is, if i'm creating an application and through actionscript and i'm spawning instances of a symbol, do i have to define the functionality and initialize this symbol in the main application class?
specifics: i'm creating a panorama app with markers that are papervision3d planes. they use a movieClip texture that i've created and i want to configure textfields and display pictures that describe the info in the marker. i created a panoApp.as class file that configures the panorama. but i also have a marker.as class that defines the symbol's behavior. this movieclip has symbols in it it's stage that i've defined (ie: name_textfield, description_textfield, etc..) when i compile the project, the compiler errors saying that the variables/identified internal symbols are missing.
the idea is to create a loop to that displays 16 cards face down in two rows and eight columns using either a "for" loop or "while" loop, execute 16 times once for each clip.use new to dynamically create card instances based on the Movie Clip symbol in the library.use a modulo operator to operate the x position of each clip use Math.floor to operate the y position of each clip set dynamic text value of the card clip to show appropriate card number add card to the display list if using the iteration variable ("while" loop).this is what i am using and i get one card (the stack of 16) in the bottom left hand corner with a 16 trace statements of "instance 2"
//create variable for number of columns var numberOfColumns=8; // requirement 1
Library symbol "Card" is linked to class "Card" which extends "MovieClip". Library symbol "Card" contains a card background image.Library symbol "Ace" is linked to class "Ace", which extends class "Card". Library symbol "Ace" contains a TextField with a big letter "A".So we have Ace extends Card which extends MovieClip. Ace therefore extends MovieClip, but does not DIRECTLY extend MovieClip.When I drop an instance of Ace on the stage and compile the clip, all that shows up is the big letter A. However, I expected the background image from Card to be included, since Ace extends Card, and the Card symbol contains the background.It seems like Flash ignores symbol content unless it belongs to the top-level class being instantiated.I think it's LAME that one symbol can't extend another. The IDE could easily draw Card as a non-editable background while I'm editing Ace which extends it, and it should instantiate Card's content and then Ace's content when an Ace is instantiated.
I want to know how to make class instances into listeners and broadcasters, from inside each class. Here is what I am trying specifically... part of the Proj class... (projectiles, as a matter of fact)
Code: private function listen():Void { u.register(this); onUpdate = function(){ step(); // a function I have which makes the projectile move (not shown) } }
where "u" is another class, the Updater class with this code...
Code: class Updater { // const. --- make this a broadcaster public function Updater(){
[code]....
PS: What is the syntax for using AS2 code tags instead of just "[CODE|"?
I'm slightly new to Flash CS3 + AS3 combo, so its more of a lack of practice question. My question stems from the problem described here http:[url].... . Note, its not the same problem, its a new one.The Problem ,So I have multiple library assets (which are on teh stage) and I want to assign similar functionality to all of them.
Attempt 1: So I create the n assets, create a custom class in AS3, link them to Flash CS3 and obviously enough it gives me the error that multiple assets can't be linked to the same class.Obvious enough to understand (well not completely, because from a programmers background it doesn't make sense).
Attempt 2: Same as attempt 1, but instead of linking all the assets to the same class I make the base class the same class, and let the derived class be dynamically created by Flash on compile time.So the linking works, but the problem is, in my base class I have a method which does something (say an tween) on a child of the library asset. So if the assets on the stage/library are called asset1, asset2, asset3 (same name for asset name, class name, id name), each of them has a sub-movieclip called ... say 'foo'. now if I manually wrote a class for each asset, I could do 'this.foo' to play with the sub-movieclip. However since this functionality is in the parent class, I'm unable to do it.
P.S. If you're form a programming/OOP background, its basically a abstract class problem. My Base class knows how to doSomething(), but it needs aSomething, which is defined in the Derived classes. However I found out that AS3 classes don't support virtual(C++ )/abstract (Java) in the true sense of the word (unless I missed some obvious documentation).
I've been hitting dead ends while programming lately all over, and I finally came to the realization all the code I have that is broken is because I don't know how to interact with instances of one class from within another. Here's the gist of what I am trying to do:
The problem is, if I address a single instance that is on the canvas, I get "access to undefined property targetClip", even though the document class can interact with it fine. If I target the class file of targetClip, I get "Implicit coercion of a value of type Class to an unrelated type flash.display:DisplayObject". It isn't just a problem with hitTest either, I'm having this problem with other actions, so there is some basic syntax I'm failing to comprehend.
Is it possible to create 2 instances of 1 class (for example: "Header"). Add these 2 instances to the stage on different positions. This Header class contains some buttons and what I want, is: when I rollOver one of these buttons, both buttons in the 2 Header instances are "rollingOver".
I have a piece of code, that moves an array depending on it's type. If the array is of TypeA objects, it will change TypeA. If it is TypeB it will change TypeB. The issue with the current code is the repeative blocks.
[Code]...
Which stops working whenever I need to access any property (user) selectedInstance.testSomething();
I recently learned how to use gravity so I made a bouncing balls program but I have an issue with the interaction between the frame timeline code and the class.The problem is that when I create instances with a timer, I declare the variable inside the timer function. And I want to add a blackhole sort of thing when I click down on the stage but I cannot access the object from the blackhole function since it's declared inside the timer.
I have a class the extends a movie clip with some dynamic content in it.I need 15 instances of this class so i created a for loop for that.Im using the same variable name but im just initializing it again and again.
var thumb:MovieClip = new ThumbClass(); addChild(thumb) my probem is that i need to find a way to control them after i created them.
I got a ton of movieclips in a class. Is there a more efficient way to apply a function to every instance in the class other than this?
var textArray:Array = [ interludes.interludeIntro.interludeBegin1, interludes.interludeIntro.interludeBegin2,
[Code]....
I have NO idea why the above doesn't work. I want to turn every single instance in the class interludeIntro invisible, but I want to turn specific instances visible later.
how to insert code on this website, pressing "code" doesn't do anything, so pardon the bad formatting)
Let's say I have created a class named Store. This class has several elements such as Name, PhoneNumber, Owner. I've created 2 instances of this class and want to know which values are different. So lets say that Store1 and Store2 are instances of this class.
Is there a way to automatically loop through all elements of a class instance and compare them to the same element in another class instance and return something when they differ?
I'm new to this OOP stuff, and I'm having a hard time understanding all of this.I'm trying to recreate in AS3.0 with classes a simple whack-a-mole game I created in AS2.0 using timeline coding.I've read through a lot of forums, but I still don't understand what exactly I'm doing wrong.Heres my setup:I have a movie clip named mrBunny (my girlfriend told me to change it to bunnies as moles were too ugly.). Now there are 6 instances of mrBunny on the stage, each named mrBunny0-5.The mrBunny symbol is linked to the com.mrBunny class.The class has a method called randomPlay(); which I use to randomize the animation times of mrBunny.I also have a button on the stage with the class stageBtn.
I am making an AS 2.0 Class for polygons called "Shapes2". Shape2 is basically an array of Vectors (another Class I made) and is built using the function addPoint(x1,y1) to build the shape from a series of points. The points are then converted to vector-edges, etc etc.Here's the long and complicated construction:
Code: var pent:Shape2 = new Shape2(); var rect:Shape2 = new Shape2();
if I comment out either instance, the other is functional when I test it. Trying to do two instances makes rect and pent point to the same array of vectors, but they keep other variables and properties separate, which means rect isn't just pointing directly to pent or visa versa.
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