AS3 - 来自库的Addchild

时间:2012-09-04 13:04:36

标签: actionscript-3

我想将库中的movieclip添加到舞台上的movieclip。

function setMc(con:Sprite,mc:Sprite):void
{
    con.addChild(mc)
    mc.x=mc.width/2
    mc.y=mc.height/2
}        

setMc(myholder,mylibrarymc)

我收到此错误:

  

TypeError:错误#1034:类型强制失败

我需要改变什么?

3 个答案:

答案 0 :(得分:3)

库只包含原型,而不包含实际对象。我假设“mylibrarymc”是库中MC类型的名称。在这种情况下,“mylibrarymc”是类型Class,使用方式不同。

function setMc(con:Sprite,mc:Class):void
{
    var newMC:DisplayObject=new mc() as DisplayObject;
    // Here you actually make an object out of a class
    con.addChild(newMC);
    newMC.x=newMC.width/2;
    newMC.y=newMC.height/2;
}        

setMc(myholder,mylibrarymc);

希望这会有所帮助。我已经有一段时间涉足图书馆了。

答案 1 :(得分:1)

你的函数需要一个Sprite,你可能正在传递一个MovieClip。看一下右键单击库中的mc时的“export for actionscript”选项

答案 2 :(得分:0)

右键单击库中的对象,然后转到“属性”。确保勾选标记为“为ActionScript导出”的框并为其指定适当的名称。您为该符号提供的类名称将用于在代码本身中创建该类型的对象,例如:

使用类名“播放器”导出ActionScript的符号。

在您的ActionScript文件中:

var player = new Player();
addChild(player);

您可以使用任何MovieClip成员函数(位置,alpha)操作对象,并指定事件侦听器以使其具有交互性。