one thing i’ve never really understood about AS3 is that you can’t have a private set method and a public get method together.
from within my class i would like to assign values that would call a private set function:
myNumber = 22;
but i need to pass that number as a parameter to a function
myNumber(22);
for example:
package
{
//Imports
import flash.display.Sprite
//Class
public class NumberClass extends Sprite
{
//Properties
private var myNumberProperty:Number
//Constructor
public function NumberClass(myNumber:Number):void
{
this.myNumber = myNumber;
init();
}
//Initialize
private function init():void
{
trace(myNumber);
}
//My Number Setter
private function set myNumber(value:Number):void
{
myNumberProperty = Math.max(0, Math.min(value, 100));
}
//My Number Getter
public function get myNumber():Number
{
return myNumberProperty;
}
}
}
is there no way to use the set keyword on a private function?
The MXML compiler does not support getters and setters with mixed scopes/namespaces. There are a few tickets open regarding this:
It’s quite annoying, but at least Adobe is aware of it. There is a way to accomplish mixed namespace getters and setters by using custom namespaces and fully-qualifying references to the getter or setter.