ActionScript 3.0 :: Accessing Function Of Custom Class That Is Stored In An Array?
Jan 27, 2011
i am making a few object of action script..,what special about this object is that in the contructor function of this object is that i make it to send a sprite parameter which will act as it's parent..,var anObject:myObject = new myObject(parentSprite);and in my main project i used those object and store it in an array after adding it to the stage.i do store it to an array cause i need to be able to refer back to it..everything was fine up until i need to call function inside that object which i already stored in an array. how should i call the function in that object from an array that stored the object?
I have a "back button" scheme that includes using an array to store references to functions.However, when i have to troubleshoot something like this, one of the things i'd like to be able to trace is the names of the functions that are in the array. If i trace a for loop through the array i just get [type Function] for each function. I would like to look at it's name.Right now, im using a workaround that places objects with a func property and a funcName property, which is a string that needs to be indicated manually.
Once a button is clicked in a submenu called SelectChar(a menu class extending my menu base class), it dispatches a custom event carrying an array of variables. This event is then listened for in the main Document Class called Engine, where the value of the passed variable can be used. For testing purposes im only passing 1 arguement in the array.
my Error when trying to trace the passed variable in isolation "trace(e.arg[0]);": 1119: Access of possibly undefined property arg through a reference with static type flash.events:Event.
Okay, i hope that made sense... heres the relevent code:
custom event class: passCharEvent.as
Code: Select allpackage com.asgamer.snipergame { import flash.events.Event; public class passCharEvent extends Event
I want to be able to make my own math-functions, so that I don't have to write the same trivial functions in all my classes. I would like to import a class called something like MathExtended, and then use functions like this:
MathExtended.sign(x)
I have made an example that tries to import a custom class like that:
Code: /* This is the main script which my fla. runs. */
I need to create an Array of movieclips so that I'm able to read / modify / add its properties. I thought the best solution was to create an Array of strings with each movieclip's name and then using this to convert the string to an expression, but I don't really know what to do when I want to access one of its properties. Here's my code:
ActionScript Code: var room:Object = new Object room.objects = ["mcObj1", "mcObj2", "mcObj3"] mcObj1.Description = "It's a ball and it bounces"
I want to extend the dictionary class. Everything works so far except that in some of my methods that need to reference the dictionary's content I make a call like:
this[ key ]
It doesn't like that. It just tells me that there's no property 'key'. Is there a way to way to access the data within this class?Also, I'm using an integer for the key.
Edit: I've found that the same behavior happens when you extend Array.
var myArray : Array = new Array(); trace( myArray[ 0 ] ); var myArrayExtender : ArrayExtender = new ArrayExtender();[code]....
Where in this case, myArray returns "undefined" and myArrayExtender throws error 1069. ArrayExtender is an empty class that extends Array and calls super() in the constructor.
ActionScript Code: public function drawPiece(xPos:Number, yPos:Number):void{ _piece_mc.graphics.lineStyle(1,0x000000);
[Code]....
The object is there. When tracing out the array for specific index it provides: [object Piece].
Or would it just be best to use a single dimensional array? End goal is to have a board class to be able to use for checkers and then potentially chess.
does anyone know if it's possible to target values stored in an array in a function from anywhere in a movie? e.g var Pressed:Array = item trace(Pressed)
if i trace the Array name within the function it spits out values, but when i try and access the Array from outside of the function it doesn't work.
I've made two custom classes ("banana" and "box"). As I start my application I create two new objects from these classes - first I create a banana object and then a box object. The banana class/object has a property/variable ("weight") that I set with information from an external XML file, thus it takes a while for it to receive a value.
My problem is that my box object needs to access the "weight" property of the banana project, just after the box object has been created. The problem is that the banana object hasn't finished initialising when I make the request from the box object...
Is there a way of either check the status of another class (initialisation status that is), or is there another way of preventing the box object to either be created before the banana object is initialised?
I have created some (TextInput, ComboBox, CheckBox) Component instances (created as a public objects) in a Document class and added them to the stage.
Now I have created a custom class for a movieclip in library and instantiated it in the document class (also a public instance).
I need to access the component instances in the custom class. How to do this ?
Also, Is it a good practice to use ENTER_FRAME event frequently ? because if I can't access the above components instances in the custom class then I will be left with no choice but to use ENTER_FRAME event in the document class every time I need to change some value in the components...
After resolving one issue, another error has surfaced in my custom class. This class displays a dialogBox and the dialogBox has some interactive MovieClips like btnOK_mc Button.On creating an object of the said class, it reports errors like "Access of undefined property btnOK_mc".[code]I understand that it is an issue of the Scope of these controls; but don't know, how to define these MCs; so that they look like Public. I may be just out of track on the issue.
I've made a custom sound class: ActionScript Code: package { import flash.events.Event; import flash.media.Sound; import flash.media.SoundChannel; import flash.media.SoundTransform; [Code] ..... What I would like that class do is to trace a variable that is on Main.as which is Document Class, after a sound completed playing.
I'm trying to make my own picture browser for my webpage, and have run into a problem I can't solve. My guess is that this is kinda a newbie-problem, but anyway here I go...
I have made a class (as an extention to MovieClip) in a seperate file where I can load a picture and later resize it into a thumbnail. I have no problem showing them, but when I tried to make a MouseEvent for clicking onto the shown thumbnail and then tries to access the instance the event sends me, I get :
TypeError: Error #1034: Type Coercion failed: cannot convert flash.display::Loader@22c30791 to ThumbNail. at PicBrowser_fla::MainTimeline/clickedOnThumbNail()
I don't understand why it complains on 'Loader'!?And what is the best way to access the instance of the 'ThumbNail' in the MouseEvent?
I began with a class for a movie clip rollover function FigureRollOver. It works marvellously. Three things happen:
1) it loads XML from a file "mod1_fig1.xml" and uses another class, XMLMember, to retool the scoping of the XML so that I can get at it
2) an onload call inside of XMLMember calls the myOnLoad function and transfers the XML into an array.
3) so long as the array is finished building, rolling over a movie clip attaches a new movie clip with the rollover text in it.But I don't want all those functions in one because I need it to be more dynamic, starting with being able to load any old xml file instead of just "mod1_fig1.xml", plus it seems lik overbuilding to have all of that in one class, so I've separated out the loading of the XML and building of the array into its own class, FigureXMLLoader. FigureRollOver is then left to just attach the rollover with text in it, extracted from the array built by the new class.
Problem is, though the array builds inside FigureXMLLoader, I can't figure out how to make it available outside the class. I know that I'm constructing things in the wrong order, and that the array needs to be somehow built inside the class function to be available, but I can't figure out how to do that. A cruddy work-around is to put a function call at the end of the building of the array, which calls yet ANOTHER function on the main timeline of my .swf to put the array I've just built into a new variable.This works, but it's messy. It seems like I should be able to have one line of script in the .swf that generates an array on the main timeline (or just a public array) which I can then access from my FigureRollOver class:
var myRollOvers:Array = new FigureXMLLoader("mod1_fig1.xml");
Here is FigureXMLLoader (see comments in the code for more details) which obviously does not return an array as it is, because of all the working around I've had to do. Note the "testing" variable, which can be traced from the main timeline of the .swf, but I will get "not what I want" because of course the array hasn't been built yet, and never will be, inside of the declaration as it is. How do I get it in there so I can return an array?
instance is a public static variable on the default class, Main. I can do Main.instance.defaultClassFunction() with no problems at all, I use it to access functions and variables from within other classes. Is it possible to use this method to call a function on the subclass, currently I have to do this,
I keep getting an "undefined property" error when I try to call an external function from within the Doc class. I added the error message to the Doc Class below so you can see where it occurs.
If I take the code from the Tooltip.as below and place it on the FLA's main timeline I can get things working fine, but I would like to move all script to classes. The document class structure looks like this:
Drag_and_Drop.as
Code: package { import Tooltip;// Import custom class public class Drag_and_Drop extends MovieClip {
[Code]....
I realize that I could just combine all the code in the Doc class to get it working, but it would be nice to separate out this particular code which has only one use.
I have a document class called Main.as In the class constructor I have the following listener:
enter code here var listeningFORModeChangeToStudent:Sprite = new Sprite; listeningFORModeChangeToStudent.addEventListener(TellAllModeChangeToStudent.STUDENT,exp); addChild(listeningFORModeChangeToStudent);
[code]....
In a third class I make a call to the despatcher in the previous class:
enter code here var ThisTellAllModeChangeToStudent:TellAllModeChangeToStudent = new TellAllModeChangeToStudent; ThisTellAllModeChangeToStudent.tellAllModeChangeToStudent();
I have trace statements in eveything and from this I know the despatcher in TellAllModeChangeToStudent is being called.The problem is that the listener in the main.as is not calling the function exp.I cant see why and I dont know how to check if the listener is actually seeing the dispatch event?
I am new to action script working with flash cs4 with action script 3.0. How do i access a UI object(stored in .fla) in action script. I have already linked these two files. It is working fine. I have a button as UI object, that was converted as symbol and instance name has already given. I cannot access the button using the instance name in actionscript. If i tried so there is no intellisense. How do i access it in script. I am using oops style of coding.
I have created a sharedobject on a local hard drive that stores multiple objects in it. I need to know how to access one particular object in that sharedobject.
why can i access the first function in a class with
PHP Code:
import test.test var test:test = new test();
but I cannot access the second or third function in the same manner? they seem to be seperte entities within the class definition.
can access
PHP Code:
public class NetStreamex { public var connection:NetConnections = new NetConnections(); public function NetStreamex():void { connection.createNetConnection("rtmp://localhost/test/1");
Is there a way that i can access Local SharedObject using a swf from the net.
For example, i have a .swf that creates SharedObject running locally on my desktop computer.. But when i'm somewhere else, i need to access some of the shared objects in my desktop, is that possible?
I have a class that creates an array from a config xml file. I set a private variable in that class and use a getter in other classes to access the array. The routine that uses the array does the following: - Call the getter and assign the returned value to a local (private) variable tmpArray. the getter is a simple return() using a value that is established in the constructor. - Uses a for loop to itterate over the contents - Uses array.shift() to pop the item in tmpArray
The next time I run the routine, the contents of the array is empty. I'm using the same getter. I implemented the getter when I tried to manage both arrays in the same class figuring that as long as the original array was private (i also tried static), that the value would not change. I have since worked around the problem by moving the routine that fills up the original value from the constructor to the getter. So, consider the following code:
import flash.events.Event; btn.addEventListener("click", btnHandler); var myArray = new Array(); var myTmpArray = new Array() myArray = ["one", "two", "three"]; myTmpArray = myArray; function btnHandler(evt:Event) { [Code] .....
If I create a variable myVar and set it to 1 then set myOtherVar = myVar, the both equal the same value. If I change the value of myOtherVar, myVar is not affected. But using the shift() method changes both the original and the copied array.
I have a dynamic class, which has an array declared normally, before runtime.Usually, you can dynamically access a variable, whether it has been declared or not with
myClass["variable"] = 4;
however, trying to do this with an array, like so
myClass["array[0]"] = 4;
does not store 4 into the first element of array, and instead stores it into the variable "array[0]". For instance, after executing the previous code,
trace(myClass.array[0]);
traces undefined, where as
trace(myClass["array[0]"]);
traces 4.
Is there anyway I can access the elements of the array dynamically?
I have a .fla file with some code in the actions panel.A bit of code calls a function in a class from the actions panel .The function in the class is run, but I want to be able to call a function in the main actions panel code from the function in that class .The class doesn't extend anything so (parent as MovieClip).function() does not work.
I have an instructions.as file which is trying to call a function in the document class through a mouse click event listener and am getting a 1009 error.
Here are my to actionscript files:
** this the the instructions.as** package Elements{ import flash.display.MovieClip; import flash.events.*;
- a fla file with movieClips on the timeline , this fla is linked to the Main class
- a Main class who does some randomization of the animations
- a MenuItem class which function is to give each button menu the same functionnality
the problem is that I'm trying to access to the randomNumber function inside the Main class from the MenuItem class to prevent the rewriting of the function inside this class. I've made some research on Google and apparently I have to create a Singleton class so I can access the Main class from everywhere, I've followed those instructions but it still doesn't work, when I trace the Main class from the MenuItem class it gives me a Null result!Main Class code :
Found several suggestions, none of which have worked. I am sure I am probably overlooking something really stupid, so I need another set of eyes to look at my code. I have a main.swf that preloads and loads an intro.swf. On the intro.swf there is IntroMC that contains skip_btn. When the user clicks skip_btn, I need to call a function named traceMe() from the document class of main.swf. If you look at the comments for the intro.swf code, you can see the error I am getting.
Here is the code for main.swf Code: Select allpackage {
have a very simple question, (Bear with me I'm still quite new to as3 and some of my terminology may not be solid) I want to access a function that is within my document class when a movie clip on the timeline has played to a specific point (being the end). I have already been able to call another function from the document class at the top/root level (it is called to initialize all clips and buttons when you click on the "enter" button on the splash screen. Problem is that I cannot call another function (in the document class) from a movie clip within a movie clip on the timeline. Is there an easy way to do this? I have considered writing a separate class for the movie clip and then adding it onto the movie clip (using the property panel). I don't really want to do it this way because I am already using a base class on that movie clip and 3 others that use a set of generic functions.
How do you access the stage from a function in a document class file? I tried a fairly simple: ActionScript Code: var main:MovieClip = new MovieClip(); addChild(main) var _stage:Stage = main.stage; trace(_stage); The result was null.