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;
}
}
}
定義Multitouch.inputMode時沒什麼不同。在沒有使用觸摸設備的情況下,有沒有在計算機上調試觸摸事件的方法? – eldamar 2011-05-10 07:49:06
請參考示例。嘗試使用示例行來查看它是否有效,然後找出代碼中缺少的內容。 – 2011-05-10 13:13:45