1

我想将库中的影片剪辑添加到舞台上的影片剪辑中。

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:类型强制失败

我需要改变什么?

4

3 回答 3

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

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

于 2012-09-04T13:11:19.980 回答
1

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

于 2012-09-04T13:09:41.847 回答
0

右键单击库中的对象并转到“属性”。确保选中标有“Export for ActionScript”的框并为其指定适当的名称。你给符号的类名是你在代码本身中创建该类型对象的名称,例如:

为 ActionScript 导出一个类名为“Player”的元件。

在您的 ActionScript 文件中:

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

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

于 2012-09-04T13:11:52.973 回答