AS 1.0--在 ActionScript 1.0 中定义事件处理函数方法

可以为影片剪辑创建一个 ActionScript 类,然后在新创建的类的原型对象中定义事件处理函数方法。在原型对象中定义方法可使该元件的所有实例都以同一种方式响应事件。

也可以将 onClipEvent() 或 on() 事件处理函数方法添加到一个单独的实例中,以提供只有当该实例的事件发生时才运行的独特指令。onClipEvent() 和on() 方法不重写事件处理函数方法;两种事件都会使它们的脚本运行。不过,如果在原型对象中定义了事件处理函数方法,同时也为某个特定实例定义了事件处理函数方法,那么该实例定义会重写原型定义。

 在对象的原型对象中定义事件处理函数方法:

  1. 创建一个影片剪辑元件,并通过以下方式将链接标识符设置为 theID:在"库"面板中选择该元件,然后从"库"弹出菜单中选择"链接"。
  2. 在"动作"面板("窗口">"动作")中,使用 function 语句定义一个新类,如下面的示例所示:
    // 定义类
    function myClipClass() {}
    
    

    这个新类被分配给由时间轴添加到应用程序中(或者是用 attachMovie() 或 duplicateMovieClip() 方法添加到应用程序中)的影片剪辑的所有实例。如果想让这些影片剪辑能够访问内置 MovieClip 对象的方法和属性,则需要让新类继承 MovieClip 类。

  3. 输入代码,如下面的示例:
    // 从 MovieClip 类继承方法和属性
    myClipClass.prototype = new MovieClip();
    
    

    现在,myClipClass 类继承了 MovieClip 类的所有属性和方法。

  4. 输入如下例所示的代码,为这个新的类定义事件处理函数方法:
    // 为 myClipClass 类定义事件处理函数方法
    myClipClass.prototype.onLoad = function() {trace("movie clip loaded");}
    myClipClass.prototype.onEnterFrame = function() {trace("movie clip entered frame");}
    
    
  5. 如果"库"面板没有打开,请选择"窗口">"库"打开它。
  6. 选择要与新类相关联的元件,然后从"库"面板弹出菜单中选择"链接"。
  7. 在"链接属性"对话框中,选择"为 ActionScript 导出"。
  8. 在"标识符"文本框中输入一个链接标识符。

    对于要与新类关联的所有元件,它们的链接标识符必须都相同。在 myClipClass 示例中,标识符是 theID

  9. 在"动作"面板中输入如下面的示例所示的代码:
    // 注册类
    Object.registerClass("theID", myClipClass);
    this.attachMovie("theID","myName",1);
    
    

    此步骤向 myClipClass 类注册了链接标识符为 theID 的元件。myClipClass 的所有实例都提供具有如步骤 4 中定义的行为的事件处理函数方法。同时这些实例的行为也与 MovieClip 类的所有实例相同,因为您在步骤 3 中指示新类继承 MovieClip 类。

    下面的示例显示了完整的代码:

    function myClipClass(){}
    
    myClipClass.prototype = new MovieClip();
    myClipClass.prototype.onLoad = function(){
        trace("movie clip loaded");
    }
    myClipClass.prototype.onPress = function(){
        trace("pressed");
    }
    
    myClipClass.prototype.onEnterFrame = function(){
        trace("movie clip entered frame");
    }
    
    myClipClass.prototype.myfunction = function(){
        trace("myfunction called");
    }
    
    Object.registerClass("myclipID",myClipClass);
    this.attachMovie("myclipID","clipName",3); 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值