Flash as3教程:OutDisplay类

互联网   发布时间:2008-10-06 01:25:55   作者:佚名   我要评论
前面我们学习了Flash AS3教程:疑难杂症汇总, 我们继续学习AS3的index.base.func.OutDisplay类 例子展示:点开观看! http://www.webjx.com/files/media/OutDisplay.swf index.base.func.OutDisplay类讲解: 当对象再一次触发某事件的时候,判断是否在事件范围内,如果不
前面我们学习了Flash AS3教程:疑难杂症汇总, 我们继续学习AS3的index.base.func.OutDisplay类 例子展示:点开观看!
https://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 cs6鼠标跟随效果实现代码分享

    flash cs6想要实现鼠标跟随效果?该怎么制作呢?今天我们就来看看使用as2.0实现鼠标跟随效果的教程,需要的朋友可以参考下
    2019-05-19
  • Flash cs6怎么使用代码输入中英文文本?

    Flash cs6怎么使用代码输入中英文文本?Flash cs6中可以使用文字工具直接输入文本,也可以使用代码来输入文本,该怎么使用代码输入文本呢?请看下文详细的教程,需要的朋友
    2018-03-11
  • flash as3.0怎么定义抽象类和抽象?

    flash as3.0抽象类怎么定义? as3.0中有很多抽象类,该怎么定义抽象类和抽象方法呢?下面我们就来看看简单的例子,需要的朋友可以参考下http://www.jb51.net/softs/408402.
    2018-02-28
  • flash cs6中怎么使用ActionScript3.0?

    flash cs6中怎么使用ActionScript3.0?flash cs6中想要使用ActionScript3.0功能,该怎么使用呢?下面我们就来看看详细的教程,需要的朋友可以参考下
    2018-01-25
  • Flash中怎么实现鼠标点击决定图像位置?

    本教程给大家分享一个Flash小教程,教大家在Flash CS6中怎么实现鼠标点击决定图像位置?方法很简单,感兴趣的朋友欢迎前来一起分享学习
    2018-01-12
  • Flash中如何用代码将图片放在自己想要的舞台位置?

    本教程教脚本之家的ActionScript教程学习者在Flash中如何用代码将图片放在自己想要的舞台位置,教程讲解的详细,感兴趣的朋友欢迎前来分享学习
    2017-11-20
  • 在Flash CS6中使用with函数绘制背景图教程

    本教程教脚本之家的ActionScript教程学习者如何在Flash CS6中使用with函数绘制背景图?教程一步步讲解的挺详细,方法也不难,非常适合Flash新手入门学习
    2017-11-18
  • Flash怎么设置元件坐标?flash使用代码设置元件的坐标的教程

    Flash怎么设置元件坐标?flash中导如的元件需要添加坐标,该怎么定位元件坐标呢?下面我们就来看看flash使用代码设置元件的坐标的教程,需要的朋友可以参考下
    2017-10-11
  • Flash怎么制作来回摇摆的花朵的动画?

    Flash怎么制作来回摇摆的花朵的动画?Flash中想要给花朵制作一段摇摆的动画效果,该怎么制作呢?下面我们就来看看详细的教程,很简单,需要的朋友可以参考下
    2017-05-23
  • Flash怎么制作流动七彩色的文字?

    Flash怎么制作流动七彩色的文字?想要让文字动起来,该怎么使用flash给文字制作一个流动七彩色的动画呢?下面我们就来看看详细的教程,需要的朋友可以参考下
    2017-04-23

最新评论