ActionScript 3.0 :: Any Way To Make Static Getter / Setter?
Dec 29, 2009Anyone know a workaround to make static getter/setters?
View 2 RepliesAnyone know a workaround to make static getter/setters?
View 2 RepliesI've created an AS class to use as a data model, shown here:
package
{
import mx.controls.Alert;
[code].....
I'm having trouble updating a property value of a custom class (SubLoader) using a getter and setter. Inside the if() statement of the main fla you can see my attempt to set the percent value. Running a trace() method before the if() statement always outputs '0' for some reason. Tracing after the if() statment outputs an actual value. I can't figure out why the percent property always traces as '0' before the if statement even though I am updating it with each progress event.
[Code]...
I seem to have run into a situation where when I push a value to an array held within a singleton via a getter/setter , Flash seem so access the getter over the setter method. Within my command/controller (I am using RobotLegs)
override public function execute():void {
// various line of code here
//Place screenshot image into an array from model for later reference.
model.unitScreenshots.push(screenShot); // screenshot is just a Bitmap object
}
The getter and setter within my model e.g. robot legs singleton
public function get unitScreenshots():Array {
return _unitScreenshots;
} public function set unitScreenshots(value:Array):void {
_unitScreenshots = value;
}
When I set a break point on both the getter and setter, only the getter method is being called, why? I would think that a push value on the array would trigger the setter, not the getter.
I'm trying to create a property that can be set by extending classed and read publicly.I couldn't think of a good naming convention for a protected property with a public getter, so I tried to do this:
public function get name():String{ return _name; }
protected function set name(string:String):void
{[code]......
However I get the error (when trying to set name in an extending class): 1178: Attempted access of inaccessible property name through a
reference with static type testing:TestComponent.1059: Property is read-only.
If I change the setter to public, it works fine.
I recently completed a tic-tac-toe game in AS3, using some simple function-based code I had written in C many years ago.Now I'm on a quest to do it the "right way" using OOP techniques and best practices.Everything is now divided into neat little packages, it looks pretty, and the last part of my journey is to get all the little buggers to communicate with each other.I want to move the code which holds the game state from my main to it's own class in com.okaygraphics.model.GameState.The problem is nearly every other package gets and sets these game state properties.I'm trying to figure out the simplest way to encapsulate this stuff, while still allowing my other classes to access it.
1) Do I need a constructor? I mean, my program will never have more than one GameState. If I should call my getters/setters as instance methods, how do I get each other class to reference the SAME instance from their respective packages?
2) Do I even need getters and setters? Perhaps the class could just have 3 public properties? If so, how would I acheive the proper scope with regard to my other classes?
3) Should I assign everything to the class itself using the static keyword? If so, how would I implement and use those static methods?
4) Is this a mistake? Did I totally just program myself into a corner?
i dont get the advantages of using getter and setter instead of setting the var public.
View 7 RepliesI have two functions one that sets and one that gets a number. The set one works, but the get one doesn't. I have it trace the set it returns the correct number, but when I set the getY function, it doesn't give me anything at all. When i took the number out of the trace it just gave me back only text. What am I doing wrong here?
ActionScript Code:
public function setY(y):void {
y = y;
[code].....
I have a .as file with class Main which contains:
Code:
public function set Set_AnimationFile(FileName:String):void
{
this.FileName=FileName;
[Code]....
How do i access these functions from my timeline script?
I have tried
[Code].....
I have written a class, which is basically a textfield for forms. It will eventually have several validation modes built into it too, which will be set by setting a property of the object.anyway, my problem. Basically my setters are empty if the movie is used as a loaded swf within another movie.I have an Event listener within the class listening for the Event.ACTIVATE event (still not sure exactly what this does...) though i do know that i need this in place for the setters/getters to work.If i create objects from my class, set some properties everything is spot on, though the moment i load this working movie into another movie the Event.ACTIVATE does not fire.[code]Now, if i run this movie its perfect - everything works as it should, right down to the validation.however, this movie is to be used within another movie. When i load this movie into a parent movie my fields aren't added to the movie.
View 5 RepliesI'm trying to make a class that extends the Sprite, have some private properties attached to it and be able to read and write those properties using getters and setters. Simple... but the compiler throw this error "Access of possibly undefined property speed through a reference with static type flash.display:Sprite."It works if I set my class to extend the MovieClip object.Could someone explain me the logic behind this? why I can't use getter and setters with a Sprite?Here is a sample code:
package {
import flash.display.Sprite;
public class Vehicle extends Sprite{
[code].....
I'm trying to make a class that extends the Sprite, have some private properties attached to it and be able to read and write those properties using getters and setters. Simple... but the compiler throw this error "Access of possibly undefined property speed through a reference with static type flash.display:Sprite."It works if I set my class to extend the MovieClip object. someone explain me the logic behind this? why I can't use getter and setters with a Sprite?
[Code]...
Is it possible to have a property with a public getter and protected setter? I have the following code:
public class Mob extends Sprite {
// snip
private var _health:Number; // tried making this protected, didn't work
public function get health():Number { return _health; }
protected function set health(value:Number):void {
[Code]...
I did have this.health -= dmg; but I split it out to get more details on the compiler errors. I don't understand how the property would be considered read-only within the same class. I also don't understand how it's inaccessible. If I make the backing field, getter, and setter all protected, it compiles but it's not the result I want; I need health to be readable externally.
Which is a much better practice in binding a value in Flex?
View 2 RepliesI have a problem whereby in AS3 using Flash Builder 4 using a public getter with an internal setter gives me the error "property is read only", like so:
[Code]...
"Getting" the hang of Getter/Setter methods, but could use a review of my syntax. Does the follwing demonstrate best practices, meaning the least awarkward application of the technique?
Code:
// in Calculator.as
class Calculator {
private var _priceCD:Number;
private var _priceShocks:Number;
private var _priceCover:Number;
[Code]...
The generally used workaround for this, is to use a regular function instead of a getter/setter. This results in having to have ( ) after the function variable obviously. The question is, can a Function variable be assigned to a getter/setter function and retain its attribute of not needing brackets.
Below is some Pseudo code representing the question:
#########################################################
public class Foo(){
private var prop:Object;
public function get Prop():Object{return prop;}
[Code].....
how to make a count down set to a static date? Like Aug. 1st. at 12:00 p.m. ?
I found a tut. on this site about a count down, but it only allows for Christmas 03.
Is there a way to make the flash as3 compiler require static typing? I've got a bad habit of not doing it, and it'd be nice to make it throw compiler errors. In the publish settings for as3, I turned on "strict" but that didn't really change anything.
View 2 RepliesLet's say I would want to use the frameScript method to add some stop and play methods to some frames.
Normally I would declare the stop function:
private function $FUN_FrameStop():void {
stop();
[code].....
I found a lot of tutorials that show how to use getDefinitionByName() to create an instance of a class. Something like the following:
Code:
var classRef:Class = getDefinitionByName("menus.buttons.Icons") as Class;
var iconClassInstance:Icons = new classRef() as Icons;
[code]....
If I only instantiate a class once should I make its vars static? I understand how this is of benefit if I make multiple classes, clearly you use less memory as it creates a reference to the same place for each class. Are there any other benefits for creating static vars or functions ?
For example I have my class 'MainMenu' which I create once (might even be my document class). In it I create a
Code:
private var someHolderForStuff:Sprite = new Sprite();
Should I rather create
Code:
private static var someHolderForStuff:Sprite = new Sprite();
How do I make dynamic text look static while the HMTL tagging is enabled?
I have a dynamic text filed where I am setting the text value through a variable. Now, I need that text to look static on run time and HTML tagging on the field enabled.
Is there a way to make an static method act over an object of its class that is already on the stage, without using the keyword "this"? I mean, like "generic object of this class: do what I'm telling you to do, wathever your instance name".My goal is to create an method that get called by any object of this class, based on the changing on the value of an external variable, but since I cannot use the "this" keyword to reffer to each instance, I could not figure out a solution.
View 1 RepliesI'm trying to make a scroller for a movieClip, with a static text inside does any one Know how can i do it. (I don't need the arrowfor this case but only the code for the scrolling bar)
View 5 RepliesI have a dynamic text field where I am setting it's text value through a variable. Now, I need this dynamic text field content to look like static font on runtime. I tried embedding the text field but that makes my file so heavy and most importantly, it disables the HTML tagging on the text field.
View 8 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;
}
I have a setter and getter method , the getter method should return an array collection but it's always returning an empty array collection even when I've run trace to check on it.[code]...
View 1 RepliesLet's say you have the following situation:
1. Static var(an Array) stored in a class.
2. You create a variable reference to the static class in a separate class.
3. Splice some items from the reference variable in the separate class.
4. Trace the static class and the items have been removed from that too.
5. Verify several times.
6. Get confused.
7. Post on Kirupa.
Ok, so I have a bit of a mess here (Which I'm probably not doing right anyway, which could be my problem...). I have a document class, I'll call it as Body.as, that creates an object from another class known as Headgear.as. There are also other objects created from other classes, or will be in the future. Now, amoung all this, Headgear.as and all of the other classes Body.as will use to make objects require the use of dragging functions (starting and stopping dragging). On stopping drags, position checks are then made to compare a particular hidden movieclip with the dragged MC.
To try and save myself some hassle (from making the same functions over and over to ensuring that when the objects are created I don't need to send a complete crapload of variables just to ensure the position checking function would work), I had the functions for the event listeners (Which are set-up on the draggable MCs in Headgear.as) just direct to functions in Body.as
[Code]...