闪光 - 剪辑重复,而不是停止 [英] Flash - Clip is repeating and not stopping

查看:177
本文介绍了闪光 - 剪辑重复,而不是停止的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我做了一个记忆游戏。游戏中有一些鱼,随机移动直到停止。玩家必须尝试记住第一个动作。我把鱼对象转换为按钮,所以它不是 movieClip



鱼看起来很完美,但不会停下来。我在最后一帧中使用了 stop(); ,但它不起作用。我可以阻止它吗?

我使用这个代码为鱼1

  var xsekseni:Number = 10; 

var ysekseni:Number = 14;

var speedy:Number = 75;

stage.addEventListener(Event.ENTER_FRAME,bhareket);

函数bhareket(oly:Event){

balik1.x + = xsekseni;

balik1.y + = ysekseni; ((balik1.x> = stage.stageWidth-balik1.width / 2)||(balik1.x< = balik1.width / 2)){
$ b $(

) b xsekseni * = - 1; ((balik1.y> = stage.stageHeight-balik1.height / 2)||(balik1.y< = balik1.height / 2)(



if ){

ysekseni * = - 1;

}

}



var MovieArray:Array = [balik1]; (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));


$ b MovieRandomPositon():void {

MovieRandomPositon();

$ b $ / code $ / pre

代码为Fish 2

  var mvkk:Array = [balik2]; (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));


$ b函数MovieR():void {

MovieR();

}



var xekseni:Number = 10;

var yekseni:Number = 7;

var speed:Number = 75;

stage.addEventListener(Event.ENTER_FRAME,hareket);

函数hareket(oly:Event){

balik2.x + = xekseni;

balik2.y + = yekseni; ((balik2.x> = stage.stageWidth-balik2.width / 2)||(balik2.x< = balik2.width / 2)){
$ b $(

) b xekseni * = - 1; (balik2.y> = stage.stageHeight-balik2.height / 2)||(balik2.y< = balik2.height / 2)(



if ){

yekseni * = - 1;




$ b

解决方案

您是否仅通过代码移动Fish?这两行可能会导致你想停止相同的移动...

$ p $ 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);


I made a memory game. There is some fish in a game, moving randomly until a stop. Player has to try remembering first one's movements. I converted a fish object to button so it's not a movieClip.

The fish appear perfectly but won't stop. I use stop(); within the last frame but it's not working. How I can stop this?

I use this code for Fish 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();

}

code for Fish 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;

    }

}

解决方案

Are you moving both Fish by code only? These two lines might be causing the same movement you want to stop...

stage.addEventListener(Event.ENTER_FRAME, bhareket);

and

stage.addEventListener(Event.ENTER_FRAME, hareket);

I haven't put code in different frames for many years so I can't be sure if the below code will work. Actually it would be correct if your code was all in one place but if lucky, it might work on your setup...

Try using code below on last frame.

stop();
stage.removeEventListener(Event.ENTER_FRAME, hareket);
stage.removeEventListener(Event.ENTER_FRAME, bhareket);

这篇关于闪光 - 剪辑重复,而不是停止的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆