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

时间:2010-09-02 18:45:52

标签: actionscript-3 actionscript

我正在尝试访问我已放置在舞台上的文本输入(在影片剪辑中),但没有运气。

我已为此动态文本字段定义了一个实例名称,即currentUserCount

我在文档类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 个答案:

答案 0 :(得分:1)

如果舞台上的所有动画片段中都有相同的嵌套片段,您也可以像这样引用内部片段:

for (var i=0; i<stage.numChildren; i++){
  var mc = stage.getChildAt(i)
  mc.subClip.play()
}

答案 1 :(得分:0)

确保MovieClip和TextField在.fla文件中包含实例名称。

// 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]
        }
    }
}

答案 2 :(得分:0)

我的问题是我在一个影片剪辑中引用了一个影片剪辑,我不知道我必须为每个影片剪辑创建一个实例名称,并通过每个代码在代码中工作。

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

所以我做了类似的事情:

myMovieClip.play();

当我应该这样做的时候:

mainMovieClip.subMovieClip.myMovieClip.play();