ActionScript 3.0 :: Use Public Variables Or Public Static Variables?
Feb 4, 2010is it better to use public variables or public static variables?
View 6 Repliesis it better to use public variables or public static variables?
View 6 RepliesI'm literally new in AS3 and slowly trying to migrate in thats why im here seeking for help. Can someone help me how to access/control a certain public variable in a loaded swf from the main swf? this problem has been paralyzing me for days. (sigh...) [code]...
View 1 RepliesI have a class like this..
public class Doc {
public function Doc():void {}
public var myVar:Boolean;
}
How can I know if the value held by myVar is default false, or someone has assigned false to it? Isn't there an undefined state? How can I achieve such a thing?
This might be a very stupid question, but I have to ask it anyway. I am graduating in about a month and while studying, I have always been taught to use properties instead of public variables. So I started wondering what the advantage was and I must say that in some cases, I have no clue at all. Of course it is handy when some other logic needs to be executed when setting properties or getting properties, but is there any advantage to using properties when you are only getting/setting a variable? An example of what I mean is shown below (As3).
[Code]...
I have a simple problem which is not easy at the moment. this is a text field class which add a text field to a movieclip (passed from root class) and also save(buffer) some data (like xml file name) in it`s public variables:
package src {
import flash.display.Shape;
import flash.display.MovieClip;[code]............
.. now I use a for loop to add instance of that class to a movie clip on stage:
for (var i:int = 0; i<Bunker[0]["trans0size"]; i++) {
menuData[i] = new menuitem00(i, menu_mc, Bunker[0]["transfile0" + i]);// pass i , a movieclip named menu_mc and an xml file name
menuData[i].name00 = Bunker[0]["transtitle0" + i]; // pass text
menuData[i].activateFlag = true; // set actveFlag to true
menuData[i].init(); // run init() inside the instance. it adds textfield to the menu_mc and also set name00 as Text for the textField
}[code].........
I want to get "xml00" var from that instance on the stage by mouse click but, trace (evt.target.xml00); is not working .. also trace (evt.target.name00); is not working. I can get everything like .alpha or .text from txt00 but not other variables in my object.
I have a bunch of variables I need to pass to some class from frame where I instance classes. Is there any other way do make Class read that variable values beside this?
Sample:
ActionScript Code:
var _imgPaddingVert:Number = 2;
var _imgPaddingHor:Number = 3;
var _minTopMargin:Number = 30;
[Code].....
i've never tried to do this before, so my head a swimming a bit. i'd like to have a public boolean called enabled in myClass custom class. if it's called to be changed, how do i trigger a function from the change? should i add an Event.CHANGE event listener to my variable?
View 1 Replieshow bad is this practice? I am having trouble getting to some stuff so i am taking the easy way out
Code:
private static var _interrupted:Boolean;
public static function setInterrupted(value:Boolean):void{
_interrupted = value;
}
So my question is how i can access public static var from an external loaded swf?
View 9 RepliesIs it possible to call/envoke a public static function from JS? I can't seem to get it working and Im almost certain it cannot but I thought I would ask the community.
View 2 RepliesI'm using exanimo's statemanager class but I dont know how to use this function:
public static function set defaultStateID(defaultStateID:String):Void
how do I call this function?
I have a class called (DropDown.as)In that class I haveCode:public static const DROPDOWN_CHANGE:String = "Drop Down Changed";In my document class (Main.as) I instantiate my class and try and trace my public static constant but it outputs undefined:
Code:
var dropDown_mc:DropDown = new DropDown();
trace("Public Static Constant" + " " + dropDown_mc.DROPDOWN_CHANGE);
[code]....
I'm setting up a class of public static vars that are to be BitmapData.
The problem I'm having is I can't seem to reference the vars dynamically in an array, making it impossible to give them values without some serious procdedural style coding.
This is what it looks like
package com.myPackage{
import flash.display.*;
import flash.events.*;
[Code]....
Should I assume it's because my array is a private var and placing references to public static vars is illegal? Is somebody gonna call the flash police on me?
Im just starting to get my hands into Action Script v2, and Im having a really hard time working out what the difference is between Public, Private and Static Variables, it seems that declaring variables in these types makes no difference what so ever to the avaliablility of my variables... Could someone be so kind as to put me on the right path?
View 2 RepliesI have a question about classes. I just learn that static means that functions and/or properties are specifics to a class, but is it a synonym of private? And why statics (not available to any instances?) properties and/or methods can have a public (available anywhere else (timeline)) access modifier? PS: I just start with classes.
View 6 RepliesI have declared some public static consts within a class Instrument. So that I can hopefully access them like Instrument.SAX, instrument.HARP, etc. etc. But when I go to trace out or compare the consts, it gives me this error:
1058: property is write-only
How can I return an object with an update data, that is pass in to a public static function?
GetDate.dayName(MyDate.setDate(1984,3))
//MyDate with new info (year, month) will be pass into GetDate.dayName
package hwang.time
[code].....
Is it possible to add my own custom property to the flash.display.Bitmap using a public static method? I'm trying to write a bitmap utility that does something to a bitmap, and stores a Number property onto it afterwards.
[Code]....
I'm still learning AS3.0 OOP, I think that this can't be done with this method. I think I have to make a new Class that extends 'Bitmap', add the prop there, and then in the Main.as make a new instance of that class, point to the target Bitmap, and run the method in the extended 'Bitmap' class (?).
I'm tryng to make a public static method call another method, but Flash throws error 1180, sayng that the method called by the static method is undefined.
Code: Select allpackage
{
import flash.display.MovieClip;[code]....
I have this ObjectType class which is a class to help me do something like this:
object.type = ObjectType.TWO
//ObjectType.as
package
[Code].....
A reference to the prototype object of a class or function object. The prototype property is automatically created and attached to any class or function object that you create.This property is static in that it
is specific to the class or function that you create. For example, if you create a class, the value of the prototype property is shared by all instances of the class and is accessible only as a class property.Instances of your class cannot directly access the prototype property. A class's prototype object is a special instance of that class that provides a mechanism for sharing state across all instances of a class. At run time, when a property is not found on a class instance, the delegate, which is the class prototype object, is checked for that property. If the prototype object does not contain the property, the
process continues with the prototype object's delegate checking in consecutively higher levels in the hierarchy until Flash Player or the Adobe Integrated Runtime finds the property.
Note: In ActionScript 3.0, prototype inheritance is not the primary mechanism for inheritance. Class inheritance, which drives the inheritance of fixed properties in class definitions, is the primary inheritance mechanism in ActionScript 3.0.
from this I get the impression that prototypes are just static variables.. am I right?
I have created a class to define my main navigation buttons. I would like to handle which button is clicked/pressed as simply and elegantly as possible, and I figured the best way would be to add a static variable to the class that keeps track of the current button pressed. Here's some quick pseudo-code. Code: class MainButton ext MC static var currentButton:MainButton public var sectionToLoad:String public static function getCurrentButton() public function getSection() button.onPress = currentButton = this // other button actions. // then i can check for what the currently clicked button // is and now access its variables. MainButton.getCurrentButton().getSection() etc. etc. etc. I am curious if this is a "proper" way to go about tracking the buttons. I find it is pretty elegant, but i'd rather make sure that this is a good practice of using static class variables. Also, it looks to me that all custom class definitions become a _global object?
View 1 RepliesI'm a .net developer making a small website on Flash. I noticed that when I initialize a static variable during runtime in one place I cannot get its new value at another place, why?
View 2 RepliesSay I have a class called Ball (movieclip) and I create a number of instances of it. There is a static variable, say, ballArray and need to access that from a different class, say, Bat. How do I go through with it? Can I access that using the class name itself (Ball.ballArray like in Java)?
View 1 RepliesI've always used this way to refer to variables on my document class
Code:
MovieClip(root).variablename
But that complicates things because I would need to extend my class as a displayObject and then add it to the displaylist to be able to use "MovieClip(root)" to access the variables in my document class.. as long as variables in my document class are set out as public variables..
I didn't realise you could refer to variables on the document class by just using something like:
Code:
documentclassname.variablename
With the the variable on the document class as "public static var". This solves a lot of problems.. as now I do not need to keep adding objects to the displaylist to get access to the document class variables..
Now.. My question is..Since I want to access most of my variables on my document class.. I would need to set them all to "public static var".. Would setting 100 or so variables to "public static var".. have any disadvantages? Like performance issues... Or anything else which may make it not be as efficent if I were to keep them simply as "public var" and use "MovieClip(root).variable" to access them?
How can I run a public function in the DocumentClass?
View 4 RepliesSo the reason I'm asking is..I have like 2000+ lines of code in 5 different separate classes. And they ALL have public properties and methods (as in, ALL the properties and methods are public). This is a fairly complex tile game 2d platformer. And yet everything is working fine. From what I've read, it seems that it 'MAY' cause problems later, where you might make a mistake and call a property twice, or call it 'wrongly', which then 'MAY' cause a bug that would be hard to backtrack.
There are surely many other reasons why not to do this..but if everything is working smoothly so far, should I really go back and try to make every variable private and recode this engine before I get to far?
Got some external classes, say MyClass.as MyClass.as has a static variable called foo
So, ordinarily in other AS files I can call this with MyClass.foo = bar;
However, this seems to be different in timeline scripts. Every time I try this I get the reference with a static type error 1119: Access of possibly undefined property foo through a reference with static type flash.display:DisplayObjectContainer.
I've tried doing an import MyClass, etc... nothing seems to be firing.
I'm trying to make methods available like so:
ActionScript Code:
MyClass.myFunc();
Instead of
ActionScript Code:
var myVar:MyClass = new MyClass();
myVar.myFunc();
I know that to do so I need to declare the functions/variables/constants as static:
ActionScript Code:
package MyPackage {
public class MyClass extends Object {
public static function myFunc():void {
} public function MyClass() {
[Code] .....
When I try to access the static function through the full reference (i.e trace(MyPackage.MyClass.myFunc);), it works, while trace(MyClass.myFunc); returns undefined. This contradicts what I've read in tutorials and posts on the Internet. They all use the short syntax, not the full path.
I've got two classes running...one is a document class (EgoGame.as) and another is a class linked to several similar movie clips (Ball.as).I'm trying to access a public variable from Ball.as which has been declared in the doucment class EgoGame.as.When I run the test the outputs states the following...1120: Access of undefined property _ballPlaced.Here's my code. What I'm trying to do is remove the event listeners from the Ball.as when the _ballPlaced variable is true, so that the user can't drag and drop the balls after they've been placed in a zone.
Document ClassEgoGame.as
package
{
[code].....