加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flash – 可以为自定义事件和对象层次结构动作脚本3冒泡吗?

发布时间:2020-12-15 07:21:58 所属栏目:百科 来源:网络整理
导读:我在互联网上搜索过,没有找到任何关于如何操作的线索,任何想法?我不想只使用flex(我的对象不是可视组件). 解决方法 这是一个非常基本且未完成的自定义事件类,支持冒泡. 您还会注意到我为对象添加了一个附加参数,因此我可以传递数据. 另请注意,如果重新调度e
我在互联网上搜索过,没有找到任何关于如何操作的线索,任何想法?我不想只使用flex(我的对象不是可视组件).

解决方法

这是一个非常基本且未完成的自定义事件类,支持冒泡.
您还会注意到我为对象添加了一个附加参数,因此我可以传递数据.
另请注意,如果重新调度event dispatched事件,则自定义事件类需要克隆方法.
例如,如果来自自定义事件的回调函数然后重新调度该事件,则clone方法将为新调度程序创建事件的副本.

我还想补充一点,我从来没有必要使用这个类的冒泡方面,所以它是,未经测试.

// ActionScript file
package events{
  import flash.events.Event;    
  public class DynamicEvent extends Event{
  public var data:Object;
  private var _type:String;
  private var _bubbles:Boolean; 
  private var _cancelable:Boolean;
    public function DynamicEvent( oData:Object,sType:String,bBubbles:Boolean = false,bCancelable:Boolean = false):void{
      super(sType,bBubbles,bCancelable);
      this.data = oData;
      this._type = sType;
      this._bubbles = bBubbles;
      this._cancelable = bCancelable;
    }
    public override function clone():Event{
      return new DynamicEvent(this.data,this._type,this._bubbles,this._cancelable );
    }
    public override function get type():String{
      return this._type;
    }
    public function set type( sType:String ):void{
      this._type = sType;
    }
    public override function get bubbles():Boolean{
      return this._bubbles;
    }
    public function set bubbles( bBubbles:Boolean ):void{
      this._bubbles = bBubbles;
    }
    public override  function get cancelable():Boolean{
      return this._cancelable;
    }
    public function set cancelable( bCancelable:Boolean ):void{
      this._cancelable = bCancelable;
    }
  }
}

[编辑]

//usage to dispatch
var e:DynamicEvent = new DynamicEvent( {anyAttributeYouWantToCallIt:"someDataHere"},"YourEventNameHere" );
this.dispatchEvent(e);

// usage to listen
ObjectDispatchingCustomEvent.addEventListener( 'YourEventNameHere,callBackFunc' )

//call back function
public function callBackFunc( e:DynamicEvent ):void{
   trace( e.data.anyAttributeYouWantToCallIt ) // will show someDataHere
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读