ActionScript 3.0 :: Flash - Creating A New Instance With The Same Variable Reference?
Mar 8, 2011Theres any need to set to null a reference in this case?
private function initGame():void{
game= new Game()
}
[code].....
Theres any need to set to null a reference in this case?
private function initGame():void{
game= new Game()
}
[code].....
set to null a reference in this case?
private function initGame():void{
var game:Game = new Game()
}
[code]......
I create buttons, but I am trying to give them each instance names so can target them individually but I keep getting undefined property error.
Code:
import fl.transitions.Tween;
import fl.transitions.easing.*;
var menu_items:Array = ["CHAPTER I","CHAPTER II","CHAPTER III"];
[code]....
Lets say I have 3 Movie Clip Symbols in my Library : Movie0, Movie1 and Movie2
Each movie has a dynamic text box: "TextBox1"
I want to be able to write a function that can manipulate the alpha(or any attribute) of the TextBox1 in all three MovieClips.
In my limited experience I thought I could do something like the following:
for (var row:int = 0; row < dataArray.length; row++)
{
Movie(row).TextBox1.alpha = 1;
}
I hoped that this would loop through 3 times and set the alpha of the TextBox1 in all three movies to 1.
Is this possible? Can you reference an instance with use of a variable?
I'm creating a dynamic movieclip and the name/instance name is stored in a variable. How can I reference the instance if its stored in a variable?This is what I'm using and it doesnt seem to work (for obvious reasons). I know in php that you do this "blah blah" . $variable.
View 1 Repliesi want to use a variable(text) to refrence a movieclips instance name
Code:
function InventoryShow(event:Event):void
{
var SC:URLVariables = new URLVariables(event.target.data);
[Code].....
Topic title explains what i want to do. Say I have a variable roomNumber (a string) and in a game where i move about, roomNumber will change (say, room34 to room35). When a new room is visited i want a new instance of my class Room to be created, but with the instancename of what the variable currently is. (point is that i can go back to a previous room, without it being changed because the instance has already been created) so... roomNumber:RoomClass = new RoomClass(); well, it unfortunately works so that the new instance is named roomNumber, and not room34.
View 4 RepliesBasically I have 2 classes, A and B. B derives from A. Inside A, I declare a static variable/constant to the class of B. When I run the program, I get a null object reference error, with the line pointing to the class declaration of B, i.e.
Code:
public class B extends A
For reference, these are the 2 classes:
Code:
package
{
public class A
{
[code]...
Also, this error only occurs when the variable is static. If it's just a normal variable it works fine, i.e.
Code:
private var OTHER:Class = B;
If I change the static variable to point to a different class, it's also fine, i.e.
Code:
private static var OTHER:Class = Main;
I can probably work around this, but it's a bit of a pain in the ass. Anybody know what's causing it, or is this a Flash bug?
I have a question regarding AS3 memory management. Supposing I created an instance variable for a Class, in this case or type Sound:
public class SoundStore extends Sprite{
var s:Sound;
Then within various class functions I referenced this variable multiple times, each time I wanted to load in a new sound:
s = new Sound();
Am I correct in thinking that each time I created a new Sound I would be overwriting the previous allocated memory?
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?
View 1 RepliesAs we know whent here is no such variable of null value assignment to a variable or instance flash throws this kind of Error.In one of my Application i need to get more flashVariables, They may or maynot come as FLASHVARS. But when i miss any variable flash thows this error as an alert box. is there any simple solution to avoid this kind of issue
when i use try,Catch statement the issue will not come, But i don't like to write Bunch of try,catch statement for all this kind of variables.
Ive been using the loader a lot of upload images into my movieclip. But the only way I know how to do it is load the content, add an event listener, wait for it to finish finish the job in the handler using the reference to the loader like this.[code]...
View 1 RepliesThis is my Code
targetMC = ["img_mc" + i];
infoTotal = targetMC.getBytesTotal()
How come when I use
img_mc0.getBytesTotal() it works
but not when I use
targetMC.getBytesTotal()
it returns NaN, even tho targetMC = img_mc0
I am building a simple tamagotchi - alike application in AS2 and Flash is acting kind of weird on me. Lets say i have a .fla file with all my animations called Kitty.fla, then I have an external .as file called Kitty.as which contains a Kitty class with the itty(attribut i need to give it) function.On the 1st frame on the timeline i have the following:var kitty:Kitty = new Kitty('my attribute');when compiling the movie, flash automatically creates an instance of Kitty but WITHOUT my attribute (its given a default value specified in the code) and then proceeds with the instance according to what i wrote above. So at the end i basically end up with two kitties, one with default attribute and second with the attribute specified by me, while I only need the one with the specified attrribute
View 7 RepliesIs it possible to access the type of object being interacted with so I can create a new instance of the same object? So for example in the code below I have the movieclip myItem. After it's clicked it is removed from stage and then moved to the inventory. When I click on it there, is it possible to create a new instance of mcItemToDuplicate using the event information parameters? (while allowing myItem to be where it is).
My code looks something like this:
public function moveclip() {
var myItem:mcItemToDuplicate = new mcItemToDuplicate();
stage.addChild(myItem);
[Code]....
I have a base class I've used on 6 different MC's. Then when I use these MC's my function runs an if statement to check which one to add.
if(id=design) var obj = new design();
if(id=team) var obj = new team();
I want to make it a bit more dynamic and use the id:String to evaluate which new instance to create.
ActionScript Code:
public function loadChapter(id:String):void {
var obj = new instance_of( id )();
}
I'm looking to build a library that needs to be very careful about memory management. Basically, I have to create a static factory to "disperse" instances of my tool to requesting objects. (I don't have a choice in this matter, I really do have to use a singleton) We'll call that class FooFactory. FooFactory defines a single method, getFoo(key:String):Foo.
getFoo looks in a private static flash.utils.Dictionary object for the appropriate Foo instance, and either lazy-instantiates it, or simply returns it. In any case, FooFactory MUST keep a reference to each Foo instance created, so all Foo instances can be updated by FooFactory using a method called updateFoos():void.
[Code]....
i have a variable declared in alchemy asm:
asm("var buffer:Vector.<Number> = new Vector.<Number>(100, true);");
i can populate it with data like so:
asm("buffer[%0] = %1;" : : "r"(index) : "r"(value));
what i can't figure out is how to get a reference of that asm "buffer" variable into actionscript.
(i did think of one way... what i did was to throw the "buffer" from alchemy asm, and then catch it in actionscript, but unfortunately it seems to leak a lot of memory).
is there a better alternative to doing this?
note that performance is critical, and using default alchemy marshaling is way too slow.
I have an application I am developing, a part of which involves a number of icons on a page - when you roll your mouse over an icon, the movie moves forward a frame, and a text area is populated with text, fed from a php file (which pulls data from a MySQL database). Each icon pulls in a different value, depending on the values in the php file.
I have this working a treat - see code below. The only problem is I need to create a seperate button / mc for each icon with the appropriate references on - in the code example below, the icon populates message.text - this.message2 - message2 is a value in the php file. So the next symbol would be message3, etc.
on (rollOver) {
myData = new LoadVars();
myData.onLoad = function() {
message.text = this.message2;
[code]....
I will need a large number of these icons, all with different values, so I would like to create a generic button that looks at it's instance name, and uses this for the numbered variable - i.e. the 2 in "message2".
I'm creating a little game - The player controls a character that follows the mouse. Pigs run away from the player, and the player has to get them all into a pen. To make the game a little more difficult I'm trying to add an enemy - wolves, that attempt to perform a 'hunt' method every x seconds. This method sends a reference of the wolf instance to Main (my document class) and Main then loops through the pigs on stage to see if there's any nearby. Now as far as I know this works - my problem is I'm unsure how to send the pig instance reference back to the wolf that called the hunt method, so it can then 'target' the pig, and then attempt to pounce on it.
This is my Wolf class:
Code:
package
{
import flash.display.MovieClip;
import flash.events.Event;
[Code].....
How do I reference the variable pointed to by the variable text but pointed to by more than one function?Say I have:
engine_level = 5;
tank_level = 3;
v_name = 'engine';
[code].....
Say i have a movieclip named a_Mc ( ClassA ) I have a sub-movieclip named b_Mc ( ClassB )
CASE 1: Accessing the sub-movieclip b_Mc which is already present inside the a_Mc movieclip
( Since Flash IDE has "Automatic instance naming" OFF )
ClassA mentions the name of b_Mc as => var b_Mc:MovieClip;
NOTE HERE: That the variable name MUST BE same as the name of the instance on stage.
So i can access it as : trace( a_Mc.b_Mc);
[Code]...
How can I obtain the position of a instance whose name is stored in an variable? If there is a instance whose name I don't know, but the instance's name is store in an variable x. How can I obtain its position?
View 4 RepliesHow do I reference the variable pointed to by the variable text?
Say I have:
engine_level = 5;
v_name = 'engine';
pb_name = v_name + '_p_button'; // so pb_name = 'engine_p_button';
level = v_name + '_level'; // so level = 'engine_level';
[Code]......
I'm new to AS3 and HaXe, but was hoping to find a way to use methods from a final class (Graphics) without always prefixing an instance variable.Instead of something like this:
var gr:Graphics = flash.Lib.current.graphics;
gr.clear();
gr.beginFill(0xffffff, 1);
gr.drawRect(0,0,400,400);
I was hoping to get something that works like processing.org, but I guess a lot of the convenience there comes from the preprocessing. I looked at the HaXe reference on advanced types (http://haxe.org/ref/type_advanced), but I haven't been able to make anything work so far. This probably isn't possible since Graphics is final, but I thought it wouldn't hurt to ask. It seems it would be easy if I could extend Graphics
I was thinking about how to streamline my code the other day and looked through my classes checking for possible memory leaks. I wonder when are variables declared inside of methods clear for garbage collection? or are they not and just hang around? For instance if I have a class like this:
[Code]...
Since the variable was declared without reference into the class how long does it stay in Flash's memory, or does it stay indefinitely because it cannot be nullified?
I have 25 instances of a movieclip "star", duplicated and assigned variables using the following code:
Code:
for(n = 0; n < 25; n++) {
star.duplicateMovieClip("star"+n, n+1000);
with(eval("star"+n)) {
startype = random(3);
}};
I now have it so that when I click on any instance of "star", I'm taken to another frame, and in that frame I'd like to be able to look up the variable "startype" for that particular instance only. How exactly can I do this?
I've got a set of arrays being dynamically generated with paths to nested movieclips. The paths are coming in as strings, and I can't seem to get them to work as movie clip instance variables.as example, a string would be:
siteMC.b1MC.b1f1MC.rMC
(that path works fine outside of the array)
How do I get that kind of nested path from the string to something flash wont spit out as null?
I thought since a Sprite is a display object container and I can add an instance of a MovieClip to it I should be able to reference the MC through the Sprite.
var bh1:Sprite = new Sprite(); beerChan = new BeerChan(); bh1.addChild(beerChan); trace("bh1 "+bh1); trace(bh1.beerChan);
1119: Access of possibly undefined property beerChan through a reference with static type flash.display:Sprite.
I have a movieClip and would like to run a hitTestPoint() if statement on it, but only for a particular instance within the movieClip.
Would: 'movieClipName'.'InstanceName'.hitTestPoint () { work?