[ 教學 ] FL2.0 Key Listener Control:Erin's Blog:Xuite日誌
  • Erin
  • Life is a game...
    Please don''t send any mail to my Xuite mail address, coz I don''t check it anymore.

    Taiwan Adobe User Group Flash Evangelist


    認證:
    Certified Macromedia Flash MX 2004 Developer
    Sun java SCJP



  • 日曆
  • 搜尋文章
  • 關鍵字
  • 文章分類
  • 最新文章
  • 最新回應
  • Re:BlackJack...FlashLite1.1,by(goldforwow)於2007-09-29
    Re:幸運猜拳...FlashLite1.1,by(naomi)於2007-07-31
    Re:[分享] Flash lite作圖小技巧,by(Erin)於2007-05-25
    Re:[分享] Flash lite作圖小技巧,by(sam100nt)於2007-05-22
    Re:[分享] Flash lite作圖小技巧,by(Erin)於2007-05-21
    Re:[分享] Flash lite作圖小技巧,by(sam100nt)於2007-05-20
    Re:[分享] Flash lite作圖小技巧,by(Erin)於2007-05-20
    Re:[分享] Flash lite作圖小技巧,by(sam100nt)於2007-05-20
    Re:[分享] Flash lite作圖小技巧,by(CD928)於2007-05-15
    Re:幸運猜拳...FlashLite1.1,by(igolg)於2007-02-09
  • 最愛連結
  • 日誌使用資源






  • 如何使用RSS
    Powered by Xuite
    2006-08-29 16:48 [ 教學 ] FL2.0 Key Listener Control
  • ?
  • Flash lite2.X
  • 好文轉寄
  • 平均分數:0 顆星    投票人數:0
    我要評分:
    標籤 : 


    當FL2.0不接受按鈕用on (keyPress "PageDown")  and on (keyPress "PageUp")來控制RSK (右soft key) and LSK (左soft key)時,大家非不得已要開始使用Key listener來做按鈕控制。Key Listener其實很好用,但是前提是你不可以將它搞亂,不然會出現有趣的bug喔!

    以下是一個簡單範例包含list menu外加 RSK 點選後會pop-up 一個詢問離開的視窗:

     

    重點整理:

    1. RSK and LSK key listener最好與其它操作的listener分開。
        - 因為這個範例只有一層所以會看不出哪邊方便,但是如果你的程式是需要包含很多key event操作,每個listener都要寫入RSK的動作就太沒效率了。

    2. removeListener的動作最好寫在listener object身上。
        - 好處就是...你不用煩惱哪邊忘了remove掉而出現白癡的bug....

    var _listener=new Object();
    _listener.onKeyDown = function() {
        var code = Key.getCode();
         if (code ==13) {
              Key.removeListener(this);
     
         }
    }

    3.當詢問離開視窗pop-up後,整個程式的key event的控制會進入所謂的pause階段,所有跟現階段操作有關的key listeners都應該先被移除掉。
       - Key._listeners, 會回傳所有被註冊在Key裡的listeners, 回傳型態Array
       - 利用一個新的Array 拷貝 Key._listeners
    _cacheListeners = new Array();
        _cacheListeners = _cacheListeners.concat(Key._listeners);
      for (var i in _cacheListeners) {
       Key.removeListener(_cacheListeners[i]);
      }

       - 當然要記得在離開pop-up 視窗後將所有該用的listeners註冊回去

    for (var i in _cacheListeners) {
        Key.addListener(_cacheListeners[i]);
       }

    ^^ 有興趣請下載原始檔唄!

    相關應用可看前篇Nice to meet you.... lite version



    Erin / Xuite日誌 / 回應(2) / 引用(0) / 好文轉寄
  • 回應