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

Flash,ActionScript 3:将变量定义为来自其创建者的变量,而不必经常使用creator.var

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

    我试着把我的代码分成几个类。但有一个真正困扰我的问题。当我为函数创建一个类时,我给出了它自己的阶段。这样地

    dragf:Dragfunctions = new Dragfunctions(this)
    

    var stage:Object;
    
        public function Dragfunctions(stage:Object) 
        {
                this.stage = stage;
        }
    

    如您所见,我现在可以使用stage.var1=“hi”调用stage的变量 但当我需要调整变量很多次,它会变得相当混乱。。。

    有一种方法可以告诉我,当我叫var1时,他知道我指的是stage.var1,而不需要叫stage。其:

    var var1 = stage.var1 
    

    stage.var1 = var1 
    

    但这也很不愉快有更好的办法吗?

    1 回复  |  直到 16 年前
        1
  •  1
  •   spender    16 年前

    是的,使用getter和setter(它们提供类似字段的语义,但允许您在使用赋值时执行自定义逻辑):

    function set var1(val:SomeType):void
    {
        stage.var1=val;
    }
    function get var1():SomeType
    {
        return stage.var1;
    }
    function doStuff():void
    {
        var1=new SomeType();  //this results in call to "set" method
        var st:SomeType=var1; //this results in call to "get" method
    }