私のアプリは AIR for Android を使用しています。ボールが転がるルーレット盤を作成します。ルーレットのセクターとのボールの衝突を検出するために必要です。同時に、ホイールはその軸を中心に回転します。すべて正常に動作します。Flex コンポーネントと AS3 コンポーネントを組み合わせます。連絡先を登録するには、hitTest を使用します。
エミュレーターでデスクトップ上でデバッグすると、すべて問題ありません。しかし、モバイル デバイスでアプリをテストすると、hitTest は特定の時間にのみ発生します。ルーレット ホイールが正常に回転し、ボールがセクターに接触していることがわかりますが、hitTest は発生しません。実際の車輪は、私が見ている他の法則を回転させます。そして、それは実際のデバイス上だけです。
教えてください、どうすれば修正できますか?
ここに私のボールがあります:
<s:BitmapImage id="pend" smooth="true" source="@Embed('images/pend.png')"/>
以下は、AS3 コンポーネントとして作成されたセクターが配置された wheel コンテナーです。
stageW = stage.stageWidth;
stageH = stage.stageHeight;
<mx:UIComponent id="con" mouseChildren="false" width="{stageW}" height="{stageW}" x="{stageW*0.5}" y="{stageH*0.5}"/>
ここでセクターを発行するように依頼しました-半径に沿った円の中心の周りのテキスト
回転のアニメーション。
con.rotation = rot;
if (FlexGlobals.topLevelApplication.clockwise){
rot++;
} else {
rot--;
}
衝突検出:
for (var i:uint = 0; i <objArray.length; i++){
var sector:Sector = objArray[i] as Sector;
if (sector.hitTestPoint(pend.x + pend.width*0.5, pend.y + pend.height*0.5, true)){
var obj:Object = new Object();
obj.value = sector.value;
tempArray.push(obj);
trace (sector.value);
}
}