zoukankan      html  css  js  c++  java
  • [转载]AS3)Flash(非Flex)开发中通过事件传递参数的一种方法

    之前我发过一篇Flex开 发中通过事件传递参数的文章,前几天又使用flash开 发一个小东西遇到在flash中 传递参数的问题。

    以下是一个小例子,有两个函数,test()函数是来使用Loader加载一张图片,我们侦听下载完成事件,并传递一 个数字111作为参 数。(当然这个参数你可以自己定义,类型随意,我这个参数和加载是无关的,只是想演示通过事件可以传递参数)

    函数onLoaderComplete(i:int)是loader事件完成的侦听函数,并包含参数(i:int),要传递参数,它的返回值类型必须是Function,并且函数中要定义另一个函数来接收事件var fun:Funciton=funcion(e:Event){},花 括号中即可按照正常侦听函数一样操作事件结果,并可

    操作传递进来的参数 i 。

    这两个函数如下:

    public function test():void {

           var n:int = 111;

           var my_Loader:Loader = new Loader();  

           my_Loader.load(new URLRequest(test.png));   

           my_Loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onLoaderComplete(n));

    }

    public function onLoaderComplete(i:int):Function {

           var fun:Function=function(e:Event)  

           {

                  trace(i);

                  this.addChild = e.target.content;

           }            

           return fun;

    }

    ============================================

    另外一个例子:

    舞台放个按钮,给按钮加个侦听,然后传一个参数 过去,我点按钮,在按钮点击事件处理函数中输出这个参数,同时我也输出事件类型:(注 意:这个例子是Flash CS5 AS3项目,可能和CS3、CS4看上去有区别)

    代码:

    效果:


    -

    关于事件的移除:

    这种方式定义侦听后,可能会出现事 件侦听不好移除的问题,可以用这样的方式移除侦听:

    EventDispatcher(event.currentTarget).removeEventListener(event.type, arguments.callee);
  • 相关阅读:
    Remote API(RAPI)之 文件管理
    vue前端框架

    托马斯彩色回旋
    VUE?
    cookie与session
    ajax前后端分离
    djangoIII
    Django少年
    django三板斧
  • 原文地址:https://www.cnblogs.com/niuniu502/p/1831241.html
Copyright © 2011-2022 走看看