2013-10-01 42 views
-1

我在我的遊戲類(不是主類)上實現了觸摸事件。iOS上starling - 觸摸事件不起作用

addEventListener(starling.events.TouchEvent.TOUCH, onTouch); 

function onTouch(e:starling.events.TouchEvent) { 

    var touch:Touch = e.getTouch(stage) as Touch; 

} 

在FlashDevelop中的移動模擬器中進行測試時,處理程序工作。

在運行iOS 7的iPad上測試時,它不會觸發。

我錯過了什麼嗎?

我有這個在Main.as的開頭:

// touch or gesture? 
    Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT; 

    Starling.multitouchEnabled = true; 

米爾扎

+0

.addEventListener(starling.events.TouchEvent.TOUCH,onTouch); – mirzahat

+0

現在的問題是,事件被解僱,但裏面的東西沒有執行,但它在模擬器中工作 – mirzahat

+0

你是否嘗試使用這個而不是舞臺? var touch:Touch = e.getTouch(this,TouchPhase.ENDED); – mika

回答

0

你需要告訴我們你想什麼事件處理程序中執行,因爲你的問題現在是該代碼。

你在你的問題所做的只是創建一個指向觸摸事件的指針。

+0

Im強制biy2d身體施壓 – mirzahat

+0

我添加了代碼作爲我自己的答案 – mirzahat

0

我施加力的Box2D的身體,我得到了它在FlashDevelop中模擬器的工作,但它不會在iOS設備上運行:我有TI加入舞臺監聽器,舞臺工作

if (touch && touch.phase == TouchPhase.ENDED) { 

       //do something 


        var mouseX_m:Number = touch.globalX; 
      var mouseY_m:Number = touch.globalY; 

      var xDiff:Number = mouseX_m - (_whiteBall.GetPosition().x * WORLD_SCALE); 
      var yDiff:Number = mouseY_m - (_whiteBall.GetPosition().y * WORLD_SCALE); 

      var angle:Number = Math.atan2(yDiff, xDiff); 
      var angleDeg = angle * 180/Math.PI; 


      //que_mc.rotation = angleDeg; 

      var len = Math.sqrt((xDiff * xDiff) + (yDiff * yDiff)); 

      var vx = len * Math.cos(angle); 
      var vy = len * Math.sin(angle); 

      var vel = _whiteBall.GetLinearVelocity(); 

      vel.x += (vx * 5); 
      vel.y += (vy * 5); 


       //apply force 
       var force = new b2Vec2(vel.x, vel.y); 
       _whiteBall.SetAwake(vel); 
       _whiteBall.SetLinearVelocity(force); 



      } 
+1

用這個信息更新你的問題,不要添加答案。 –