在Flash组件中在运行时与其他资源交换动画片段

时间:2011-09-02 23:08:34

标签: flash flex actionscript-3 flash-cs5

我有一个动画角色swc,它基本上是一个空骨架(包含所有身体部位,动画和函数/变量)。我想在运行时基本上在该角色上添加不同的衣服,所以我不需要在我的资源中有这个角色的许多副本。

例如,我有'骨架'(非穿着的模特)和'Bob','Jane'和'Mary'字符。 'skeleton'是动画的,完全可以作为导出的swc使用,为了让他们的衣服/皮肤中的其他角色,我打开Flash CS5并用“穿着”版本的组件替换影片剪辑。为了澄清,'骨架'有“身体部位”作为在时间轴上都是动画的电影剪辑,例如“头部”,“脸部”,“左臂”,“右臂”等。我打开'Bob' ,与“骨架”具有相同的设计,除了“鲍勃”拥有所有衣服,例如设计不同的电影剪辑。所有组件的大小,形状,方向和注册点都相同。在我替换了'skeleton'中的所有影片剪辑后,我将其导出为名为'Bob.swc'的swc,并为所有角色执行此操作。

我要问的是,我怎么能做这个过程^,但是在运行时,所以我没有所有这些重复的根swcs('骨架'上有很多帧)所以我可以切在一堆空间?所以我可以这样做:

// 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'] 

或类似的东西?

1 个答案:

答案 0 :(得分:0)

添加皮肤部件作为骨架部件的子项是否有效? 你能在每个身体部位内“引导”电影剪辑,这有助于你制作动画 然后另一个空的电影剪辑兄弟到'指南',在你将添加皮肤的身体内? 如果你在动画身体部分内添加皮肤,它应该复制它的变换(位置/旋转/比例)。 类似的东西:

    var bob:UIMovieClip = new skeleton() 
    bob.body.skin.addChild(resources.bodyassets['bob']['body']);
    bob.body.guide.visible = false;

如果bob.body包含形状或单个动画片段,您应该能够:

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

HTH

相关问题