0

我的应用程序使用 AIR for Android。我创建了一个轮盘,球在其上滚动。需要检测球与轮盘赌扇区的碰撞。同时,轮子绕其轴旋转。一切正常。我结合了 Flex 组件和 AS3 组件。要注册联系人,我使用 hitTest。

如果我通过模拟器在桌面上调试,那么一切都很好。但是当我在我的移动设备上测试我的应用程序时,hitTest 仅在特定时间发生。我看到轮盘旋转正常,球与扇区接触,但没有发生 hitTest。真正的轮子旋转着我观察到的其他规律。这只是在真实设备上。

告诉我,我该如何解决?

这是我的球:

<s:BitmapImage id="pend"  smooth="true" source="@Embed('images/pend.png')"/>

这是放置扇区的轮容器,这些扇区被创建为 AS3 组件:

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);
    }
}
4

0 回答 0