2017-06-20 5 views
-1

私はチュートリアルからホイールゲームをしました。問題はゲームがマウスでは完全に機能するが、タッチスクリーンでは機能しないことである。私はゲームを変えるためにそれを操作する方法を知らない。ゲームのタッチスクリーンをサポートするにはどうしたらいいですか?

ゲームをタッチスクリーン機能に適合させるにはどうすればよいですか?

package 
{ 
    import flash.display.Sprite; 
    import flash.display.Shape; 
    import flash.events.MouseEvent; 
    import flash.events.Event; 
    import com.greensock.TweenMax; 

    public final class Main extends Sprite 
    { 
     private var speed:Number = 0; 
     private var paddles:Vector.<Sprite> = new Vector.<Sprite>(); 
     private var line:Shape; 
     private var lastPaddle:String; 

     public final function Main():void 
     { 
      paddles.push(wheel.p1, wheel.p2, wheel.p3, wheel.p4, wheel.p5, wheel.p6, wheel.p7, wheel.p8, wheel.p9, wheel.p10); 
      listeners('add'); 
     } 

     private final function listeners(action:String):void 
     { 
      if(action == 'add') 
      { 
       stage.addEventListener(MouseEvent.MOUSE_DOWN, startDraw); 
       stage.addEventListener(MouseEvent.MOUSE_UP, spinWheel); 
      } 
      else 
      { 
       stage.removeEventListener(MouseEvent.MOUSE_DOWN, startDraw); 
       stage.removeEventListener(MouseEvent.MOUSE_UP, spinWheel); 
      } 
     } 

     private final function startDraw(e:MouseEvent):void 
     { 
      line = new Shape(); 
      addChild(line); 

      line.graphics.moveTo(mouseX, mouseY); 
      line.graphics.lineStyle(8, 0x000000, 0.3); 
      stage.addEventListener(MouseEvent.MOUSE_MOVE, drawLine); 
     } 

     private final function drawLine(e:MouseEvent):void 
     { 
      line.graphics.lineTo(mouseX, mouseY); 
     } 

     private final function spinWheel(e:MouseEvent):void 
     { 
      stage.removeEventListener(MouseEvent.MOUSE_MOVE, drawLine); 
      listeners('rm'); 

      speed = line.height * 0.1; 
      removeChild(line); 
      line = null; 

      stage.addEventListener(Event.ENTER_FRAME, spin); 
     } 

     private final function spin(e:Event):void 
     { 
      /* Rotate Wheel */ 

      wheel.rotationZ += speed; 

      /* Detect Value */ 

      for(var i:int = 0; i < 10; i++) 
      { 
       if(indicator.hArea.hitTestObject(paddles[i])) 
       { 
        lastPaddle = paddles[i].name; 
       } 
      } 

      /* Decrease speed */ 

      speed -= 0.1; 

      /* Remove lIstener and reset speed when wheel stops */ 

      if(speed <= 0) 
      { 
       stage.removeEventListener(Event.ENTER_FRAME, spin); 
       speed = 10; 
       run(lastPaddle); 
       listeners('add'); 
      } 
     } 

     function run(action:String):void 
     { 
      switch(action) 
      { 
       case 'p1': 
        myText.text = "text 10"; 
        break; 
       case 'p2': 
        myText.text = "text 25"; 
        break; 
       case 'p3': 
        myText.text = "text 20"; 
        break; 
       case 'p4': 
        myText.text = "text 50"; 
        break; 
       case 'p5': 
        myText.text = "text 30"; 
        break; 
       case 'p6': 
        myText.text = "text 75"; 
        break; 
       case 'p7': 
        myText.text = "text 40"; 
        break; 
       case 'p8': 
        myText.text = "text 100"; 
        break; 
       case 'p9': 
        myText.text = "text 50"; 
        break; 
       case 'p10': 
        myText.text = "text 125"; 
        break; 
      } 
     } 
    } 
} 
+2

** Multitouch.inputMode = MultitouchInputMode.NONE; **マウス入力などのタッチを読むためのアプリケーションをレンダリングします:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/ui/Multitouch.html#inputMode – Organis

答えて

1

段階ですべてのセットの最初の:それ 後

Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT

だけではTouchEventへのMouseEventを交換しTOUCH_BEGINするMOUSE_DOWNを交換しに MOUSE_UP TOUCH_END。その後、あなたははTouchEvent にイベントハンドラでのMouseEventを変更する必要がありますし、あなたがMOUSE_MOVEのchengeを使用している場合はTOUCH_MOVEすること

private final function listeners(action:String):void 
    { 
     if(action == 'add') 
     { 
      stage.addEventListener(TouchEvent.TOUCH_BEGIN, startDraw); 
      stage.addEventListener(TouchEvent.TOUCH_END, spinWheel); 
     } 
     else 
     { 
      stage.removeEventListener(TouchEvent.TOUCH_END, startDraw); 
      stage.removeEventListener(TouchEvent.TOUCH_BEGIN, spinWheel); 
     } 
    } 
関連する問題