English 中文(简体)
使用removeChild删除动态添加的MovieClip(未定义的属性错误)
原标题:Remove dynamically added MovieClip using removeChild (undefined property error)

我正在尝试删除我动态创建的电影剪辑,导出时出现错误

1120:访问未定义的属性player_mc

function addplayer(id:String):MovieClip {
    var mcObj:Object=null;
    mcObj=getDefinitionByName(id.toString());
    return (new mcObj()) as MovieClip;
}
// this creates the mc
function startplayer():void {
    var player_mc:MovieClip = addplayer("s"+station.value);
    addChild(player_mc)
}
// this is supposed to remove it
function stopplayer():void {
    //the following line causes the error
    removeChild(player_mc);
}

正如你所看到的,我在我的库中使用addChild作为电影剪辑,这可以是类名为s1、s2、s3的库项。。。

我尝试使用removechild(getchildbyname(???));但没有成功。如何简单地删除导出时不存在的电影剪辑?

最佳回答

如果不想将player_mc声明为全局变量,并且总是添加的最后一个子项,则可以使用removeChildAt(numChildren-1)

问题回答

尝试在代码顶部而不是函数startplayer()内部将player_mc声明为“全局变量”。它应该可以在stoporch()内部访问

var player_mc:MovieClip;

function addplayer(id:String):MovieClip {
    var mcObj:Object=null;
    mcObj=getDefinitionByName(id.toString());
    return (new mcObj()) as MovieClip;
}
//this creates the mc
function startplayer():void {
    player_mc = addplayer("s"+station.value);
    addChild(player_mc)
}
//this is supposed to remove it
function stoporch():void {
    //the following line causes the error
    removeChild(player_mc);
}

您的stoporch函数引用的变量player_mc不在作用域中。它在startplayer中被定义为本地。

您需要将引用保存在stoporch可以看到的地方,或者在添加时设置name属性,然后在删除时使用getChildByName

player_mc变量是在本地定义的,这意味着当函数startplayer()完成时,它将消失。

您可以在函数之外创建类变量:

private var _player_mc : MovieClip;

并在您的函数中创建如下:

_player_mc = addplayer("s"+station.value);

要删除它,只需使用:

removeChild(_player_mc);

存在一些选择。正如其他人所说,在类级别创建变量是可行的。另一种方法是在制作剪辑后为其指定一个名称。

function startplayer():void {
    player_mc = addplayer("s"+station.value);
    player_mc.name = "playerMC";
    addChild(player_mc)
    removeChild(this.getChildByName("playerMC"));
}




相关问题
Disable button tooltip in AS3

I want to disable the tooltip on certain buttons. The tooltip manager seems to be an all or nothing solution. Is it possible to disable the tooltip for just one or two buttons?

Sorting twodimensional Array in AS3

So, i have a two-dimensional Array of ID s and vote count - voteArray[i][0] = ID, voteArray[i][1] = vote count I want the top 3 voted items to be displayed in different colors, so i have a 2nd Array -...

Virtual Tour using sketch up, ajax, flash technologies

I want to know if there are existing technology that make your 3d models in sketch into virtual tours, using either Ajax or Flash for web presentation. If there s none, which will be a good approach ...

AS3 try/catch out of memory

I m loading a few huge images on my flex/as3 app, but I can t manage to catch the error when the flash player runs out of memory. Here is the what I was thinking might work (I use ???? because i dont ...

Red5 Security Tutorial

I am looking for a step by step tutorial on securing Red5 from intrusion. This seems to be a question that comes up alot in a google search, but is never really answered in a way that makes sense to ...

Clipboard access using Javascript - sans Flash?

Is there a reliable way to access the client machine s clipboard using Javascript? I continue to run into permissions issues when attempting to do this. How does Google Docs do this? Do they use ...

visible property of DisplayObject

For example I have a hierarchy of movie clips. mc1 is a child of mc, and mc2 is a child of mc1. Turns out that when I set mc1.visible = false; mc2.visible stays true. Is that supposed to happen?...

热门标签