和Java的JavaBean中属性处理方式不一样,AS3中将get,set当做关键字,并通过这两个关键字来控制属性的访问和修改。
在AS3中,当一个属性同时被定义了public修饰的get和set方法时,就可以通过“对象.方法名”来访问和修改该属性,注意方法名不要带括号。
当只定义了该属性的get方法时,不能修改该属性。
当只定义了该属性的set方法时,不能访问该属性。
如下例中,OrderEvent定义了一个私有属性_dishes,并定义了该属性的get和set方法get dish()和set dish()。在Customer中就可一个通过orderDish.dishes来访问和修改该属性。
package
{
import flash.events.Event;
public class OrderEvent extends Event
{
public static const ORDER_DISHES:String = "点菜";
private var _dishes:Array;
public function OrderEvent()
{
super(ORDER_DISHES);
}
public function set dishes(dishesAry:Array):void{
_dishes = dishesAry;
}
public function get dishes():Array{
return _dishes;
}
}
}
package
{
import flash.events.EventDispatcher;
public class Customer extends EventDispatcher
{
public var name:String;
public function Customer(nS:String)
{
name = nS;
}
public function order():void{
var orderDish:OrderEvent = new OrderEvent();
orderDish.dishes = ["剁椒鱼头","农家小炒肉","神仙豆腐"];
dispatchEvent(orderDish);
}
}
}