所以我一直在编写这段代码已经好几周了(我是AS3的初学者),但在我的生活中不能弄清楚如何编写接收触摸输入的工作移动按钮。此代码以其中一个Adobe Samples建模,但是当我运行它时,它无法正常工作。
这是我的代码:
package MovementButtons
{
import flash.events.Event;
import flash.display.MovieClip;
import flash.display.SimpleButton;
import flash.events.TouchEvent;
public class TouchInput extends MovieClip
{
public var bLeftPressed:Boolean = true;
public var bRightPressed:Boolean = true;
public var nSpeed:Number = 100;
}
public function TouchInput()
{
left_btn.addEventListener(TouchEvent.TOUCH_BEGIN, TouchBeginHandler, false, 0, true);
left_btn.addEventListener(MouseEvent.TOUCH_END, TouchEndHandler, false, 0, true);
right_btn.addEventListener(TouchEvent.TOUCH_BEGIN, TouchBeginHandler, false, 0, true);
right_btn.addEventListener(TouchEvent.TOUCH_END, TouchEndHandler, false, 0, true);
//Updating Screen
addEventListener(TouchEvent.TOUCH_BEGIN, enterFrameMoveHandler);
}
protected function enterFrameMoveHandler(event:TouchEvent):void
{
var click.txt:String= "The function is working";
while ( bLeftPressed ) {
guy_mc.x -= nSpeed;
}
while( bRightPressed ) {
guy_mc.x += nSpeed;
}
}
protected function TouchBeginHandler(event:TouchEvent):void
{
click.txt = "Its clicked.";
switch ( event.target )
{
case left_btn:
left = true;
break;
case right_btn:
right = true;
break;
}
}
protected function TouchEndHandler(event:MouseEvent):void
{
switch ( event.target )
{
case left_btn:
left = false;
break;
case right_btn:
right = false;
break;
}
}
}
答案 0 :(得分:0)
看看Multitouch.inputMode
。这决定了应用程序接受的触摸输入类型。当您需要GESTURE
时,默认为TOUCH_POINT
。
或者,您可以改为使用MouseEvent
等价物。在触摸设备上,MouseEvent
的调度方式与TouchEvent
的调度方式基本相同。除非有特殊原因需要使用它,否则大多数开发人员完全忽略TouchEvent
类。
为了将来参考,您应该在“它不起作用”之外的问题中包含更多详细信息。我们试图在这里盲目地调试问题,以便您可以提供的信息越多越好。幸运的是,这是处理触摸事件时相当常见的问题