![]() ![]() ![]() ![]() |
|||||
|
|||||
樓主 遠仔 ![]()
![]() |
大大們請問... 1.OrderEvent.as裡的public static const ORDER_DISHES:String='點菜' & super(ORDER_DISHES) 這二行CODE的用意在哪啊@@?WHY要這樣寫呢? 2.OrderEvent.as裡why要做function set dishes & function get dishe呢? 3.Waiter.as裡的e.target.name,target是指Customer?是因為Customer.as裡dispatchEvent(orderDish)的關係嗎? 4.Customer.as裡dispatchEvent(orderDish),是否也為觸發SampleOrderDishes.as裡偵聽事件 kingda.addEventListener(OrderEvent.ORDER_DISHES,xiangyuanWaiter.replyOrderFood); 的CODE呢? 大大們麻煩了~~0.0
本篇文章發表於2012-06-28 19:58
|
1樓 |
ORDER_DISHES:String='點菜'
ans: 是一個字串常數 super(ORDER_DISHES) ans: 係呼叫父類的建構函數,並傳入ORDER_DISHES OrderEvent.as裡why要做function set dishes & function get dishe呢? ans:因為要存取 dishes 屬性值 Waiter.as裡的e.target.name,target是指Customer?是因為Customer.as裡dispatchEvent(orderDish)的關係嗎? ans: e.target.name 您在檔案裡有問為何不用 e.name ,因為e.name不是它的屬性值 只有e.currentTarget.name 或 e.target.name 這兩個去判斷 以下程式碼比較清楚,您可以想成一個戰爭遊戲,戰場A裡面有多個敵人目標B,C,D...,您滑鼠按一下,表示開槍, 當當敵人B出現時,您滑處點過去,若點到,e.target.name 就是 B,若沒點到(亦即點到戰場上),e.target.name 就是 A 當當敵人C出現時,您滑處點過去,若點到,e.target.name 就是 C,若沒點到(亦即點到戰場上),e.target.name 就是 A D以後的敵人以此類推,以下程式碼 main_mc 就是戰場代表A main_mc.addEventListener(MouseEvent.CLICK, eventFun);這行就表示它在處理滑鼠事件,因此e.currentTarget.name 就是 main_mc(簡稱A) 有空去實作一下,就會知道,sensor1就是被擊中的的人e.target.name(簡稱B,C,D...) sensor2 就是戰場e.currentTarget.name (即main_mc 簡稱 A) Customer.as裡dispatchEvent(orderDish),是否也為觸發SampleOrderDishes.as裡偵聽事件 ans:是為了要派送自訂事件,若無派送,就無法偵聽,除非是內定事件,像上面程式碼的滑鼠事件的MouseEvent.CLICK,是內定的,就不必派送
本篇文章回覆於2012-06-28 23:45
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
2樓
作者回應
遠仔 ![]() |
帥大請問..
為何這題裡的function set dishes 和 function get dishe必須二者並存呢? 要存取 dishes 屬性值為何要二者都用到呢?
本篇文章回覆於2012-07-02 15:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
3樓
作者回應
遠仔 ![]() |
再請問一下@@
Customer.as中的 var orderDish:OrderEvent=new OrderEvent(); orderDish.dishes=['剁椒魚頭','家小炒肉','神仙豆腐']; 請問orderDish是OrderEvent實例,WHY能夠以陣列的方式(orderDish.dishes)來加入元素呢@@?
本篇文章回覆於2012-07-02 16:15
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
4樓
作者回應
遠仔 ![]() |
帥大拍謝,再請教...>"<, 在Waiter.as中
trace('你好,'+e.target.name+'! 你點的菜是: \r'+e.dishes); 裡的e是指Customer 或 kingda 或是 OrderEvent呢? e.target.name的e感覺是指kinda,而target是指Customer(因為kingda是Customer的實例) 但e.dishes的e又像是指OrderEvent 怎麼同一個e,會顯示不同地方的內容哩?
本篇文章回覆於2012-07-02 20:56
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
5樓 |
2#我在一樓也有回答阿
要存取 dishes 屬性值為何要二者都用到呢? 因為存set ,取 get ,這在其他語言物件也經常用到這兩者呀,您要單獨變成唯讀也可以啦,並不一定要兩者同時存在,就像有些物件屬性質不允許更改. to 3# 接收事件的函數內,您要傳入整數,字串,陣列...都隨設計者意思,陣列當然可以 to 4# 我在一樓有說 e.target.name 會隨發生事件的物件變動,就像滑鼠打中誰,並不固定 但在您的例子是kingda顧客(Customer)呀,因為產生訂菜事件的物件就是某個顧客,您的例子剛好只有一個,當然是kingda 若是遊戲中有很多顧客,那e.target.name就是顧客之其中一人,就不一定是 kingda
本篇文章回覆於2012-07-02 23:28
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
6樓
作者回應
遠仔 ![]() |
喔喔,原來如此~~
那如果我要再加一個客戶的話,要怎麼做呢? 我加了4行CODE,但是每次執行時都只出現固定的客戶名稱,照理說應該是每次名稱都隨機麼? 還有您給我的那題戰爭範例,不管我怎麼點,target和currentTarget永遠都是main_mc哩,怎會這樣? WAR
本篇文章回覆於2012-07-03 16:56
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
7樓
最有價值解答
香帥 ![]() |
to 6#
kingda2 那四行若放前面,會先 kingda2在來才是kingda 那四行若放後面,會先 kingda在來才是kingda2 因為您程式裡並沒隨機,按照您的程式行依序執行
本篇文章回覆於2012-07-04 23:11
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
8樓
作者回應
遠仔 ![]() |
恩恩,3Q~~^^
本篇文章回覆於2012-07-04 23:30
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
9樓 |
剛試好久,您的war檔無法下載,來幫您測
請至我的server下載完整範例,不過是要用cs5.5版才打得開 http://ap.a168a.com/test/event_v55.fla
本篇文章回覆於2012-07-05 00:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
10樓
作者回應
遠仔 ![]() |
感恩,小弟再PO一次連結,如果還是不行也沒關係
只是忽然想多加一個客人試試看~~^.^
本篇文章回覆於2012-07-09 15:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
11樓
作者回應
遠仔 ![]() |
回覆 |
如要回應,請先登入. |