2011-05-05 103 views
1

我已經成功地創建了我的第一個應用程序並將其導入到我的iPhone中,但我似乎無法使TouchEvents正常工作。我究竟做錯了什麼?這裏是我目前的代碼:Flash Builder 4.5的TouchEvents

package 
{ 
    import flash.display.Graphics; 
    import flash.display.Sprite; 
    import flash.display.StageAlign; 
    import flash.display.StageScaleMode; 
    import flash.events.MouseEvent; 
    import flash.events.TouchEvent; 
    import flash.ui.Multitouch; 
    import flash.ui.MultitouchInputMode; 

    public class TestIos extends Sprite 
    { 
     private var boll:Sprite = new Sprite; 
     private var radius:Number = 40; 

     public function TestIos() 
     { 
      super(); 

      // support autoOrients 
      stage.align = StageAlign.TOP_LEFT; 
      stage.scaleMode = StageScaleMode.NO_SCALE; 

      this.addChild(boll); 

      this.drawBoll(); 

      // Add events 
      boll.addEventListener(TouchEvent.TOUCH_BEGIN,onTouchBegin); 
      boll.addEventListener(TouchEvent.TOUCH_TAP,onTouchTap); 
     } 

     private function onTouchBegin(e:TouchEvent):void { 
      var g:Graphics = boll.graphics; 
      g.clear(); 
      g.beginFill(0xcc66cc,1); 
      g.drawCircle(150,radius,radius); 

      boll.scaleX = boll.scaleY = 1.25; 

      boll.addEventListener(TouchEvent.TOUCH_END,onTouchEnds); 
      boll.addEventListener(TouchEvent.TOUCH_MOVE,onTouchMove); 
     } 

     private function onTouchMove(e:TouchEvent):void { 
      boll.x = e.stageX; 
      boll.y = e.stageY; 
     } 

     private function onTouchTap(e:TouchEvent):void { 
      var g:Graphics = boll.graphics; 
      g.clear(); 
      g.beginFill(0x33cc33,1); 
      g.drawCircle(150,radius,radius); 

      boll.scaleX = boll.scaleY = 1; 
     } 

     private function onTouchEnds(e:TouchEvent):void { 
      this.drawBoll(); 

      boll.removeEventListener(TouchEvent.TOUCH_MOVE,onTouchMove); 
      boll.removeEventListener(TouchEvent.TOUCH_END,onTouchEnds); 
     } 

     private function drawBoll():void { 
      var g:Graphics = boll.graphics; 
      g.clear(); 
      g.beginFill(0x3399cc,1); 
      g.drawCircle(150,radius,radius); 

      boll.scaleX = boll.scaleY = 1; 
     } 
    } 
} 

回答

0

我會推薦你​​look at the API and examples。在這種情況下,您似乎錯過了Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;聲明。

+0

定義Multitouch.inputMode時沒什麼不同。在沒有使用觸摸設備的情況下,有沒有在計算機上調試觸摸事件的方法? – eldamar 2011-05-10 07:49:06

+0

請參考示例。嘗試使用示例行來查看它是否有效,然後找出代碼中缺少的內容。 – 2011-05-10 13:13:45

相關問題