代码之家  ›  专栏  ›  技术社区  ›  Student

尝试理解此actionscript 2代码

  •  0
  • Student  · 技术社区  · 16 年前

    我得到了这个操作脚本2代码:

    fuseModel = [{mx:0, my:-5.5, x:0, y:-4, pen:.5, clr:0x000033, alpha:50}];
    
    MovieClip.prototype.setModel = function(m)
    {
     this.drawModel(m);
    }
    
    MovieClip.prototype.drawModel = function(m)
    {
     var pt = m[0];
     beginFill(pt.bf, pt.bfa);
     lineStyle(pt.pen,pt.clr,pt.alpha);
     lineTo(100,100);
     endFill();
    }
    
    _root.createEmptyMovieClip("ship_mc", 2);
    ship_mc.setModel(fuseModel);
    

    这个代码只是画了一条线(为了简单起见,我删除了其他600行代码)。

    我试图理解在哪里调用movieclip.prototype.setModel方法。看起来像现在,但是,如果我删除它,就不会画线。

    那么,谁在调用movieclip.prototype.setModel()?

    ——更新

    看起来像 ship_mc.setModel(fuseModel) 正在调用它,所以对于movieclip的每个实例,setmodel都会存在吗?它没有意义,因为它不是在movieclip中,而是在movieclip.prototype中。

    1 回复  |  直到 16 年前
        1
  •  1
  •   Lars Blåsjö    16 年前

    在actionscript 2(以及actionscript 1和javascript)中,您可以向对象原型添加方法,然后该类型的所有对象(该类)都将拥有该方法。您可以将原型视为类定义,因此在代码中,定义movieclip.prototype.setModel和movieclip.prototype.drawModel就像向movieclip类添加方法一样。

    推荐文章