看板 Flash 關於我們 聯絡資訊
以下是部分程式碼 抱歉有點傷眼 我盡量用的好看一點 @@" main function中 { var s:Sprite = new Sprite() . . var t:TextField = new TextField(); . . s.addChild(t); addChild(s); s.addEventListener(FocusEvent.FOCUS_IN, focusInListener); } public function focusInListener (e:FocusEvent):void } trace("Target of this event dispatch: " + e.target); // Displays: [object TextField] trace("Object with which this listener registered: "+e.currentTarget); // Displays: [object Sprite] } 請問一下 當我在點擊畫面的TextField的時候 事件是由誰觸發的 textfield物件已經裝在sprite裡面了吧@@? 我查help裡面textfield沒有focus_in這種event 但是sprite有 難道sprite的event inherit給了textfield? 因為comment似乎說target是丟event的 currentTarget是註冊的 還有為什麼是listener要register在sprite object? 書上前面一點在說non-display object裡面的話 currentTarget就會等於Target 在register的時候只要 會發佈event的object"a" .addEventListener(event,listener) Target和currentTarget就快快樂樂的指向a就好了 這個code裡面註冊的時候不註冊發佈event的textfield去註冊Sprite是為了? 還有最後和標題無關的問題 =ˇ=   程式碼裡面的addChild(s) 是要add到哪裡去.... 抱歉希望我知道問題有點亂 我也語無倫次 有勞版友解惑 先謝過 <(_ _)> -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.193.144.115
dreamboxer:addChild(DisplayObject), 是加到目前物件的顯示清單中 07/16 08:41
dreamboxer:在AS3中,要把物件加到顯示清單中才會顯示在畫面上 07/16 08:42
killswitch:原來如此 謝謝樓上 07/17 17:47