`
china34420
  • 浏览: 136343 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

自定义组件与自定义事件(组件的数传递)

    博客分类:
  • Flex
阅读更多
自定义组件与自定义事件(组件的数传递)
1. 新建一个Flex工程 File-New-Flex Project
2. 为工程命一个名字(如:CustomComponent)
3. 在Flex Navigator视图下展开CustomComponent – src 右击src文件夹新建一个文件夹components
4. 新建一个组件 File – new – MXML component 如命为MyIntroduce 路径为CustomComponent/src/components

5. 打开MyIntroduce.mxml为组件添加属性和控件并做简单的数据绑定

<?xml version="1.0" encoding="utf-8"?>
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml">
	<mx:Script>
		<![CDATA[
		/**
		 * 为组件添加两个属性
		 */
			[Bindable]
			public var myName:String;
			[Bindable]
			public var myPosition:String;
		]]>
	</mx:Script>
	<mx:Label text="名字:"/>
	<mx:TextInput id="myname" text="{myName}"/>
	<mx:Label text="职位:"/>
	<mx:TextInput id="myposition" text="{myPosition}"/>
	<mx:Button label="确定" id="ok"/>
</mx:VBox>


6. 返回到应用程序文件CustomComponent.mxml Design视图 ,在Components视图下展开Custom文件夹

http://dl.iteye.com/upload/picture/pic/85719/57d3e7da-1c9e-3068-9521-0146d587e130.jpg
将MyIntroduce组件拖入设计区,然后再切换到Source视图下看看代码




Flex已经自动为我们做好了命名空间与标签。
7. 设置组件属性 然后运行
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
				layout="absolute" 
				xmlns:ns1="components.*" initialize="initApp()">
	<mx:Script>
		<![CDATA[
			private function initApp():void{
				introduce.myName="中国星";
				introduce.myPosition="Manager";
			}
		]]>
	</mx:Script>
	<ns1:MyIntroduce x="364" y="51" id="introduce">
	</ns1:MyIntroduce>
</mx:Application>



8. 自定义事件


CustomEvent.as代码:
package com.zkl.events
{
	import flash.events.Event;

	public class CustomEvent extends Event
	{
		public static const EVENT_TYPE:String="event_type";
		public var id:int;
		public var myname:String;
		public var myposition:String;
		public function CustomEvent(type:String, id:int, myname:String,myposition:String, bubbles:Boolean=false, cancelable:Boolean=false)
		{
			super(type, bubbles, cancelable);
			this.id=id;
			this.myname=myname;
			this.myposition=myposition;
		}
		override public function clone():Event{
			return new CustomEvent(type,id,myname,myposition,bubbles,cancelable);
		}
		
	}
}

CustomEventId.as代码:
package com.zkl.events
{
	public class CustomEventId
	{
		public static const COMPONENT_EVENT:int=0;
	}
}


9. 在组件做以下修改
<?xml version="1.0" encoding="utf-8"?>
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml">
	<mx:Script>
		<![CDATA[
		import com.zkl.events.*;
		/**
		 * 为组件添加两个属性
		 */
			[Bindable]
			public var myName:String;
			[Bindable]
			public var myPosition:String;
			
			private function customHandler():void{
				this.dispatchEvent(new CustomEvent(CustomEvent.EVENT_TYPE,CustomEventId.COMPONENT_EVENT,myname.text,myposition.text));
			}
		]]>
	</mx:Script>
	<mx:Label text="名字:"/>
	<mx:TextInput id="myname" text="{myName}"/>
	<mx:Label text="职位:"/>
	<mx:TextInput id="myposition" text="{myPosition}"/>
	<mx:Button label="确定" id="ok"/>
	<mx:Button label="修改" click="customHandler()"/>
</mx:VBox>


10.在应用程序文件代码做以下修改:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
				layout="absolute" 
				xmlns:ns1="components.*" initialize="initApp()">
				
	<mx:Script>
		<![CDATA[
		    import com.zkl.events.*;
		    import mx.controls.Alert;
			private function initApp():void{
				introduce.myName="中国星";
				introduce.myPosition="Manager";
				introduce.addEventListener(CustomEvent.EVENT_TYPE,customEventHandler);
			}
			private function customEventHandler(e:CustomEvent):void{
				Alert.show("收到组件的事件了:\n名字=" + e.myname + "\n职位=" + e.myposition);
			}
		]]>
	</mx:Script>
	<ns1:MyIntroduce x="364" y="51" id="introduce">
	</ns1:MyIntroduce>
	
</mx:Application>


运行



然后修改之后再点击“修改”按钮看看效果:

[img]http://dl.iteye.com/upload/picture/pic/85725/e56a6a3b-6101-3768-b55c-6f851d582729.jpg[img]

留个笔记。^_^
分享到:
评论

相关推荐

    小程序自定义组件例子

    总结,微信小程序的自定义组件是提升开发效率的关键工具,通过学习和实践自定义组件的创建与使用,开发者可以更好地理解和驾驭小程序的开发流程。同时,了解各种编程语言的特点和用途,也有助于在不同的开发场景中...

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

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

    Android自定义组件开发

    在Android应用开发中,自定义组件是提升用户体验和实现独特设计的重要手段。本文将深入探讨Android自定义组件的开发过程,旨在帮助开发者更好地理解和实践这一关键技能。 首先,理解Android组件的基本概念至关重要...

    flex自定义组件事件DEMO

    这个"flex自定义组件事件DEMO"提供了关于如何创建和管理自定义组件事件的实际示例。下面我们将详细探讨Flex自定义组件、事件处理以及如何通过示例进行学习。 1. Flex自定义组件:Flex允许开发者通过继承现有的...

    微信小程序自定义组件components(代码详解)

    自定义组件还可以通过`triggerEvent`方法触发事件,并将事件传递给外部的页面或组件。在本文的实例中,有一个自定义的按钮组件`g-btn`,它绑定了一个`tap`事件,并在事件触发时发送一个`action`事件到外部: ```...

    Android自定义组件开发详解.docx

    在自定义组件时,开发者需要熟悉Android的事件传递机制,包括触摸事件和焦点事件的处理。此外,动画和图形渲染也是自定义组件中经常涉及的部分,例如使用Property Animation进行动态效果的实现,或者利用硬件加速...

    微信小程序自定义组件--日历组件

    6. **组件通信**:自定义组件可以通过`props`接收父组件传递的数据,也可以通过`emit`向父组件发送事件。在这个日历组件中,可能会有父组件传入当前日期或初始化标记,而日历组件在用户操作后向上级发送选择日期的...

    这是一个存放微信小程序自定义组件的仓库wxapp-components-examples.zip

    自定义组件具有与页面类似的生命周期,包括`attached`、`detached`、`ready`、`updated`等关键阶段,开发者可以在这些生命周期函数中执行特定操作,如初始化数据、渲染界面、更新组件状态等。 6. **组件的复用和...

    vue 自定义组件和通信

    本文将深入探讨Vue自定义组件的创建与通信机制。 一、自定义组件的创建 1. **注册组件**: 在Vue中,组件可以通过全局注册或局部注册来创建。全局注册使用`Vue.component()`方法,使得组件在整个Vue实例中可用;...

    vue编写 自定义组件 实例教程.zip

    4. `props`属性允许我们向组件传递数据,`componentTitle`和`componentDescription`是两个示例props。 三、使用自定义组件 1. 在其他Vue组件或父组件中,通过`&lt;my-component&gt;`标签引入并使用自定义组件: ```html...

    微信小程序自定义组件实现图片单指拖动双指缩放效果

    在微信小程序中,自定义组件是开发者...5. 数据的传递与绑定,确保组件能根据页面的数据动态改变状态。 通过熟练掌握这些技术,开发者可以轻松地在微信小程序中构建出具有高级交互功能的图片查看组件,提升用户体验。

    易语言自定义组件边框样式例程

    在本例程中,“易语言自定义组件边框样式例程”关注的是如何通过编程来改变组件(控件)的边框样式,使得用户界面更加个性化和美观。 在Windows系统中,窗口和组件的边框样式通常是预设的,但通过API函数,我们可以...

    微信小程序自定义组件、模板

    数据绑定允许我们将数据从父组件传递到子组件,而事件传递则让子组件能够向父组件发送信息。这种机制使得组件间可以协同工作,增强了组件的灵活性和可扩展性。 模板(template)则是另一种提高代码复用的方式。模板...

    小程序——自定义组件.rar

    `index.wxml`中,你需要编写组件的结构,可以使用`&lt;slot&gt;`标签来实现内容插槽,允许父组件向自定义组件传递内容。通过`wx:if`、`wx:else`、`wx:for`等指令,可以实现条件渲染和循环渲染。 `index.wxss`中,你可以为...

    自定义组件及其内组件大小的正确设置

    本篇文章将详细探讨如何正确设置自定义组件及其内部组件的大小,确保布局的美观与可用性。 首先,了解Android布局的基本单位非常重要。在Android中,尺寸通常以像素(px)为单位,但在不同的设备和屏幕密度下,像素...

    jsf 自定义组件开发

    自定义组件通常与自定义标签库(taglib)一起使用,使得组件在JSF页面中的使用更加直观。通过定义TLD(Tag Library Descriptor)文件,可以为每个组件创建对应的XML标签。 6. **组件的生命周期** JSF组件有自己的...

    微信小程序自定义组件的实现方法及自定义组件与页面间的数据传递问题

    1. **自定义事件**:自定义组件可以通过`triggerEvent`方法触发自定义事件,当事件被触发时,可以向页面或其他组件传递数据。 2. **页面接收数据**:页面通过在组件标签上绑定事件处理器来监听组件发出的自定义事件...

    微信小程序自定义组件-打卡日历组件

    在微信小程序中,自定义组件与页面有相似的结构,由JSON配置文件、WXML模板文件、WXSS样式文件和JavaScript逻辑文件组成。开发者可以通过编写这些文件来定义组件的外观、行为和交互。 在rwjCalendar组件中,WXML...

    微信小程序页面调用自定义组件内的事件详解

    在微信小程序中,页面与自定义组件之间的交互是开发过程中的重要部分。自定义组件是小程序中用于提高代码复用和封装的代码片段,它拥有自己的模板、样式和逻辑,可以在不同的页面中重复使用。 本文将详细介绍如何在...

Global site tag (gtag.js) - Google Analytics