`

FLASH自定义组件

阅读更多

由于工作需要,最近开始学习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(以参数字母排序)。如果在构造函数使用组件参数,则会提示错误。

 

分享到:
评论

相关推荐

    flex/flash自定义组件(搜索栏)

    标题"flex/flash自定义组件(搜索栏)"暗示我们将学习如何利用Adobe Flex或Flash Professional来设计和构建一个定制的搜索输入框组件。Flex是一种基于MXML和ActionScript的框架,用于构建富互联网应用程序,而Flash...

    ESP32S2基于VScode环境配置esp-idf插件添加自定义组件例程

    在本教程中,我们将详细讲解如何在VSCode环境中配置ESP-IDF插件,以便为ESP32S2开发项目,并添加自定义组件。 首先,确保你已经安装了VSCode和ESP-IDF开发环境。你可以从官方网站下载最新版本的VSCode,并通过...

    as3自定义组件

    在Flash AS3编程环境中,自定义组件是提升应用界面独特性和功能扩展性的关键技术。AS3(ActionScript 3)是Adobe Flash平台的核心脚本语言,用于创建交互式内容、动画以及富互联网应用程序(RIA)。自定义组件允许...

    ActionScript的自定义组件及自定义事件例子

    在本实例中,我们将深入探讨如何在ActionScript中实现自定义组件和自定义事件,这对于创建复杂的Flash应用程序至关重要。 首先,让我们了解自定义组件。在ActionScript中,自定义组件是通过继承已有的UIComponent...

    Flex 自定义组件ImageViewer

    在Flex中,自定义组件是开发者根据项目需求创建的特殊UI元素,可以扩展和定制标准的MX或Spark组件。本示例着重于一个名为“ImageViewer”的自定义组件,这通常是一个用于展示图像并可能包含缩放、平移等交互功能的...

    Delphi7中文帮助 之创建自定义组件

    Delphi7中文帮助之创建自定义组件部分(SWF格式) 已经完成了两个章节的翻译,现发布Flash版本,供大家先睹为快,可以在这里查看和下载(需要Flash插件),请其他章节的翻译者抓进时间,切勿延期交付。 想...

    flash组件flash资源组件

    2. **自定义组件**:除了内置组件外,开发者还可以创建自己的组件。这涉及到ActionScript编程,通过编写代码实现特定功能,并将其封装为可重复使用的组件。 3. **ActionScript**:Flash组件的核心是ActionScript,...

    ESP32添加自己的component_esp32添加组件, esp32自定义组件

    - **依赖管理**:如果自定义组件依赖于其他组件或库,需要在`CMakeLists.txt`中明确指定,确保在构建时正确链接。 - **版本控制**:为了保持代码整洁,推荐将组件的版本信息(如版本号、作者等)放入`version.cmake`...

    flash8组件应用教程

    再者,教程还将涵盖自定义组件的知识。当你需要满足特定项目需求时,可以基于现有组件进行修改或创建全新的组件。这一部分将教你如何导出组件、编辑XML配置文件以及创建自定义外观和行为。 此外,教程还会涉及与...

    flex4自定义组件皮肤

    在Flex4中,自定义组件皮肤是提升应用视觉效果和用户体验的重要手段。下面将详细介绍如何在Flex4中自定义组件皮肤。 1. **组件皮肤的基本概念** - 组件皮肤是Flex中改变组件外观的一种方式,通过定义不同的皮肤,...

    学习自定义组件---ConstomButton

    在本文中,我们将深入探讨如何在IT行业中学习和创建自定义组件,以`CustomButton`为例。自定义组件是UI设计中的一个重要概念,它允许开发者根据项目需求定制控件,提供独特的外观和交互效果,从而提升用户体验。我们...

    通过自定义组件实现可拖动改变位置和大小的Label

    在IT行业中,自定义组件是开发人员为了满足特定需求或优化界面交互而创建的独特UI元素。本主题聚焦于如何通过自定义组件实现一个可以被拖动改变位置和大小的Label,这在各种桌面和Web应用中都有广泛的应用,特别是在...

    Flex4 自定义组件皮肤小结

    在Flex4中,自定义组件皮肤是提升应用界面美观度和用户体验的重要手段。Flex4引入了全新的皮肤架构,使得开发者可以更加灵活地控制组件的外观和交互效果。本篇文章将围绕Flex4自定义组件皮肤进行深入讲解,并结合...

    flasg自定义UI组件

    总结来说,"flasg自定义UI组件"是一套以Flex组件为蓝本的开源UI组件库,适用于Flash开发者。它提供了丰富的自定义可能性,有助于创建独特的用户界面,并且已经在GitHub和Google Code上开放源代码,方便开发者下载、...

    as3 datagrid flash 自定义检索程序

    AS3 Datagrid Flash 自定义检索程序是一个用于展示和搜索数据的高级组件,广泛应用于Flash和Flex应用程序中。本文将深入探讨这个程序的核心知识点,包括AS3编程基础、XML数据源的处理、正则表达式应用、自定义...

    flash组件对象模块.rar

    例如,一个网页上的音乐播放器可以使用自定义的Flash组件,通过易语言源码实现播放、暂停、音量调节等功能。 总结,Flash组件对象模块的深入理解和应用,不仅能提升Flash开发效率,也能拓宽易语言的应用边界,让...

    flash组件应用教程(学flash必不可少的教程)

    5. **自定义组件**:除了使用预置组件,高级开发者还可以创建自定义组件。这涉及到了解组件类结构,以及如何扩展基础组件以满足特定需求。 6. **优化与兼容性**:在使用Flash组件时,要考虑性能优化,避免过度使用...

Global site tag (gtag.js) - Google Analytics