hitTestObject 在 PC 上工作但不在 android 设备上工作
hitTestObject working on PC but not on android device
我正在构建 AIR ActionScript 3.0 应用程序。每当我在电脑上尝试它时,通过执行 Command + Enter 并测试影片,该应用程序将正常运行,并且两个影片剪辑之间的碰撞也正常运行。但是,当我尝试发布它并获取相应的 apk 时,该应用程序将正常 运行,但不会发生碰撞!就好像这两个电影剪辑只是在彼此上方飞过,什么也没有发生!在 PC 上,它运行完美!我是 AS3 的新手,所以任何人都可以指出我哪里出错了?这是我用于碰撞的代码:
function ifHitAct(e:Event):void
{
for each (var obstacle in runNow.manyObs)
{
//trace("the obstacle Index Created is" , parent.getChildIndex(runNow.obstacle));
//parent.setChildIndex(runNow.obstacle ,1)
if (MC1.hitTestObject(obstacle))
{
hit.play(0);
runNow.manyObs.splice(runNow.manyObs.indexOf(obstacle), 1);
//this.removeChild(obstacle);
score++;
scoreField.text = String(score);
obstacle.alpha = 0;
}
}
}
这个问题实际上有点奇怪,但它有效!如果任何未来的用户注意到同样的问题,你应该检查你的音乐!!好吧,我在写“hit.play(0)”时调用了音效。我没有嵌入任何 mp3 文件,所以每当我尝试在真实设备上 运行 我的应用程序时,编译器都会在该行中断,并简单地绕过所有其余代码。所以,当我嵌入 mp3 文件时,一切正常!要嵌入 mp3 文件,只需使用以下结构:
[Embed(source='/hit.mp3')]
private var MySound : Class;
private var sound : Sound;
然后在需要播放音乐时启动您的 var:
function ifHitAct(e:Event):void
{
//
for each (var obstacle in runNow.manyObs)
{
if (MC1.hitTestObject(obstacle))
{
sound = (new MySound()) as Sound;
sound.play(0);
runNow.manyObs.splice(runNow.manyObs.indexOf(obstacle), 1);
score++;
scoreField.text = String(score);
obstacle.alpha = 0;
}
}
}
一切都会完美无缺。
我正在构建 AIR ActionScript 3.0 应用程序。每当我在电脑上尝试它时,通过执行 Command + Enter 并测试影片,该应用程序将正常运行,并且两个影片剪辑之间的碰撞也正常运行。但是,当我尝试发布它并获取相应的 apk 时,该应用程序将正常 运行,但不会发生碰撞!就好像这两个电影剪辑只是在彼此上方飞过,什么也没有发生!在 PC 上,它运行完美!我是 AS3 的新手,所以任何人都可以指出我哪里出错了?这是我用于碰撞的代码:
function ifHitAct(e:Event):void
{
for each (var obstacle in runNow.manyObs)
{
//trace("the obstacle Index Created is" , parent.getChildIndex(runNow.obstacle));
//parent.setChildIndex(runNow.obstacle ,1)
if (MC1.hitTestObject(obstacle))
{
hit.play(0);
runNow.manyObs.splice(runNow.manyObs.indexOf(obstacle), 1);
//this.removeChild(obstacle);
score++;
scoreField.text = String(score);
obstacle.alpha = 0;
}
}
}
这个问题实际上有点奇怪,但它有效!如果任何未来的用户注意到同样的问题,你应该检查你的音乐!!好吧,我在写“hit.play(0)”时调用了音效。我没有嵌入任何 mp3 文件,所以每当我尝试在真实设备上 运行 我的应用程序时,编译器都会在该行中断,并简单地绕过所有其余代码。所以,当我嵌入 mp3 文件时,一切正常!要嵌入 mp3 文件,只需使用以下结构:
[Embed(source='/hit.mp3')]
private var MySound : Class;
private var sound : Sound;
然后在需要播放音乐时启动您的 var:
function ifHitAct(e:Event):void
{
//
for each (var obstacle in runNow.manyObs)
{
if (MC1.hitTestObject(obstacle))
{
sound = (new MySound()) as Sound;
sound.play(0);
runNow.manyObs.splice(runNow.manyObs.indexOf(obstacle), 1);
score++;
scoreField.text = String(score);
obstacle.alpha = 0;
}
}
}
一切都会完美无缺。