Flash - 剪辑正在重复而不是停止
Flash - Clip is repeating and not stopping
我做了一个记忆游戏。游戏中有一些鱼,随机移动直到停止。玩家必须尝试记住第一个动作。我将鱼对象转换为 button
所以它不是 movieClip
.
鱼看起来很完美,但不会停下来。我在最后一帧中使用 stop();
但它不起作用。我该如何阻止它?
我用这个 鱼 1 的代码
var xsekseni:Number=10;
var ysekseni:Number=14;
var speedy:Number=75;
stage.addEventListener(Event.ENTER_FRAME,bhareket);
function bhareket(oly:Event) {
balik1.x+=xsekseni;
balik1.y+=ysekseni;
if ((balik1.x>=stage.stageWidth-balik1.width/2)|| (balik1.x <= balik1.width/2 )) {
xsekseni*=-1;
}
if ((balik1.y>=stage.stageHeight-balik1.height/2)|| (balik1.y <= balik1.height/2 )) {
ysekseni*=-1;
}
}
var MovieArray:Array = [balik1];
for (var j:uint = 0; j < MovieArray.length; j++) {
MovieArray[j].x = Math.floor( Math.random()*(stage.stageWidth - MovieArray[j].width) );
MovieArray[j].y = Math.floor( Math.random()*(stage.stageHeight - MovieArray[j].height) );
}
function MovieRandomPositon():void {
MovieRandomPositon();
}
鱼 2 的代码
var mvkk:Array = [balik2];
for (var i:uint = 0; i < mvkk.length; i++) {
mvkk[i].x = Math.floor( Math.random()*(stage.stageWidth - mvkk[i].width) );
mvkk[i].y = Math.floor( Math.random()*(stage.stageHeight - mvkk[i].height) );
}
function MovieR():void {
MovieR();
}
var xekseni:Number=10;
var yekseni:Number=7;
var speed:Number=75;
stage.addEventListener(Event.ENTER_FRAME,hareket);
function hareket(oly:Event) {
balik2.x+=xekseni;
balik2.y+=yekseni;
if ((balik2.x>=stage.stageWidth-balik2.width/2)|| (balik2.x <= balik2.width/2 )) {
xekseni*=-1;
}
if ((balik2.y>=stage.stageHeight-balik2.height/2)|| (balik2.y <= balik2.height/2 )) {
yekseni*=-1;
}
}
您是否仅通过代码移动两条 Fish?这两行可能会导致您想要停止的相同运动...
stage.addEventListener(Event.ENTER_FRAME, bhareket);
和
stage.addEventListener(Event.ENTER_FRAME, hareket);
我已经很多年没有将代码放在不同的框架中了,所以我不确定下面的代码是否有效。实际上,如果您的代码都在一个地方,那将是正确的,但如果幸运的话,它可能适用于您的设置...
尝试在最后一帧使用下面的代码。
stop();
stage.removeEventListener(Event.ENTER_FRAME, hareket);
stage.removeEventListener(Event.ENTER_FRAME, bhareket);
我做了一个记忆游戏。游戏中有一些鱼,随机移动直到停止。玩家必须尝试记住第一个动作。我将鱼对象转换为 button
所以它不是 movieClip
.
鱼看起来很完美,但不会停下来。我在最后一帧中使用 stop();
但它不起作用。我该如何阻止它?
我用这个 鱼 1 的代码
var xsekseni:Number=10;
var ysekseni:Number=14;
var speedy:Number=75;
stage.addEventListener(Event.ENTER_FRAME,bhareket);
function bhareket(oly:Event) {
balik1.x+=xsekseni;
balik1.y+=ysekseni;
if ((balik1.x>=stage.stageWidth-balik1.width/2)|| (balik1.x <= balik1.width/2 )) {
xsekseni*=-1;
}
if ((balik1.y>=stage.stageHeight-balik1.height/2)|| (balik1.y <= balik1.height/2 )) {
ysekseni*=-1;
}
}
var MovieArray:Array = [balik1];
for (var j:uint = 0; j < MovieArray.length; j++) {
MovieArray[j].x = Math.floor( Math.random()*(stage.stageWidth - MovieArray[j].width) );
MovieArray[j].y = Math.floor( Math.random()*(stage.stageHeight - MovieArray[j].height) );
}
function MovieRandomPositon():void {
MovieRandomPositon();
}
鱼 2 的代码
var mvkk:Array = [balik2];
for (var i:uint = 0; i < mvkk.length; i++) {
mvkk[i].x = Math.floor( Math.random()*(stage.stageWidth - mvkk[i].width) );
mvkk[i].y = Math.floor( Math.random()*(stage.stageHeight - mvkk[i].height) );
}
function MovieR():void {
MovieR();
}
var xekseni:Number=10;
var yekseni:Number=7;
var speed:Number=75;
stage.addEventListener(Event.ENTER_FRAME,hareket);
function hareket(oly:Event) {
balik2.x+=xekseni;
balik2.y+=yekseni;
if ((balik2.x>=stage.stageWidth-balik2.width/2)|| (balik2.x <= balik2.width/2 )) {
xekseni*=-1;
}
if ((balik2.y>=stage.stageHeight-balik2.height/2)|| (balik2.y <= balik2.height/2 )) {
yekseni*=-1;
}
}
您是否仅通过代码移动两条 Fish?这两行可能会导致您想要停止的相同运动...
stage.addEventListener(Event.ENTER_FRAME, bhareket);
和
stage.addEventListener(Event.ENTER_FRAME, hareket);
我已经很多年没有将代码放在不同的框架中了,所以我不确定下面的代码是否有效。实际上,如果您的代码都在一个地方,那将是正确的,但如果幸运的话,它可能适用于您的设置...
尝试在最后一帧使用下面的代码。
stop();
stage.removeEventListener(Event.ENTER_FRAME, hareket);
stage.removeEventListener(Event.ENTER_FRAME, bhareket);