ActionScript 3.0 :: Why Use Setters And Getters
Feb 5, 2010I've been wondering woudn't a function with return do the same thing as a get function with return?[code]
View 6 RepliesI've been wondering woudn't a function with return do the same thing as a get function with return?[code]
View 6 RepliesIs there a way to synthesize getters/setters in AS3? It's very common that you have a class with lots of variables, especially in math calculations (Model in MVC pattern), that you'd like to expose. Is there something like synthesize property in Objective-C, that allows to generate getters/setters?
View 4 RepliesIs there a way to use getters and setters for Vectors?Say, in my Main class, I would like to write
myVector.push(item);
and in another class, I have written:
public function get myVector():Vector.<int> {
return _opponentCardList;
}
public function set myVector(myVector:Vector.<int>):void {
_myVector = myVector;
}
This doesn't really work as you have to set _myVector to a Vector. But what if you just want to push(), pop() or splice?
I am trying to put getters and setters into my inteface but I get the following error1053:
Accessor types must match.
Below is my Interface. package com.objects{
[Code]...
How are you suppose to put getters and setters into a interface. for as3
package
{
import flash.display.Sprite;
public class AbstractTarget extends Sprite [codee]................
And then I have a class called "Target" that extends AbstractTarget...how do I access the __movement property? Do I have to write the getter and setter in my Target class also and override both functions/methods?
fact: using my setup, a class that inherits from another class does not inherit the parent class' getter/setter methods.
View 2 RepliesWhat's the best way around this problem with interfaces?
public interface ITest {
function set testField(test:String):void;
}[code]......
Test does have a setter for testField (an implicit one).I don't want to define an explicit one for every single field I have defined in my interface.There doesn't seem to be a way to define getters/setters in interfaces (or the syntax just escapes me).Do I have to do this explicit getter/setter nonsense in order to use interfaces in this way?
In the following:
//track of whether the player has the key public function get hasKey():Boolean {
return _hasKey;
} public function set hasKey(keyState:Boolean) {
//trace(keyState);
_hasKey = keyState; }
These functions don't even work until a value is passed to keyState in the set function correct? As you can see I did a trace keyState and the trace didn't return anything until it was true.
1. How parameters we can send to a Setter ?
2. What are the best practices of setters and getters?
I've came across this compilation error a while ago.. As there's an easy fix and I didn't find anything relevant at the time, I eventually let it go.I just remembered it and I'm now wondering if this is really part of the language grammar (which I highly doubt) or if it's a compiler bug. I'm being purely curious about this -- it doesn't really affect development, but it would be nice to see if any of you have seen this already.
package view {
import flash.display.Sprite;
public class Main extends Sprite {
[code].....
I have a class (Wall) that inherits from Sprite.Sprite already has width and height properties. But for wall, I need to do some other additional calculations when the properties change (f.e. make sure the new size won't cause it to overlap any other walls).So, how do I set the width property inherited from the Sprite class from within the width setter of the Wall? (or perhaps there is an alternative way to do my bounds checking whenever width is set?)[code]
View 1 RepliesThe following code seems to create an ambiguity for the compiler (please see error commented near the bottom). Is it not possible to have getters and setters split between interfaces?
[Code]...
if getters and setters are the best option in a specific case. The case is when I have class 'A' instantiating classes 'B' and 'C'. Class A contains public getters and setters for classes B and C to access so data is centralised.Is this best practice or would it be best to pass the data to classes B and C through parameters?
View 3 Replieswhats the difference? I cant see any, it looks the same to me in the end
View 5 RepliesI don't understand why adobe set them up that way. As far as I can tell, all the setter does is change the value of the varible and nothing else. does anyone know why adobe set things up this way or what the x and y setter do other than changing the value of the varible?
View 7 RepliesI am plain stumped. I am working in F8/as2.0.I have a class that extends the MovieClip class. I have a blank_mc in the library that is linked to the class. Here is the constructor:
ActionScript Code:
public function MyMC (target_mc:MovieClip){
var _mc:MovieClip = this;
_mc = target_mc.attachMovie (.....);
}
That works all fine and dandy. Where I am having issues is basically I have properties x, y that DON't overwrite the _mc's _x & _y props. Instead, the use getter & setters that take values and then calculate the needed number to set the actuall _mc._x, _y props. This doesn't seem to work at all and i don't know why. Here is the code:
[Code]
So I got this to work by NOT extending the MC. Instead I have a variable ref to a _mc prop in the class.However I am unable to set event functions to it even if I make some ref to the _mc prop. Is there a good way of approaching this by say a decorator pattern?
anyway im using flash as3 for about 6 months, and im still kinda confuse in this things like getters and setters, and idk what you call that but here's and example :
private function myBoolean():boolean
{
//codes here //
{
idk how to use it, and what it differs from getters and setters,
how 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;
}
my main class is Editor my sub class is a CustomTextField i need my Editor to keep track of what the active CustomTextField is, since there can be more than one. i want to have a variable, activeTextField:String to keep track of the active CustomTextField. i created getters and setters on editor to keep track of activeTextField. how do i call these getters and setters from the editor w/out using static getters and setters on the editor? this has to be confusing to read because i am utterly confused writing it...
View 1 RepliesDear goodness, am I the only person on the web trying to send a VO object from Flash to AMF where the properties are read only/getters? If I add a setter that does nothing but throws an Error it works. If no setting is present in Flash, it fails. Is there a way to send objects to AMF that have getters and not setters?
View 3 Repliesi am writing a class for button bar and encapsulating it into main file when i call the setter an object should generate ex:
var s:ButtonBar = new ButtonBar();
s._texts ="kiran";
s._texts = "karthik";
[code].....
I need to change a text field every time values in an array is updated, and I tried putting the code in the setter. However, the code is not being called. Even if I do this
public function set resources(value:*) {
//this function does not seem to matter at all
}
Nothing happens. I think AS3 overrides setters for arrays, how do I get the functionality other than inserting a changeTextFields(); every time I change the array?
I'm finally reading up on commenting code with ASDoc (http:url]....) but the way ASDoc is set up doesn't seem to agree with the way I write my getter/setters.Here is how I write them:
Code:
//I want to add the ASDoc tags here, before this chunk of code
private var _enabled:Boolean = true;
public function get enabled():Boolean[code]...
if I ad the tags where I want them, if I understand correctly, they will comment the private variable instead. Bummer.So, either I change the coding style I have been using for the past three years, or insert the tags inside of my code, making it ugly and less structured. I'm leaning towards option A.how do YOU write your getter/setters so they are ASDoc friendly?
Is there a way to override the width (for a getter) on a Sprite?I see examples of how to override the setter but not the getterI need to do something like
override public function get width():Number {
if (onecase) {
return this width;
[code]....
I had to use a setter...how would I implement that into my code, On my external AS file for the coin I have the following:
package
{
import flash.display.MovieClip
import flash.events.*;[code]....
And in the main movie I made a dynamic text box gave it an instance name of "score" and in my action script I wrote:
score.text = String(coin.coinsCollected);