我正在尝试通过单击我要删除的同一剪辑内的按钮来删除一个movieclip(具有与另一个类的AS链接)。我向很多人询问了这个问题,他们似乎对如何做到这一点没有任何线索。 AS3不完全是我的一杯茶,所以我找不到自己的方式。
以下是我的(坏)代码现在的样子:
public class PageWestmount extends MovieClip{
// PROPRIÉTÉS
// -----------------------------------------------------
private var _XMLURLLoader:URLLoader = new URLLoader(); // object pour charger cibler l'emplacement du XML à charger
private var _requete:URLRequest; // init le chemin d'accès vers l'emplacement du XML
private var _source:String; // init source du XML à charger
private var _alimentation:Boolean;
private var _hebergement:Boolean;
private var _vestimentaire:Boolean;
private var _video:Boolean;
private var _photos:Boolean;
private var _aide:Boolean;
private var listePoints:Array;
private var _XMLData:XML;
var aide:pageAide= new pageAide();
var video:Videos= new Videos();
var photos:SrcPhotos= new SrcPhotos();
// CONSTRUCTOR
// -----------------------------------------------------
public function PageWestmount(){
addEventListener(Event.ADDED_TO_STAGE, init);
pageAide_mc.fermerAide_mc.addEventListener(MouseEvent.CLICK, removeAide);
myVideoPlayer.fermerVideo_mc.addEventListener(MouseEvent.CLICK, removeVideo);
compPhotos_mc.fermerPhotos_mc.addEventListener(MouseEvent.CLICK, removePhotos);
}// end constructor
以下是从舞台上删除剪辑的功能:
private function removeAide(e:MouseEvent):void {
removeChild(aide);
}
private function removeVideo(e:MouseEvent):void {
removeChild(video);
}
private function removePhotos(e:MouseEvent):void {
removeChild(photos);
}
答案 0 :(得分:1)
除非' removeChild'陈述是在父母的课堂上,你真的想要删除ITS孩子。否则,你必须将你想要删除的对象的正确谱系放入()中。因此,如果'助手'是一个fermerAide_mc'如果removeChild语句也在' fermerAide_mc'然后你可以说removeChild(aide)
。但是如果removeChild语句在' pageAide_mc'上,那就是' fermerAide_mc'的父。你不得不说removeChild(aide)
。如果removeChild语句位于' pageAide_mc'的父级,则说出removeChild(fermerAide_mc.aide)
这不太难理解,是吗?
如果' removeChild'代码在你要删除的对象(助手)上?然后你说removeChild(pageAide_mc.fermerAide_mc.aide)
或MovieClip(parent).removeChild(aide)
。当然,请记住,我们并不是在谈论将代码直接放在时间轴中的对象上。您始终将Actionscript 3.0代码放在控制这些对象的类中。