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