【问题标题】:How do you access a dynamic text field from a package / class?如何从包/类访问动态文本字段?
【发布时间】:2014-02-04 03:01:43
【问题描述】:

我在一个类中尝试了以下代码行,但它导致了错误消息。

textbox1.text = this.attribute1;

错误描述:1120:未定义属性 textbox1 的访问。

【问题讨论】:

    标签: actionscript-3 class package undefined textfield


    【解决方案1】:
    package yourpackage
    {
       public class MyClass
       {
          public var dynamicText:TextField;
          public function MyClass(){
              dynamicText = new TextField();
          }
       }
    }
    

    现在你可以从这个类中创建一个新的instance

    package yourpackage
    {
       public class MyOtherClass
       {
          public var myInstance:MyClass;
          private var attribute1:int = 0;
          public function MyOtherClass(){
              myInstance = new MyClass(); //create new instance
              myInstance.dynamicText.text = String(attribute1); //set the text of it's
              //dynamicText textfield's text to the attribute you want
          }
       }
    }
    

    你得到的错误实际上是说textbox1 不是当前上下文中定义的变量,或者访问修饰符是私有的,因此你不能只从类中访问它。您可以创建static 变量,您可以像这样从任何地方访问这些变量:

    MyClass.dynamicText.text = "something";
    

    以上代码假定您将dynamicText 声明为static 变量。

    public static var dynamicText:TextField = new TextField();
    

    【讨论】:

    • 我不明白。如何在一个包中拥有两个公共类?我认为那是非法的。您是否建议为每个实例创建一个新的文本字段?我是 actionscript 的新手 :)
    • 如果您是 actionscript 的新手,并且想了解它,请在 Google 上搜索它的基础知识。阅读有关包、类、访问修饰符和编程模式的信息。回答你的问题,在一个包中包含多个类并不违法,包是将你的类组织成组。阅读访问修饰符以了解如何操作类。
    • 5006:一个 ActionScript 文件不能有多个外部可见定义:MyClass、MyOtherClass。我收到了这个错误。
    • 这意味着一个动作脚本文件不能有更多的类,而不是包。文件和包是不同的东西。您可以对 PACKAGES 中的文件进行排序。为您想要的每个类创建一个新的 .as 文件,但在同一个包中。
    • 当你只能拥有一个类时,在一个 .as 文件中拥有多个包有什么意义?如果这就是你的意思。
    【解决方案2】:

    感谢您的帮助!但是,我设法通过clickHandler function 中的以下两行代码访问和更改我的文本字段的文本。

    var r:MovieClip = MovieClip(root);
    TextField(r["textbox1"]).text = this.navn;
    

    尽管我没有完全理解您的代码,但我猜它涉及为我的类中的每个对象创建一个文本字段?

    顺便说一句,按照您的建议,我将继续阅读课程。 :) 再次感谢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-14
      • 2016-11-19
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多