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());
Содержание FLEX-FLEX ACTIONSCRIPT LANGUAGE
Страница 1: ...Flex ActionScript Language Reference...
Страница 8: ......
Страница 66: ...66 Chapter 2 Creating Custom Classes with ActionScript 2 0...
Страница 76: ......
Страница 133: ...break 133 See also for for in do while while switch case continue throw try catch finally...
Страница 135: ...case 135 See also break default strict equality switch...
Страница 146: ...146 Chapter 5 ActionScript Core Language Elements See also break continue while...
Страница 229: ...while 229 i 3 The following result is written to the log file 0 3 6 9 12 15 18 See also do while continue for for in...
Страница 808: ...808 Chapter 7 ActionScript for Flash...
Страница 810: ...810 Appendix A Deprecated Flash 4 operators...
Страница 815: ...Other keys 815 Num Lock 144 186 187 _ 189 191 192 219 220 221 222 Key Key code...
Страница 816: ...816 Appendix B Keyboard Keys and Key Code Values...
Страница 822: ...822 Index...