flex event标签

ActionScript 3语言:
package  event
{
   import  flash.events.Event;

   public  class  MyEvent  extends  Event
   {
     public  static  const  EVENT_TEST : String = "EventTest";

     public  function  MyEvent( type : String ,  bubbles : Boolean = false ,  cancelable : Boolean = false)
     {
       super( type ,  bubbles ,  cancelable);
     }
   }
}

 

定义MyButton extends Button

MXML语言:
<?xml version="1.0" encoding="utf-8"?>
<s:Button  xmlns:fx= "http://ns.adobe.com/mxml/2009"
       xmlns:s= "library://ns.adobe.com/flex/spark"
       xmlns:mx= "library://ns.adobe.com/flex/halo"
       click= "dispatchEvent(new MyEvent(MyEvent.EVENT_TEST));" >
   <fx:Script>
     <![CDATA[
       import  event.MyEvent;
     ]]>
   </fx:Script>
   <fx:Metadata>
       <!--在Metadata标签下定义Event编译期间检查-->
        [Event(name ="EventTest",type ="event.MyEvent")]
   </fx:Metadata>
</s:Button>

 

Main App

MXML语言:
<?xml version="1.0" encoding="utf-8"?>
<s:Application  xmlns:fx= "http://ns.adobe.com/mxml/2009"
          xmlns:s= "library://ns.adobe.com/flex/spark"
          xmlns:mx= "library://ns.adobe.com/flex/halo"
          xmlns:my= "button.*"
          minWidth= "1024"
          minHeight= "768" >
   <fx:Script>
     <![CDATA[
       import  event.MyEvent;
       /**
       * 定义Event的函数监听方式
       * 在my2 的 EventTest="handleEvent(event)" 相当于对于该Event注册了一个Listiner
       * 消息监听函数为handleEvent(event)
       */
       private  function  handleEvent( e : MyEvent ): void {  trace( e);  }
     ]]>
   </fx:Script>
   <!--可以直接定义EventTest="myTa.text='got Event';" 及在Event触发式执行myTa.text='got Event';-->
   <my:MyButton  id= "my1"  EventTest= "myTa.text='got Event';"  x= "208"  y= "213" ></my:MyButton>
   <my:MyButton  id= "my2"  EventTest= "handleEvent(event)"  x= "209"  y= "258" ></my:MyButton>
   <s:TextArea  id= "myTa"  x= "141"  y= "55" />
</s:Application>

 

解释:

 

1· 在MyButton中将[Event]标签放入Metadata标签中,则告诉编译器该空间会产生该种Event,

   如果此时dispatchEvent出去的Event不是该种类型 则在编译期间及会报错

2· 在主类中<my:MyButton id="my1" EventTest="myTa.text='got Event';" x="208" y="213"></my:MyButton>

   由于EventTest已经在Metadata做了标记,即可使用代码提示功能找到相应的Event

   EventTest="myTa.text='got Event';"  表示为EventTest 这个Event注册一个监听者,监听到信息后处理方式为

   myTa.text='got Event' , same as the EventTest="handleEvent(event)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是对代码的优化: 1. 使用外部样式表代替内部样式表,可以提高代码的可维护性。 2. 将 JavaScript 代码放置在 body 元素底部或使用 defer 属性,可以提高页面加载速度。 3. 为注册链接添加按钮样式,可以增强用户体验。 4. 为跳转链接添加 title 属性,可以增加网站的可访问性。 优化后的代码如下: ```html <!DOCTYPE html> <html> <head> <title>注册示例</title> <link rel="stylesheet" href="style.css"> </head> <body> <div class="container"> <h1>欢迎来到注册页面</h1> <a href="#" class="btn" id="register-link" title="点击注册">注册</a> </div> <script defer src="script.js"></script> </body> </html> ``` ```css .container { display: flex; flex-direction: column; align-items: center; margin-top: 100px; } .btn { padding: 10px 20px; background-color: #007bff; color: #fff; text-decoration: none; border-radius: 5px; margin-top: 20px; cursor: pointer; } ``` ```javascript // 获取注册链接 var registerLink = document.getElementById('register-link'); // 注册链接点击事件处理程序 registerLink.addEventListener('click', function(event) { // 阻止默认行为,避免直接跳转 event.preventDefault(); // 打开新标签页 var newTab = window.open('about:blank', '_blank'); // 在新标签页中添加内容 newTab.document.write('<h1>注册页面</h1>'); // 弹出注册失败提示框 var confirmResult = newTab.confirm('注册失败'); // 确定按钮点击事件处理程序 if (confirmResult) { // 关闭当前标签页,返回开始页面 window.close(); } }); ``` 这样的代码结构更加清晰、易读,且符合最佳实践。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值