Implicit getter/setter methods
63
trace("Creating subwidget # "+Widget.widgetCount);
}
}
The ActionScript 2.0 compiler can resolve static member references within class definitions. In
the previous example, if you don't specify the class name for the
Widget.widgetCount
property,
but instead refer only to
widgetCount
, the ActionScript 2.0 compiler ascertains that the reference
is actually to
Widget.widgetCount
and correctly exports that property. Similarly, if you referred
to the property as
SubWidget.widgetCount
, the compiler rewrites the reference (in the bytecode,
not in your AS file) as
Widget.widgetCount
because
SubWidget
is a subclass of the
Widget
class.
However, for optimal readability of your code, it is recommended that you always use explicit
references in your code, as shown in the previous example, to easily identify where the definition
of a static member resides.
Implicit getter/setter methods
Object-oriented programming practice discourages direct access to properties within a class.
Classes typically define
getter
methods that provide read access and
setter
methods that provide
write access to a given property. For example, imagine a class that contains a property called
userName
:
var userName:String;
Instead of allowing instances of the class to directly access this property (
obj.userName =
"Jody"
, for example), the class might have two methods,
getUserName
and
setUserName
, that
would be implemented as shown in the following example:
class LoginClass {
private var userName:String;
function LoginClass(name:String) {
this.userName = name;
}
function getUserName():String {
return this.userName;
}
function setUserName(name:String):Void {
this.userName = name;
}
}
As you can see,
getUserName
returns the current value of
userName
, and
setUserName
sets the
value of
userName
to the string parameter passed to the method. An instance of the class would
then use the following syntax to get or set the
userName
property:
var obj:LoginClass = new LoginClass("RickyM");
// calling "get" method
var name = obj.getUserName();
trace(name);
// calling "set" method
obj.setUserName("EnriqueI");
trace(obj.getUserName());
Summary of Contents for FLEX-FLEX ACTIONSCRIPT LANGUAGE
Page 1: ...Flex ActionScript Language Reference...
Page 8: ......
Page 66: ...66 Chapter 2 Creating Custom Classes with ActionScript 2 0...
Page 76: ......
Page 133: ...break 133 See also for for in do while while switch case continue throw try catch finally...
Page 135: ...case 135 See also break default strict equality switch...
Page 146: ...146 Chapter 5 ActionScript Core Language Elements See also break continue while...
Page 808: ...808 Chapter 7 ActionScript for Flash...
Page 810: ...810 Appendix A Deprecated Flash 4 operators...
Page 815: ...Other keys 815 Num Lock 144 186 187 _ 189 191 192 219 220 221 222 Key Key code...
Page 816: ...816 Appendix B Keyboard Keys and Key Code Values...
Page 822: ...822 Index...