flash组件的使用方法

 我来答
家一样的丶炨枞
2016-06-01 · 超过56用户采纳过TA的回答
知道答主
回答量:168
采纳率:100%
帮助的人:55.6万
展开全部

在Flash MX 2004和 Flash MX Professional 2004自带了一套组件称为Flash V2组件,它是从Flash MX的V1组件升级而来的,V1组件和V2组件尽量不要一起使用以免发生一些错误。V2组件支持实时预览,使开发者在编辑状态下就能看到组件的外观效果。开发者可以自行设置是否需要实时预览和实时预览的模式,以节省计算机资源。在ControlàEnable Live Preview菜单设置是否使用实时预览,在ViewàPriview Mode菜单选择预览模式。组件实质上是一些被编译好的电影剪辑,其格式为SWC。SWC文件类似与Zip文件,可以使用一般的解压缩程序进行解压查看其内容。电影剪辑可以在编辑环境中直接发布为组件,也可以直接编译存储为swc格式的组件文件,便于其他开发者使用。同样,开发者也可以从外部导入组件。
使用组件,必须把组件面板中所需要的组件拖到舞台(Stage),使组件出现在库面板。这样组件就可以象普通的库项目一样被使用。使用脚本可以动态的创建组件实例,运行时创建组件可以有三个方法:createObject()、creatClassObject()和attachMovie()。attachMovie()是MovieClip类的方法,createObject()和creatClassObject()是UIObject类方法,但事实上它们都是对attachMovie()的直接或间接调用。
组件被添加后可以在属性或参数面板中直接设置组件的参数。另外还要为组件定义事件,最简单的方法是使用on(eventName)进行定义。另外还可以使用侦听器和事件处理函数等定义组件事件的处理方法。组件的事件定义比较灵活,使用何种方式定义取决与个人的习惯与偏好。当事件发生时,组件会广播一个Object类型的事件参数,该参数中包括了事件发生对象和事件类型的信息。另外,使用深度管理器(DepthManager)可以对组件进行深度管理。
Flash组件最大的特点是开发者可以自定义组件,尤其是界面元素的自定义,使其更具有吸引力。V2组件有它自己的一套默认界面方案,称为主题(Theme)。主题包括两个方面:样式(Style)和外观(Skin)。UIObject类的setStyle()和getStyle()方法可以获取和设置组件的样式。样式的设置比较简单,主要有以下三种方式:
·直接设置属性:
T.color=0xff5567;
·使用简单的setStyle()名值对方法自定义样式:
instanceName.setStyle(property, value);
·把样式对象与setStyle()方法结合使用来自定义样式:
//创建一个样式对象
var styleObj = new mx.styles.CSSStyleDeclaration;
//刻画样式细节
//……
styleObj.fontSize = 18;
//把样式应用到组件实例
b.setStyle(styleName, styleObj);
样式的级别包括4个层次:全局样式,应用于所有组件;组件类单独的默认样式,应用于某一类的组件;自定义样式;直接设置组件实例的属性。对于不同级别的样式Flash按照一定的顺序分别把这些样式应用到组件。
首先,Flash 查找组件实例上的样式属性,如果实例上没有直接设置样式,Flash 将查看实例的styleName 属性,确定是否向它分配了样式声明。如果 styleName 属性没有被分配样式声明,Flash 将查找默认类样式声明上的属性。如果没有类样式声明,并且属性没有继承它的值,则将检查 _global 样式声明。如果属性未在 _global 样式声明中定义,则该属性为 undefined。
另外,如果没有类样式声明,但属性确实继承了它的值,Flash 将查找该实例父级上的属性。如果属性未在父实例上定义,Flash 将检查父实例的 styleName 属性;如果未定义该属性,Flash将继续查看父实例,直到 _global 级别。如果属性未在 _global 样式声明中定义,则该属性为undefined。
另一方面,为了更好的使用组件,还需要修改或重新定义组件外观。Flash V2的外观定义文件位于FlashInstralDir\en\First Run\ComponentFLA文件夹下。在修改外观时,需要把原始的外观定义文件作为外部库导入(FileàOpen External Library),并把外部库中的外观定义库项目拖到当前文档的库中,外观库项目通常都是电影剪辑(MovieClip)。每一个组件外观定义库项目文件夹中都包含一个States文件夹,其中定义了组件在不同状态下的外观,每一个状态都指定了一个链接名(linkageName)作为脚本引用,如果修改了这个名称,则会使组件在该状态下的外观加载发生错误。在组件的类文件中,每一个状态都使用一个字符串属性指定其外观库项目的链接名,如果要重新定义组件某一状态下的外观,只要在脚本中修改这个字符串属性的值就可以了,当然首先必须存在可链的新的外观库项目。
了解了这样一个组件外观机制以后,组件外观的修改就变的非常简单。其关键就是修改或重新定义一组新的外观库项目并指定其链接名,然后修改组件类文件中指定组件外观的属性。开发者可以在组件实例的初始化事件(initialize)中修改组件实例的外观。修组件所有实例外观的方法比较多,例如_root的第一帧使用ClassName. prototype.stateName=value语句,该语句也可以直接在#initclip和#endinitclip代码块中使用;另外还可以使用类继承的方式,在组件初始化时就为组件外观链接属性指定新的值,这里也需要用到#initclip、#endinitclip代码块。#initclip和#endinitclip是Flash的编译器命令,作为初始化代码块的开始标记和结束标记。只要符号(symbol)被定义,那么初始化代码就被先于第一帧执行,而且紧执行一次。所以在这个代码块中,可以为整个组件类指定不同状态下的外观。

一诺动画
2024-10-27 广告
Flash动画制作在北京一之诺文化传媒有限公司是一项创意与技术并重的服务。我们团队精通于利用Flash或兼容技术,将客户的想象转化为生动、流畅的动画作品。从概念设计到分镜脚本,再到精细的绘制与后期特效处理,每一步都力求完美呈现。无论是广告动... 点击进入详情页
本回答由一诺动画提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式