一般情况下,开发者不需要了解Flax里元件的命名规则,因为有插件帮我们做了所有的事情。但是,对于高级开发者,了解一下命名规则是非常有帮助的。

Flash中任何元件,如果需要被Flax输出,必须要指定类名,方法是:在库中找到这个元件,右键选择属性,点选第一帧输出,类名处填入命名。

命名的格式为:

[superClass].[subClass].assetID

superClass:元件的顶级类,可选。目前只支持anim, mc, font和collider,分别表示逐帧动画,动画容器(骨骼动画),位图字体和物理形状,如果不设定,表示默认的逐帧动画。

subClass:元件的次级类,可选。当你希望将某个元件映射到js的某个自定义显示类时,设定它变可以实现自动映射。Flax已经内置的次级类有 button, progress等。

assetID:素材ID,必须设定。在程序中,用flax.assetsManager.createDisplay来复现动画的ID,同一个flash里,assetID不能重复。

最常见的命名举例

1. anim.someAnim :此元件被认为是一个逐帧动画,每一帧都会被绘制一张子图片。在程序中,先寻找是否有一个flax.Animator的子类someAnim,如果有,flax.assetsManager.createDisplay将用此素材生成someAnim的实例,这是Flax中素材到代码的动态映射,否则生成flax.Animator。

2. anim.Hero.someAnim: 此元件被输出后,在程序中寻找是否有一个flax.Animator的子类Hero,如果有,将素材动态映射到Hero,否则生成flax.Animator。

3. 特殊的,anim.button.someAnim,表示这是一个按钮,具体可以参照按钮制作教程;anim.progress.someAnim表示这是一个进度条,具体可以参照进度条制作教程。

4. mc.someAnim: 此元件被认为是一个动画容器(骨骼动画),它的每个子元素必须被指定类名才可以显示,通常骨骼动画,UI和场景均是mc打头的命名。程序先尝试动态映射到flax.MovieClip的子类someAnim,否则生成flax.MovieClip。

5. mc.Hero.someAnim: 这个元件是一个动画容器(骨骼动画),先尝试动态映射到flax.MovieClip子类Hero,否则生成flax.MovieClip。

6. 特殊的,mc.button.someAnim,表示这是一个容器按钮,用它来制作非常复杂的按钮组件。

7. 特殊的,font.someAnim,表示这是一个位图字体,具体可以参照位图字体教程。

8. 特殊的,collider.Rect表示一个矩形碰撞;collider.Circle表示一个圆形碰撞;collider.Poly表示一个任意形状的碰撞。具体可以参照物理编辑教程。

另外,为了进行多动画合并,还有一种特殊的命名方式。比如美术给某个角色做了几个动画元件,分别是走路,攻击,受伤,程序希望只创建一个实例来完成这几个动画播放,就可以这样命名:[mc.]Hero$walk,[mc.]Hero$attack,[mc.]Hero$hurt。注意[mc.]表示可以是mc动画容器,关键点就在于$符号,Flax通过这个标志来进行多动画合并,让你在程序中只用创建Hero实例,来播放walk,attack和hurt动画。

日期:2014年12月23日 作者:longames