#apache-flex #ios #flex4 #touch #flash-builder
#apache-flex #iOS #flex4 #коснитесь #flash-builder
Вопрос:
Я успешно создал свое первое приложение и импортировал его на свой iPhone, но, похоже, я не могу заставить 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;
}
}
}
Ответ №1:
Я бы порекомендовал вам взглянуть на API и примеры. В этом случае, похоже, вам не хватает Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;
объявления.
Комментарии:
1. При определении Multitouch.inputMode ничего не происходит по-другому. есть ли способ отладки событий касания на компьютере без использования сенсорного устройства?
2. Пожалуйста, обратитесь к примеру. Попробуйте использовать пример строка за строкой, чтобы увидеть, работает ли это, затем выясните, чего не хватает в вашем коде.