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

如何从文档类中访问stage上的动态文本字段

  •  0
  • arnorhs  · 技术社区  · 14 年前

    我在文档类actionscript文件中设置了如下内容:

    package {
    
        import flash.events.Event;
        import flash.net.URLLoader;
        import flash.net.URLRequest;
        import flash.display.Sprite;
        import flash.display.DisplayObject;
        import flash.display.MovieClip;
        import flash.display.Stage;
        import flash.text.TextField;
        import flash.text.TextFieldAutoSize;
        import flash.text.TextFormat;
    
        public class myProject extends Sprite {
    
            public function myProject() {
                // Trying stuff like
                trace(currentUserCount);
                trace(movieClipName.currentUserCount);
                trace(root.currentUserCount);
            }
        }
    }
    

    当我运行这个时,我得到:

    1120: Access of undefined property currentUserCount.
    1120: Access of undefined property movieClipName.
    1119: Access of possibly undefined property movieClipName through a reference with static type flash.display:DisplayObject.
    1120: Access of undefined property currentUserCount.
    
    3 回复  |  直到 14 年前
        1
  •  1
  •   jpea    14 年前

    如果舞台上的所有电影剪辑都有相同的嵌套剪辑,您也可以这样引用内部剪辑:

    for (var i=0; i<stage.numChildren; i++){
      var mc = stage.getChildAt(i)
      mc.subClip.play()
    }
    
        2
  •  0
  •   FGD.Stinky    14 年前

    // MovieClip instance name: mc;
    // Textfield instance name: tf;
    

    然后在文档类中:

    package {
    
        import flash.events.Event;
        import flash.net.URLLoader;
        import flash.net.URLRequest;
        import flash.display.Sprite;
        import flash.display.DisplayObject;
        import flash.display.MovieClip;
        import flash.display.Stage;
        import flash.text.TextField;
        import flash.text.TextFieldAutoSize;
        import flash.text.TextFormat;
    
        public class myProject extends Sprite {
    
            public function myProject() {
                mc.tf.text = "Text you wanna see";
                trace(mc.tf); // [Object TextField]
            }
        }
    }
    
        3
  •  0
  •   arnorhs    14 年前

    我的问题是,我在一个电影剪辑中引用了一个电影剪辑,我不知道我必须为每个剪辑创建一个实例名,然后以代码的方式遍历每个剪辑。

    我以为实例名是全局命名空间的一部分。

    所以我做了一些类似的事情:

    myMovieClip.play();
    

    当我应该做的时候:

    mainMovieClip.subMovieClip.myMovieClip.play();