- 浏览: 108494 次
- 性别:
- 来自: 广州
文章分类
最新评论
由于工作需要,最近开始学习FLASH自定义组件的开发。在开发过程中遇了了很多问题,通过搜索发现相关的资料并不多,苦苦摸索了一段时间后终于有了一些眉目。由于本人水平有限,不当之处还请大虾门指正。学习过程中参考了一些国外的资料,非常感谢这些国外的老师,另外我的英文水平确实需要恶补了,呵呵。
参考网站地址:
http://hi.baidu.com/design9/blog/item/8948948f3ff8c4e0f11f3635.html
http://f9foractions.tumblr.com/post/903211215/inspectable-parameters-not-showing-up-on-custom
参数的定义:
使用 [Inspectable] 元数据标签定义参数
[Inspectable (name = "color", variable = "color", type = "Color", defaultValue = "FF0000")] public function get color():int { return _color; } public function set color(value:int):void { _color = value; draw(); } [Inspectable (name = "radius", variable = "radius", type = "Number", defaultValue = "10")] public function get radius():Number { return _radius; } public function set radius(value:Number):void { _radius = value; draw(); }
需要注意的地方:
1:每个参数的name和variable必须相同。
2:参数必须是按字母顺序排列。
3:参数必须设置设置默认值。
4:为参数设置getter和setter方法。
5:颜色默认值是一个十六进制字符串表示,没有“#”或“0X”。
6:CS5特别需要注意一个地方, [Inspectable] 和对应参数的set/get必须放在一起,否则组件使用时无法设置组件参数。
也许这些并不全是一定需要遵守的规则,不过注意这几点有利于自定义用户界面组件检查和实时预览组件。
setSize()方法:
用于设置组件的尺寸大小,FLASH会自动调用些方法实现实时预览,所以它必须是public的。draw用于重绘及调整组件的大小。参数的set方法执行draw(),方便预览。
public function setSize(w:Number, h:Number):void { _width = w; _height = h; draw(); }
private function draw():void { _background.graphics.clear(); _background.graphics.beginFill(_color, 1); _background.graphics.drawRoundRect(0, 0, _width, _height, _radius, _radius); _background.graphics.endFill(); _tf.text = Math.floor(_width) + " x " + Math.floor(_height); _tf.x = (_width - _tf.width) * 0.5; _tf.y = (_height - _tf.height) * 0.5 + 2; }
重写width和height的set/get方法:
override public function get width():Number { return _width; } override public function set width(value:Number):void { _width = value; draw(); } override public function get height():Number { return _height; } override public function set height(value:Number):void { _height = value; draw(); }
必须重写width和height的set/get方法,否则当FLASH调用set/get改变组件尺寸只会拉伸或者压扁,而不是重绘组件。
编译和测试:
1:在库中右键点击需要编译为组件的元件,选择“属性”并绑定类文件。
2:在库中右键点击需要编译为组件的元件,选择“组件定义”并勾选“参数被锁定在实例中”和“显示在组件面板中”两个选项。
3:在库中右键点击需要编译为组件的元件,选择“导出SWC文件”并保存。
4:可能需要在“发布设置”中设置SWC文件的库路径,如果你保存的不是标准组件的路径。
5:打开组件面板并点击右上角“重新加载组件”。
这时候应该可以看见你新编译的组件了。把新的组件拖进舞台,并设置组件的参数,即可使用。
补充:
1:组件中包含的元件需要重新定义,即使该元件已经包含在组件中并命名。如:组件中包含名为:avatar的TextField。在类代码中仍然需要声明:public var avatar:TextField;
2:代码的执行顺序:构造函数-组件参数set(以参数字母排序)。如果在构造函数使用组件参数,则会提示错误。
- make_a_component.zip (416.2 KB)
- 下载次数: 25
发表评论
-
AS3动态获得类名及类的方法
2012-10-26 17:53 18031.获得某个实例对象的类名:getQualifiedClass ... -
Vector初始化的各种写法
2012-10-16 14:56 4849var i:int = 0; var j:int = ... -
as3中数组array与vector的区别
2012-10-15 14:47 1498ActionScript 3.0 中可用的另一种索引数组 ... -
关于ADDED_TO_STAGE事件
2012-08-13 16:37 815在将显示对象直接添加到舞台显示列表或将包含显示对象的子树 ... -
关于读取舞台大小各浏览器之间的差异
2012-08-13 16:38 795因为在做项目的时候遇到的怪异问题 ie下的player会sta ... -
Flash-如何改变动态文本透明度
2012-08-13 16:39 1717因为Flash的系统字体不直接支持透明,所以我们得通过嵌 ... -
教你如何修改FLASH右键菜单
2012-08-14 15:36 2263有些东西只有用到了才会去看,才会去寻找答案。这真的挺有道 ... -
as跨域问题解决总结
2012-08-14 15:36 1621总结一下在工作中遇 ... -
AS3参数的传址与传值
2012-08-14 15:37 1188//as3里面规定,属于基元数据类型(包括 Boolea ... -
AS3 数组深度复制
2012-08-15 09:55 833//简单复制后,修改副本会修改原对象,深度复制后,修改副 ... -
自定义异常类
2012-08-10 15:19 889package { import flash.err ... -
hasEventListener()与willTrigger()区别
2012-08-10 15:17 1294hasEventListener()方法: 检查 Ev ... -
写AS3需要养成好的编码习惯
2012-08-10 15:14 869因为AS3的垃圾回收是自动的,如果你某个对象存在被引用, ... -
as3 代码优化
2012-08-10 14:41 1486var obj:Object = {}; 比 var obj: ... -
as3对象池应用
2012-08-10 12:06 1231为什么使用对象池? 我们先来看一个例子:假 ... -
AS3 复制可视对象
2012-08-09 16:44 1246复制舞台上的影片剪 反射方法: 需要复制的舞台对象 ... -
AS3动态获得类名及类的方法
2012-08-09 16:21 8141.获得某个实例对象的类名:getQualifiedClass ... -
Flash流式视频提示点及回调函数
2012-08-09 16:21 1488流式传输视频文件 若要流式传输 Flash Media Se ... -
深度探索as3的事件机制
2012-08-08 11:57 1860as3的事件机制很好用 ... -
AS3数组转换XML
2012-08-08 11:08 930package { import flash.displa ...
相关推荐
标题"flex/flash自定义组件(搜索栏)"暗示我们将学习如何利用Adobe Flex或Flash Professional来设计和构建一个定制的搜索输入框组件。Flex是一种基于MXML和ActionScript的框架,用于构建富互联网应用程序,而Flash...
在本教程中,我们将详细讲解如何在VSCode环境中配置ESP-IDF插件,以便为ESP32S2开发项目,并添加自定义组件。 首先,确保你已经安装了VSCode和ESP-IDF开发环境。你可以从官方网站下载最新版本的VSCode,并通过...
在Flash AS3编程环境中,自定义组件是提升应用界面独特性和功能扩展性的关键技术。AS3(ActionScript 3)是Adobe Flash平台的核心脚本语言,用于创建交互式内容、动画以及富互联网应用程序(RIA)。自定义组件允许...
在本实例中,我们将深入探讨如何在ActionScript中实现自定义组件和自定义事件,这对于创建复杂的Flash应用程序至关重要。 首先,让我们了解自定义组件。在ActionScript中,自定义组件是通过继承已有的UIComponent...
在Flex中,自定义组件是开发者根据项目需求创建的特殊UI元素,可以扩展和定制标准的MX或Spark组件。本示例着重于一个名为“ImageViewer”的自定义组件,这通常是一个用于展示图像并可能包含缩放、平移等交互功能的...
Delphi7中文帮助之创建自定义组件部分(SWF格式) 已经完成了两个章节的翻译,现发布Flash版本,供大家先睹为快,可以在这里查看和下载(需要Flash插件),请其他章节的翻译者抓进时间,切勿延期交付。 想...
2. **自定义组件**:除了内置组件外,开发者还可以创建自己的组件。这涉及到ActionScript编程,通过编写代码实现特定功能,并将其封装为可重复使用的组件。 3. **ActionScript**:Flash组件的核心是ActionScript,...
再者,教程还将涵盖自定义组件的知识。当你需要满足特定项目需求时,可以基于现有组件进行修改或创建全新的组件。这一部分将教你如何导出组件、编辑XML配置文件以及创建自定义外观和行为。 此外,教程还会涉及与...
在Flex4中,自定义组件皮肤是提升应用视觉效果和用户体验的重要手段。下面将详细介绍如何在Flex4中自定义组件皮肤。 1. **组件皮肤的基本概念** - 组件皮肤是Flex中改变组件外观的一种方式,通过定义不同的皮肤,...
在本文中,我们将深入探讨如何在IT行业中学习和创建自定义组件,以`CustomButton`为例。自定义组件是UI设计中的一个重要概念,它允许开发者根据项目需求定制控件,提供独特的外观和交互效果,从而提升用户体验。我们...
- **依赖管理**:如果自定义组件依赖于其他组件或库,需要在`CMakeLists.txt`中明确指定,确保在构建时正确链接。 - **版本控制**:为了保持代码整洁,推荐将组件的版本信息(如版本号、作者等)放入`version.cmake`...
在IT行业中,自定义组件是开发人员为了满足特定需求或优化界面交互而创建的独特UI元素。本主题聚焦于如何通过自定义组件实现一个可以被拖动改变位置和大小的Label,这在各种桌面和Web应用中都有广泛的应用,特别是在...
在Flex4中,自定义组件皮肤是提升应用界面美观度和用户体验的重要手段。Flex4引入了全新的皮肤架构,使得开发者可以更加灵活地控制组件的外观和交互效果。本篇文章将围绕Flex4自定义组件皮肤进行深入讲解,并结合...
总结来说,"flasg自定义UI组件"是一套以Flex组件为蓝本的开源UI组件库,适用于Flash开发者。它提供了丰富的自定义可能性,有助于创建独特的用户界面,并且已经在GitHub和Google Code上开放源代码,方便开发者下载、...
AS3 Datagrid Flash 自定义检索程序是一个用于展示和搜索数据的高级组件,广泛应用于Flash和Flex应用程序中。本文将深入探讨这个程序的核心知识点,包括AS3编程基础、XML数据源的处理、正则表达式应用、自定义...
例如,一个网页上的音乐播放器可以使用自定义的Flash组件,通过易语言源码实现播放、暂停、音量调节等功能。 总结,Flash组件对象模块的深入理解和应用,不仅能提升Flash开发效率,也能拓宽易语言的应用边界,让...
5. **自定义组件**:除了使用预置组件,高级开发者还可以创建自定义组件。这涉及到了解组件类结构,以及如何扩展基础组件以满足特定需求。 6. **优化与兼容性**:在使用Flash组件时,要考虑性能优化,避免过度使用...