Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash 按类实例名称引用文本字段_Flash_Actionscript 3 - Fatal编程技术网

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

Flash 按类实例名称引用文本字段,flash,actionscript-3,Flash,Actionscript 3,我需要用相同的类名填充驻留在ParentClass MovieClip中的stage上定义的文本字段tField。我希望能够将tField.text设置为我想从其他类获得的任何内容。如何操作?将答案更改为完整说明,因为询问者可能错过了通过Flash GUI的关键步骤 OpenAdobeFlashCS5可能也适用于CS4。 文件,新的,Actionscript 3.0。 单击文本工具。画一个文本字段。 单击文本字段,在属性窗口的下拉列表中选择输入文本。 在TextField仍处于选中状态的情况下,

我需要用相同的类名填充驻留在ParentClass MovieClip中的stage上定义的文本字段tField。我希望能够将tField.text设置为我想从其他类获得的任何内容。如何操作?

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

OpenAdobeFlashCS5可能也适用于CS4。 文件,新的,Actionscript 3.0。 单击文本工具。画一个文本字段。 单击文本字段,在属性窗口的下拉列表中选择输入文本。 在TextField仍处于选中状态的情况下,在“属性”窗口中,将实例名称设置为tField no quotes。 点击舞台。在“属性”窗口中,将“类:文本”字段设置为“无引号”。 文件,另存为,Test.fla无引号。 文件,新的,Actionscript 3.0类。 将以下内容粘贴到新的AS文件中:

包装 {

}

文件,另存为,Main.As无引号,与步骤3位于同一目录中

文件,新的,Actionscript 3.0类。 将以下代码粘贴到新的.as文件中,我无法使StackOverflow正确显示此内容。只需按原样粘贴即可:

包装 { 导入flash.text.TextField; 公开课 { 公共函数另一个TextField:TextField { textField.text=你好; } } }

文件,另存为,另一个.As无引号,与步骤3位于同一目录中

按Ctrl-Enter键。 在stage上绘制TextField并设置其实例名称所做的所有工作都是秘密添加代码行:

public var tField:TextField = new TextField();
tField.type = "input";
在本例中,与stage关联的任何类都是Main类。如果您需要更多的帮助,我建议您阅读一本关于AS3编程和Flash IDE的好书,因为答案远远超出了简单的StackOverflow答案的范围。

使用。首先,在类中创建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

另一个类是否具有包含要更改的tField的ParentClass引用?是否在时间线上开发?TaskInor,另一个类具有此私有变量\u另一个类:另一个类;公民康涅狄格州,不,它不在时间范围内。您正在尝试访问父类的tField,因此需要对目标父类的引用。我如何引用手动添加的电影剪辑中的文本字段,而不是通过as3?MovieClip通过as3放置在舞台上。如果MovieClip有名称,您也可以使用getChildByName。这是否意味着我可以执行以下操作:stage.getChildByNameParentClass.GetChildByNameField.text=hi?stage.getChildByNameParentClass将失败。自动添加到后台的MovieClip未命名为ParentClass。舞台上的主电影剪辑自动命名为root1。因此,您实际上必须执行以下操作:TextFieldMovieClipthis.stage.getChildByNameroot1.getChildByNametField.text=bye;但是,我不建议依赖root1这个名称。请参阅我关于更可靠地将代码挂接到主movieclip的完整答案。我正在尝试此操作,得到TypeError:Error 1009:无法访问空对象引用的属性或方法:
var tField:TextField = stage.getChildByName("tField");
trace(tField.name); // tField