Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash 电影剪辑一直在后面出现_Flash_Actionscript 3 - Fatal编程技术网

Flash 电影剪辑一直在后面出现

Flash 电影剪辑一直在后面出现,flash,actionscript-3,Flash,Actionscript 3,我有两个电影剪辑,分别叫英格兰和苏格兰,它们在不同的层次上,但放在舞台上的位置相同 当我单击其中一个剪辑上的“关闭”按钮时,我不知道我正在单击哪个“关闭”按钮 如果我将两个电影剪辑移动到舞台的不同部分,下面的代码将正常工作 我可能错过了一些简单的东西,但我看不到什么 任何帮助都会很好 更新: 由于关闭按钮处于相同的位置导致了问题 我决定将每个电影剪辑的位置设置为舞台上和舞台下 除了在重新定位电影剪辑之前未完成的FinishTween之外,此操作也有效 有没有一种方法可以在吐温结束后设置位置 im

我有两个电影剪辑,分别叫英格兰和苏格兰,它们在不同的层次上,但放在舞台上的位置相同

当我单击其中一个剪辑上的“关闭”按钮时,我不知道我正在单击哪个“关闭”按钮

如果我将两个电影剪辑移动到舞台的不同部分,下面的代码将正常工作

我可能错过了一些简单的东西,但我看不到什么

任何帮助都会很好

更新:

由于关闭按钮处于相同的位置导致了问题

我决定将每个电影剪辑的位置设置为舞台上和舞台下

除了在重新定位电影剪辑之前未完成的FinishTween之外,此操作也有效

有没有一种方法可以在吐温结束后设置位置

import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;
import flash.display.MovieClip;

//Buttons Open
btn_England_Open.addEventListener(MouseEvent.CLICK, England_Open);
btn_Scotland_Open.addEventListener(MouseEvent.CLICK, Scotland_Open);


//Button Close
mc_England.btn_England_Close.addEventListener(MouseEvent.CLICK, England_Close);
mc_Scotland.btn_Scotland_Close.addEventListener(MouseEvent.CLICK, Scotland_Close);


//Open Functions
function England_Open(e:MouseEvent){
    StartTween(mc_England);
}
function Scotland_Open(e:MouseEvent){
    StartTween(mc_Scotland);
}

//Close Function
function England_Close(e:MouseEvent){
    FinishTween(mc_England);
}
function Scotland_Close(e:MouseEvent){
    FinishTween(mc_Scotland);
}


//Tween Function
useSeconds);
function StartTween(target:MovieClip){
    target.x = 386.90;
    target.y = 195.00;
    var myTween:Tween = new Tween(target, "alpha", Strong.easeIn, 0, 1, 0.5, true);
    //myTween.start();
}

//Tween Function
function FinishTween(target:MovieClip){
    var myTween:Tween = new Tween(target, "alpha", Strong.easeOut, 1, 0, 0.5, true);
    //myTween.start();
    target.x = -100;
    target.y = -100;
}

你所说的FinishTween函数的具体含义是什么


关闭按钮是否也位于同一位置?我会看一看,以确认您希望发送MouseEvent的对象确实是执行此操作的对象。即使“关闭”按钮变为0 alpha,如果单击其所在区域,它仍在侦听鼠标事件。

如果问题是当您单击一个剪辑的“关闭”按钮时,两个“结束”按钮都已启动,则在阅读问题后,我能想象到的唯一一个:


或者我需要更多的细节

我不认为两个按钮都会出现点击事件的问题,因为它们中的一个总是在另一个之前。代码中没有任何内容表明一个movieclip是另一个的父对象,因此停止传播可能无助于解释movieclip的结构,以便我们更好地了解情况?在我的每个电影剪辑mc_England和mc_Scotland中都有一个关闭按钮btn_England_close和btn_Scotland_close。我认为问题在于关闭按钮在舞台上的位置相同。由于alpha设置为0,我实际上没有单击我看到的关闭按钮。您的右侧我没有单击我在屏幕上看到的关闭按钮,因为alpha在开始时设置为0。当特定的电影剪辑打开时,是否可以禁用所有其他按钮和电影剪辑?实现这一点的一个选项是://open Functions function England\u Opene:MouseEvent{btn_England_Open.RemoveEventListenerMouseeEvent.CLICK,England_Open;mc_England.btn_England_Close.AddEventListenerMouseeEvent.CLICK,England_Close;StartWeenMC_England;这样,直到正确的时间,您才开始收听事件。
function England_Close(e:MouseEvent){
    e.stopPropagation();
    FinishTween(mc_England);
}
function Scotland_Close(e:MouseEvent){
    e.stopPropagation();
    FinishTween(mc_Scotland);
}