手机
当前位置:查字典教程网 >网页设计 >Flash教程 >Flash as3教程:OutDisplay类
Flash as3教程:OutDisplay类
摘要:前面我们学习了FlashAS3教程:疑难杂症汇总,我们继续学习AS3的index.base.func.OutDisplay类例子展示:点开观...

前面我们学习了Flash AS3教程:疑难杂症汇总, 我们继续学习AS3的index.base.func.OutDisplay类 例子展示:点开观看!

http://www.jb51.net/files/media/OutDisplay.swf

index.base.func.OutDisplay类讲解:

当对象再一次触发某事件的时候,判断是否在事件范围内,如果不在则调度Event.CANCEL事件

构造函数

public function OutDisplay(_type:String,_dis:DisplayObject,...objs)

第一个参数:侦听类型

第二个参数:作用范围,一般来说都是用Stage作为范围,当然也有用在其他地方的

第三,四……个参数:可以拥有_type事件的对象

实例化后,侦听_dis的_type事件,每当触发_type事件,就开始判断事件目标是否存在objs中,或者objs中某项的子集显示对象,如果有则没有反应,如果没有则发出Event.CANCEL事件

add方法

public function add(...objs):Array

增加可以拥有_type事件的对象

objects属性(只读)

public function get objects():Array

返回可以拥有_type事件的对象列表

clear方法

public function clear(isDispatch:Boolean = false):void

清除类里面的侦听,以及引用

第一个参数:如果为true,那么调用clear之后会发出Event.CANCEL,反之没反应!默认为false

例子:

下面是展示flash的源代码,这只是一个简单应用,如果写复杂一点,也可以写出真正的快捷菜单

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{

//保存所有对象

private var objAr:Array;

//保存侦听类型

private var type:String;

//保存侦听范围

private var dis:DisplayObject;

//构造函数

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));

}

//添加对象

public function add(...objs):Array{

for(var i:int = 0; i < objs.length; i ){

objAr.push(objs[i]);

}

return objects;

}

//获取对象列表

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;

}

}

}

【Flash as3教程:OutDisplay类】相关文章:

Flash cs3教程:位图动画的表现

Flash教程实例:如何制作别样的绿

Flash AS3教程:Random类

Flash教程:绘制卡通MM眨眼睛动画

Flash实例教程:漫天流星耀夜空

flash as3.0实用公式

Flash CS4教程:制作切换扑克牌效果

Flash AS3教程:ByteLoader类

Flash as3:绝对坐标与相对坐标

Flash AS教程:填色游戏的制作

精品推荐
分类导航