Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.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组件中运行时将movieclips与其他资产交换_Flash_Apache Flex_Actionscript 3_Flash Cs5 - Fatal编程技术网

在Flash组件中运行时将movieclips与其他资产交换

在Flash组件中运行时将movieclips与其他资产交换,flash,apache-flex,actionscript-3,flash-cs5,Flash,Apache Flex,Actionscript 3,Flash Cs5,我有一个动画角色swc,它是一个空骨架,基本上有所有的身体部位、动画和函数/变量。我想在运行时给这个角色穿上不同的衣服,这样我的资源中就不必有很多这个角色的副本 例如,我有“骷髅”这个不穿衣服的模特和“鲍勃”、“简”和“玛丽”的角色“骷髅”是动画,完全可以作为导出的swc使用,为了让其他角色穿上衣服/皮肤,我打开Flash CS5,用“衣服”版本的组件替换电影剪辑。为了澄清,“骷髅”的身体部分作为电影剪辑,在时间轴上都有动画,如头部、面部、左臂、右臂等。我打开了“鲍勃”,他与“骷髅”的设计完全相

我有一个动画角色swc,它是一个空骨架,基本上有所有的身体部位、动画和函数/变量。我想在运行时给这个角色穿上不同的衣服,这样我的资源中就不必有很多这个角色的副本

例如,我有“骷髅”这个不穿衣服的模特和“鲍勃”、“简”和“玛丽”的角色“骷髅”是动画,完全可以作为导出的swc使用,为了让其他角色穿上衣服/皮肤,我打开Flash CS5,用“衣服”版本的组件替换电影剪辑。为了澄清,“骷髅”的身体部分作为电影剪辑,在时间轴上都有动画,如头部、面部、左臂、右臂等。我打开了“鲍勃”,他与“骷髅”的设计完全相同,只是“鲍勃”有所有的衣服,比如不同设计的电影剪辑。所有组件的大小、形状、方向和注册点都相同。在我替换了《骷髅》中的所有电影剪辑后,我将其导出为名为“Bob.swc”的swc,并对所有角色执行此操作

我想问的是,我如何做这个过程^,但在运行时,我没有所有这些重复的根SWC“骨架”上有很多帧,所以我可以减少一堆空间?所以我可以这样做:

// bob gets all the actions and animations  of skeleton
var bob:UIMovieClip = new skeleton() 
// replace the body movieclip with a new looking one
bob.body = resources.bodyassets['bob']['body'] 

或者类似的东西?

将皮肤部分添加为骨骼部分的子部分是否有效? 你能在身体的每一部分都放一个“指南”电影剪辑来帮助你制作动画吗 然后另一个空的电影剪辑兄弟的“指南”,在体内,你将添加皮肤? 如果将蒙皮添加到已设置动画的身体部位内,则应复制其变换位置/旋转/缩放。 比如:

    var bob:UIMovieClip = new skeleton() 
    bob.body.skin.addChild(resources.bodyassets['bob']['body']);
    bob.body.guide.visible = false;
如果bob.body包含形状或单个movieclip,您应该能够执行以下操作:

var bob:UIMovieClip = new skeleton();
bob.body.addChild(resources.bodyassets['bob']['body']);//add skin for body
bob.body.graphics.clear();//clear existing template/helper graphics
//or, depdening on the case
bob.body.removeChildAt(0);

这几乎正是我需要的!我试图实现这一点,但我似乎无法从FlashDevelop访问身体。在FlashCS5中,我将body的实例名设置为body,但似乎无法获得它。有没有什么功能我没有?我尝试了skin.getChildByNamebody,但我似乎也无法获取它或骨架的主体。因此我猜FlashDevelop没有自动完成我的实例名称。这完全奏效了。非常感谢我本想编辑我以前的文章,但我早就超过了5分钟的时间