私は AS3/Flash と stackoverflow を初めて使用し、この問題について別のスレッドをブラウズしようとしました。
私の問題は、ボタンの 1 つでロールオーバーが速すぎると、ボタンが「クリック」状態にロールオーバーすることです。「ヒット!」という行をデバッグするテスターがあり、その不具合が発生するたびに、テスターは「ヒット」という行を表示しないため、実際にはユーザー入力のクリックを登録していないことがわかります。
興味深いことに、ボタンの下または上から反対側に垂直に移動したときにのみ問題が発生します。より速い FPS は効果を最小限に抑えるように見えますが、それでも効果はあります。ヒットエリアレイヤーを取り除こうとしましたが、それが問題の原因であると考えていましたが、それでも何もしませんでした.
誰かがこれを理解できる場合に備えて、.fla を投稿します。
https://dl.dropboxusercontent.com/u/18672917/Main_Btn_7halp6.fla
可能性のあるコーディング エラーだけから判断したい場合に備えて、私が使用したコードを次に示します。(また、better_mc.Hit._visible = false; 動作しないようです)
import flash.events.MouseEvent;
stop();
better_mc.addEventListener(MouseEvent.ROLL_OVER, betterOver);
better_mc.addEventListener(MouseEvent.ROLL_OUT, betterOut);
better_mc.addEventListener(MouseEvent.CLICK, betterClick);
function betterOver(evt:MouseEvent):void{
better_mc.gotoAndPlay("Over");
}
function betterOut(evt:MouseEvent):void{
better_mc.gotoAndPlay(27- (better_mc.currentFrame-10));
}
function betterClick(event:MouseEvent):void {
better_mc.gotoAndPlay("Click");
}
better_mc.hitArea = better_mc.Hit;
better_mc.addEventListener(MouseEvent.MOUSE_DOWN, Hitbox);
function Hitbox (event:MouseEvent){
trace("hit! "+this.name);
better_mc.Hit._visible = false;
};