和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 }
