按类实例名称引用文本字段

时间:2011-06-17 20:50:12

标签: flash actionscript-3

我需要填充位于tField内的文本字段ParentClass(在舞台上定义)(具有相同类名的MovieClip)。我希望能够tField.textAnotherClass设置为我想要的{{1}}。我该怎么做?

2 个答案:

答案 0 :(得分:0)

更改完整说明的答案,因为提问者可能错过了通过Flash GUI的关键步骤。

  1. 打开Adobe Flash CS5(也可能适用于CS4。)
  2. File,New,Actionscript 3.0。
  3. 单击文本工具。画一个TextField。
  4. 单击TextField,在Properties窗口中选择下拉列表中的Input Text。
  5. 仍然选中TextField,在“属性”窗口中,将“实例名称”设置为“tField”无引号。
  6. 点击舞台。在“属性”窗口中,将“类:”文本字段设置为“Main”无引号。
  7. 文件,另存为,“Test.fla”没有引号。
  8. File,New,Actionscript 3.0 class。
  9. 将以下内容粘贴到新的AS文件中:

    包 {

    import flash.display.MovieClip;
    import flash.events.FullScreenEvent;
    import flash.events.MouseEvent;
    import flash.events.Event;
    
    public class Main extends MovieClip 
    {
        public function Main()
        {
            var another:Another = new Another(this.tField);
        }
    }
    

    }

  10. 文件,另存为,“Main.as”没有引号,与第3步相同的目录。

  11. File,New,Actionscript 3.0 class。
  12. 将以下代码粘贴到新的.as文件中(我无法让StackOverflow正确显示。只需按原样粘贴):

    包 {     import flash.text.TextField;     公共课另一个     {         public function Another(textField:TextField)         {             textField.text =“你好”;         }     } }

  13. 文件,另存为,“Another.as”没有引号,在同一目录中作为第3步。

  14. 按Ctrl-Enter。
  15. 所有在舞台上绘制TextField并设置其实例名称都是秘密添加代码行:

    public var tField:TextField = new TextField();
    tField.type = "input";
    

    对于舞台所关联的任何类(在本例中为Main类)。如果您需要更多帮助,我建议您阅读一本关于AS3编程和Flash IDE的好书,因为答案远远超出了一个简单的StackOverflow答案的范围。

答案 1 :(得分:0)

使用getChildByName。首先,在类中创建TextField

import flash.display.TextField;

var tField:TextField = new TextField();
tField.name = "tField";

stage.addChild(tField);

请注意,您需要设置名称。在另一个课程中,您可以使用:

var tField:TextField = stage.getChildByName("tField");
trace(tField.name); // tField