麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 辦公 > Flash > 正文

Flash as3教程:OutDisplay類

2020-07-17 13:17:30
字體:
供稿:網(wǎng)友
前面我們學(xué)習(xí)了Flash AS3教程:疑難雜癥匯總, 我們繼續(xù)學(xué)習(xí)AS3的index.base.func.OutDisplay類例子展示:點(diǎn)開觀看!
http://www.companysz.com/files/media/OutDisplay.swf

index.base.func.OutDisplay類講解:
當(dāng)對(duì)象再一次觸發(fā)某事件的時(shí)候,判斷是否在事件范圍內(nèi),如果不在則調(diào)度Event.CANCEL事件

構(gòu)造函數(shù)
public function OutDisplay(_type:String,_dis:DisplayObject,...objs)
第一個(gè)參數(shù):偵聽類型
第二個(gè)參數(shù):作用范圍,一般來說都是用Stage作為范圍,當(dāng)然也有用在其他地方的
第三,四……個(gè)參數(shù):可以擁有_type事件的對(duì)象
實(shí)例化后,偵聽_dis的_type事件,每當(dāng)觸發(fā)_type事件,就開始判斷事件目標(biāo)是否存在objs中,或者objs中某項(xiàng)的子集顯示對(duì)象,如果有則沒有反應(yīng),如果沒有則發(fā)出Event.CANCEL事件

add方法
public function add(...objs):Array
增加可以擁有_type事件的對(duì)象

objects屬性(只讀)
public function get objects():Array
返回可以擁有_type事件的對(duì)象列表

clear方法
public function clear(isDispatch:Boolean = false):void
清除類里面的偵聽,以及引用
第一個(gè)參數(shù):如果為true,那么調(diào)用clear之后會(huì)發(fā)出Event.CANCEL,反之沒反應(yīng)!默認(rèn)為false

例子:
下面是展示flash的源代碼,這只是一個(gè)簡(jiǎn)單應(yīng)用,如果寫復(fù)雜一點(diǎn),也可以寫出真正的快捷菜單

CODE:
import index.base.func.OutDisplay;

var menu:Menu = new Menu;
menu.mc1.addEventListener(MouseEvent.MOUSE_OVER,mouseOverFun);
menu.mc2.addEventListener(MouseEvent.MOUSE_OVER,mouseOverFun);
menu.mc3.addEventListener(MouseEvent.MOUSE_OVER,mouseOverFun);
menu.mc4.addEventListener(MouseEvent.MOUSE_OVER,mouseOverFun);
addChild(menu);

function mouseOverFun(e:MouseEvent){
var m:Menu = new Menu;
m.x = e.currentTarget.x e.currentTarget.parent.x;
m.y = e.currentTarget.y e.currentTarget.parent.y;
addChild(m);

var out:OutDisplay = new OutDisplay(MouseEvent.MOUSE_OVER,stage,e.currentTarget);
out.addEventListener(Event.CANCEL,cancelFun);
out.add(m);

m = null;
out = null;
}

function cancelFun(e:Event):void{
var out:OutDisplay = e.currentTarget as OutDisplay;
var tmpAr:Array = out.objects;
removeChild(tmpAr[1]);
out.removeEventListener(Event.CANCEL,cancelFun);

tmpAr = null;
out = null;
}
類的源代碼:

CODE:
package index.base.func{

import flash.display.DisplayObject;
import flash.display.DisplayObjectContainer;
import flash.events.Event;
import flash.events.EventDispatcher;

public class OutDisplay extends EventDispatcher{

//保存所有對(duì)象
private var objAr:Array;
//保存?zhèn)陕狀愋?br /> private var type:String;
//保存?zhèn)陕牱秶?br /> private var dis:DisplayObject;

//構(gòu)造函數(shù)
public function OutDisplay(_type:String,_dis:DisplayObject,...objs){
type = _type;
objAr = objs;
dis = _dis;
dis.addEventListener(_type,fun);
}

//事件處理
private function fun(e:Event):void{
for(var i:uint = 0;i<objAr.length;i ){
if(e.target == objAr[i]) return;
if(objAr[i] is DisplayObjectContainer){
if(objAr[i].contains(e.target)) return;
}
}
dis.removeEventListener(type,fun);
dispatchEvent(new Event(Event.CANCEL));
}

//添加對(duì)象
public function add(...objs):Array{
for(var i:int = 0; i < objs.length; i ){
objAr.push(objs[i]);
}
return objects;
}

//獲取對(duì)象列表
public function get objects():Array{
return objAr;
}

//卸載
public function clear(isDispatch:Boolean = false):void{
if(isDispatch) dispatchEvent(new Event(Event.CANCEL));
dis.removeEventListener(type,fun);
objAr = null;
}

}
}

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产精品啪一品二区三区粉嫩 | 日本在线一区二区 | 日本综合久久 | 曰韩在线视频 | 亚洲少妇诱惑 | 欧美性激情视频 | 久久国产免费视频 | 欧美成人性生活片 | 日本最新免费二区三区 | 青青操精品 | 亚洲日韩中文字幕一区 | 91精品国产91久久久久久不卞 | 久久精品网址 | 欧美综合在线观看视频 | 欧美精品一级 | 九色新网址 | 亚洲3atv精品一区二区三区 | 欧美韩国一区 | 黄视频免费在线 | 欧美在线成人影院 | 国产一区二区三区四区五区精品 | 久久久一区二区三区精品 | 中文字幕综合在线观看 | 爱福利视频网 | 亚洲精品一二三区 | 亚洲国产精品久久久久制服红楼梦 | 亚洲国产小视频 | 精品人人人人 | 精品国产91久久久久久 | 国产欧美精品一区二区三区四区 | 一级毛片在线视频 | 亚洲成人中文字幕在线 | 国产女厕一区二区三区在线视 | 欧美色视频免费 | 把娇妻调教成暴露狂 | 亚洲特黄a级毛片在线播放 久久久入口 | 久久精品一区二区三区四区五区 | 中文字幕专区高清在线观看 | 亚洲福利视 | 日本道中文字幕 | 日本aⅴ在线|