`

Mata框架学习1

    博客分类:
  • flex
阅读更多

http://gzd3618.iteye.com/blog/457936

Mate是以标签为基础,事件驱动的框架。
官网下载Mate:http://mate.asfusion.com/page/downloads。
废话少说开始吧!
1、添加mate.swc到项目中的flex_lib下。
2、在flex_src下创建文件夹存放不同功能的文件
   首先创建mymate文件夹,再在该文件夹下创建view、event、eventmap...文件夹。这是个简单的例子,就先只创建这三个吧。
3、在event文件夹下编写,MyEvent.as.
Xml代码 复制代码
  1.  package mymate.event   
  2.   
  3. import flash.events.Event;   
  4.   
  5.    public class MyEvent extends Event   
  6.    {             //事件类型   
  7.         public static const CLICK_ME = "click_me";   
  8.         //可以是任意类型包括对象。   
  9.         public var name:String;   
  10.         public function MyEvent(type:String,bubbles:Boolean=true,cancelable:Boolean=false):void   
  11.         {   
  12.             super(type,bubbles,cancelable);   
  13.         }   
  14.    }   
  package mymate.event
{
	import flash.events.Event;
	
    public class MyEvent extends Event
    {             //事件类型
    		public static const CLICK_ME = "click_me";
    		//可以是任意类型包括对象。
    		public var name:String;
   		public function MyEvent(type:String,bubbles:Boolean=true,cancelable:Boolean=false):void
    		{
    			super(type,bubbles,cancelable);
    		}
    }
}

    其中值得注意的是:bubbles是Boolean类型,该属性决定了该事件对象是否会向上传递。关于flex事件可以参考http://hi.baidu.com/mallor/blog/item/81951712cdb78f58f919b8fc.html
4、创建UI并分发事件。
在view文件夹下创建B.mxml
Xml代码 复制代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300">  
  3.     <mx:Script>  
  4.         <![CDATA[  
  5.             import mymate.event.MyEvent;  
  6.             import mx.controls.Alert;  
  7.             private function send(event:MouseEvent):void  
  8.             {  
  9.                 var e:MyEvent = new MyEvent(MyEvent.CLICK_ME);    //注册事件  
  10.                 e.name = "谷正东";   
  11.                             //通过事件传递的参数。  
  12.                 this.dispatchEvent(e);  //分发时间  
  13.             }  
  14.         ]]>  
  15.     </mx:Script>  
  16.     <mx:HBox>  
  17.     <mx:Button label="点我" click="send(event)"/>  
  18.     </mx:HBox>  
  19. </mx:Canvas>  
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300">
    <mx:Script>
    	<![CDATA[
    		import mymate.event.MyEvent;
    		import mx.controls.Alert;
    		private function send(event:MouseEvent):void
    		{
    			var e:MyEvent = new MyEvent(MyEvent.CLICK_ME);    //注册事件
    			e.name = "谷正东"; 
                            //通过事件传递的参数。
    			this.dispatchEvent(e);  //分发时间
    		}
    	]]>
    </mx:Script>
    <mx:HBox>
	<mx:Button label="点我" click="send(event)"/>
    </mx:HBox>
</mx:Canvas>


5、编写Event Map。
在eventmap文件夹下创建MyEventMap.mxml
Xml代码 复制代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <EventMap xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="http://mate.asfusion.com/">  
  3.     <mx:Script>  
  4.         <![CDATA[  
  5.             import mymate.event.MyEvent;  
  6.             import mymate.view.A;  
  7.             import mymate.business.TestMObj;  
  8.         ]]>  
  9.     </mx:Script>  
  10.     <EventHandlers type="{MyEvent.CLICK_ME}">  
  11.         <MethodInvoker generator="{A}" method="say" arguments="{event}"/>  
  12.     </EventHandlers>  
  13. </EventMap>  
<?xml version="1.0" encoding="utf-8"?>
<EventMap xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="http://mate.asfusion.com/">
    <mx:Script>
    	<![CDATA[
    		import mymate.event.MyEvent;
    		import mymate.view.A;
    		import mymate.business.TestMObj;
    	]]>
    </mx:Script>
	<EventHandlers type="{MyEvent.CLICK_ME}">
		<MethodInvoker generator="{A}" method="say" arguments="{event}"/>
	</EventHandlers>
</EventMap>

a、没有时使用命名空间xmlns="http://mate.asfusion.com/"。
b、EventHandlers 监听 MyEvent.CLICK_ME 类型的事件。这里需要导包(import mymate.event.MyEvent;)。
c、MethodInvoker 创建generator指定属性的对象。调用指定的方法。相对于:
  
Xml代码 复制代码
  1. var a:A = new A();    
  2.    a.say(event);  
var a:A = new A(); 
   a.say(event);

6、创建A.mxml
A中包含B,在B中触发MyEvent.CLICK_ME 类型事件,经过map的映射,执行A中的say方法
Xml代码 复制代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <mx:Canvas    
  3.     xmlns:mx="http://www.adobe.com/2006/mxml"    
  4.     xmlns:view="mymate.view.*"  
  5.     width="50%" height="50%" backgroundColor="#11aadd">  
  6.        
  7.     <mx:Script>  
  8.         <![CDATA[  
  9.             import mymate.event.MyEvent;  
  10.             import mx.controls.Alert;  
  11.               
  12.               
  13.             public function say(e:MyEvent):void  
  14.             {  
  15.                 Alert.show(e.name+"");    
  16.             }  
  17.         ]]>  
  18.     </mx:Script>  
  19.     <view:B/>  
  20.   
  21. </mx:Canvas>  
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas 
	xmlns:mx="http://www.adobe.com/2006/mxml" 
	xmlns:view="mymate.view.*"
	width="50%" height="50%" backgroundColor="#11aadd">
	
	<mx:Script>
		<![CDATA[
			import mymate.event.MyEvent;
			import mx.controls.Alert;
			
			
			public function say(e:MyEvent):void
			{
				Alert.show(e.name+"");	
			}
		]]>
	</mx:Script>
	<view:B/>

</mx:Canvas>



7、编写主面板
Xml代码 复制代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <mx:Application    
  3.     xmlns:mx="http://www.adobe.com/2006/mxml"    
  4.     layout="horizontal"  
  5.     xmlns:view="mymate.view.*"  
  6.     xmlns:map="mymate.eventmap.*"  
  7.     >  
  8.     <map:MyEventMap/>  
  9.     <view:A width="80%" height="80%"/>  
  10. </mx:Application>  
<?xml version="1.0" encoding="utf-8"?>
<mx:Application 
	xmlns:mx="http://www.adobe.com/2006/mxml" 
	layout="horizontal"
	xmlns:view="mymate.view.*"
	xmlns:map="mymate.eventmap.*"
	>
	<map:MyEventMap/>
	<view:A width="80%" height="80%"/>
</mx:Application>


这里<map:MyEventMap/>是必须的。
分享到:
评论

相关推荐

    网络项目:Mata Kuliah项目PWEB dengan tema UMKM

    学生可能学习了DOM操作、事件处理、AJAX(异步JavaScript和XML)以实现动态数据加载,或者使用库和框架(如jQuery或React)来简化开发。 5. **版面设计与用户体验**:设计UMKM网站时,学生们可能关注了版面的清晰度...

    APPL1:储存库ini dibuat untuk mata kuliah APPL 1

    标题 "APPL1:储存库ini dibuat untuk mata kuliah APPL 1" 暗示这可能是一个针对APPL1课程的项目或作业,其中包含与编程相关的代码存储库。描述中的信息提供了作者(妮莎·沙德丽娜,Nisa Shadrina)和学生编号...

    APPL1:Ini repo buat mata kuliah Analisis dan Perancangan Perangkat Lunak 1

    标题中的“APPL1: Ini repo buat mata kuliah Analisis dan Perancangan Perangkat Lunak 1”表明这是一个与“分析与软件系统设计1”课程相关的项目或存储库。这个项目可能包含了该课程中关于软件开发过程的实践内容...

    APPL1:储存库untuk mata kuliah praktikum APPL1 NIM

    标题中的"APPL1"可能是指一门大学课程或者项目的名字,而"储存库untuk mata kuliah praktikum APPL1 NIM"则表明这是一个针对该课程实践课的存储库,NIM(Nomor Induk Mahasiswa)是印尼语中的学生编号系统,...

    Game-Mata-Mosquito:用JS创建的游戏供学习

    通过学习和实践Game-Mata-Mosquito项目,你可以提升JavaScript编程能力,理解HTML和CSS在构建动态Web应用中的角色,同时掌握Bootstrap4框架的使用,进一步提升你的前端开发技能。这个游戏项目不仅可以作为学习的起点...

    Pemrograman-Berbasis-Framework:Mata Kuliah Pemrograman Berbasis框架

    由赖汉·拉赫玛丹尼(Raihan Rachmadani)编写的这个课程资源,旨在帮助学习者掌握如何利用框架进行高效开发。 JavaScript作为互联网上最广泛使用的脚本语言,它的框架如React、Angular和Vue.js等已经成为构建复杂...

    jogo_mata_mosquito

    总结来说,《jogo_mata_mosquito》这款游戏利用HTML构建基础框架,JavaScript处理动态交互和游戏逻辑,可能还有CSS进行视觉设计。玩家在灭蚊的过程中,实际上是在与JavaScript编写的程序进行互动,体验到了...

    matalifestyle:Mata生活方式

    1. **基础语法与数据类型**:JavaScript的基础包括变量声明(var、let、const)、数据类型(如字符串、数字、布尔值、对象、数组、null和undefined)以及控制流(条件语句、循环、函数等)。理解这些基础知识是学习...

    Project-1-I.A:材料储备库人工MATA64

    "Project-1-I.A:材料储备库人工MATA64"似乎是一个特定项目的命名,可能是为了追踪和管理资源,特别是材料储备。在这个场景中,“MATA64”可能是一个代码或代号,用于标识该项目的一个独特部分,例如一个子系统或特定...

    app_mata_mosquito

    总结起来,"app_mata_mosquito"项目为学习者提供了一个实践HTML、JavaScript和DOM操作的绝佳平台。通过实际开发这样一个小游戏,开发者可以深入理解前端开发中的基本原理,提高动态页面交互的编程能力。无论是初学者...

    SIPUPIL:仓库untuk mata kuliah DIPL

    【标题】"SIPUPIL:仓库untuk mata kuliah DIPL" 暗示了这是一个与教育领域相关的项目,特别是针对"DIPL"这门课程。仓库通常指的是代码存储库,可能是用GitHub或其他版本控制系统管理的。SIPUPIL可能是项目的名称,也...

    Teknologi-Data:Mata Kuliah Teknologi数据

    【标题】"Teknologi-Data:Mata Kuliah Teknologi数据" 涉及的是一个关于数据技术的课程,可能涵盖了数据处理、数据分析、数据存储等核心领域。在这个课程中,学生会学习如何利用现代科技工具来管理和利用数据。 ...

    PWL_KUIS1:Kuis 1 Mata Kuliah PWL学期4

    学习Laravel Laravel拥有所有现代Web应用程序框架中最广泛,最全面的和视频教程库,因此轻而易举地开始使用该框架。 如果您不想读书,可以使用帮助。 Laracasts包含1500多个视频教程,涉及各种主题,包括Laravel,...

    webdua:Mata Kuliah Pemrogaman Web dua

    在“Webdua: Mata Kuliah Pemrogaman Web dua”这个主题中,我们主要探讨的是Web编程的第二部分,尤其是聚焦于PHP语言的学习。PHP(Hypertext Preprocessor)是一种广泛使用的开源脚本语言,专门用于Web开发,可嵌入...

    kamar-usaha:项目Mata Kuliah Permograman Web Mobile

    6. 构建工具或框架:可能包括了像Bootstrap或React这样的前端框架,简化移动Web应用的开发过程。 7. 作业和练习:学生可能需要完成的项目任务,以巩固所学知识。 8. 解决方案或参考答案:帮助学生检查他们的工作是否...

    PWL:tugas mata kuliah Pempograman Web Lanjut

    标题 "PWL: tugas mata kuliah Pemrograman Web Lanjut" 暗示了这是一份关于高级Web编程课程的任务或项目。在这个任务中,学生可能被要求运用他们在Pemrograman Web Lanjut(即“高级Web编程”)课程中学到的技能来...

    ujikom-pwpb:源代码Ujikom Mata Pelajaran PWPB

    "ujikom-pwpb:源代码Ujikom Mata Pelajaran PWPB"这个标题表明我们正在讨论一个与教育领域相关的开源项目,具体来说是针对"Ujikom Mata Pelajaran PWPB"(可能是指印尼语中的“Pendidikan Kewarganegaraan”或公民...

    pw2021_203040135:存储库Mata Kuliah Pemrograman Web Tahun Ajaran 2021

    4. **项目模板**:可能提供基础的项目框架,让学生能够在此基础上构建自己的Web应用程序,例如一个简单的博客系统或电子商务网站。 5. **测试与评估**:可能包含测验和考试题目,用来评估学生的理解程度和编程能力...

    uprak_203040023:资料库Ujian Praktek Mata Kuliah Pemograman Web

    【标题】"uprak_203040023:资料库Ujian Praktek Mata Kuliah Pemograman Web" 提供的是一个关于Web编程实践考试的资源库,很可能包含了与Web应用程序开发相关的练习题或项目。这个标题暗示了文件内容可能涵盖了Web...

    pw2021_203040006:存储库Mata Kuliah Pemograman Web Taun A jaran 2021

    【标题】"pw2021_203040006:存储库Mata Kuliah Pemograman Web Taun A jaran 2021" 指的是一份关于2021年度A学期Web编程课程的教学资源库。这个库可能包含了学生和教师在该课程中所需的所有资料,旨在支持教学和...

Global site tag (gtag.js) - Google Analytics