Flash 板


LINE

※ 引述《etrexetrex (ETREX)》之铭言: : addListener (MovieClipLoader.addListener 方法) : public addListener(listener:Object) : Boolean : 注册一个物件,当 MovieClipLoader 事件处理常式被叫用时,使用该物件来接收告知。 : 适用版本:ActionScript 1.0;Flash Player 7 : 参数 : listener:Object - 一个物件,用来侦听来自 MovieClipLoader 事件处理常式的回呼告 : 知。 : 传回值 : Boolean - 一个布林值。如果成功建立侦听程式,则传回 true;否则传回 false。 : == : 以上是flash的一个内建类别(MovieClipLoader)里的addListener 的说明 : 问题1:什麽是Listener,我认为是一个等待呼叫的函数,不过感觉怪怪的... : 问题2:如果写自订类别,怎样让外部可以使用addListener,就像MovieClipLoader一样 : 问题3:像onPress这种东西,是物件导向观念的,一种等待呼叫的函数 : 不过我一直想不通的是以程序导向来说要作出物件导向应该如何做 : 我以为是类似以下: : while() 或 onEnterFrame() =function() : { : if(当滑鼠点某个按钮) : 呼叫onPress : } : 像这样不断的判断是否被呼叫,不过之前老师说过不是这样 : 那麽就效率来说,使用Listener会和上述的结构差很多吗? : 希望懂这方面的版友可以教我 <(_ _)> 不好意思,先说在前面,这可能不是回答,而比较像是讨论 也想请更多有经验的人分享 ^^; 以下是我的使用经验 1. 就第一点而言,我也觉得listener是一个等待被呼叫的function 我用public function 也可以达到相同的效果 但是就是在於Listener 可以实现event Driven,也就是之後不管要再加什麽function 我只要再加一个listener 即可,而不用去修改主程式来呼叫这个function 2. EventDispatcher.addEventListener() 向组件实体注册侦听程式。 EventDispatcher.dispatchEvent() 用程式设计方式传送事件。 Delegate mx.utils.Delegate dispatchEvent:Function addEventListener:Function removeEventListener:Function 这是一般我要用到事件来处理时会用到的东西 首先你要让一个不管是MovieClip 还是任何object能够去dispatch 一个event 用的是在constructor 里加上 mx.events.EventDispatcher.initialize(this); 这样他就有能力去发布一个event: dispatchEvent({type:"evtName", target:this}); type 是指这个事件的名称,target是指目标 这边除了以上两个值一定要有之外,其他的东西是可以延伸的 只要包在Object里即可 ex: var o:Object = new Object(); o.type = "onInit"; o.id = 0; o.name = "gargouille"; dispatchEvent(o); 而接收的部份: target.addEventListener("onInit", Delegate.create(this, initial)); 意思是我向这个target监听这个onInit的事件 一但这个target丢这个事件出来时,我就去接来处理 然後丢给initial 这个function function initail(e:Object):Void{ this.userID = e.id; this.userName = e. name; } 以上就是我的使用经验,还请大家高抬贵手,不要鞭的太凶 ^^|| 而addListener 和 addEventListener之间的差别我也不是很清楚 这边只是提出我使用Listener还有自订事件的方法,希望对大家有帮助! 另外附上Delegate 的说明: Delegate 类别可让您执行特定范围内的函数。此类别让您可以将相同事件传送 给两个不同的函数 (请参阅「使用元件」中的对函数委派事件),也可以呼叫所 包含类别范围内的函数。 当您将某个函数当作参数传送至 EventDispatcher.addEventListener() 时, 便会在广播程式组件实体范围内叫用这个函数,而不是这个函数在其中所宣告 的物件 (请参阅「使用元件」中的委派函数的范围)。 您可以使用 Delegate.create(),在所宣告物件范围内呼叫函数。 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.210.181.188
1F:推 aquarianboy:推 :) 03/27 13:07







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP