Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.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
Apache flex 如何从Flex应用程序读取Flash SWF中输入的文本值?_Apache Flex_Flash_Actionscript 3_Cs3 - Fatal编程技术网

Apache flex 如何从Flex应用程序读取Flash SWF中输入的文本值?

Apache flex 如何从Flex应用程序读取Flash SWF中输入的文本值?,apache-flex,flash,actionscript-3,cs3,Apache Flex,Flash,Actionscript 3,Cs3,我有一个Flex应用程序,它从CS3加载SWF。加载的SWF包含一个名为“myText”的文本输入。我可以在SWFLoader.content中看到这一点,没有问题,但我不知道应该在我的Flex应用程序中将其视为什么类型。我原以为flex文档涵盖了这一点,但我只能找到如何与另一个flex SWF交互 Flex调试器告诉我它属于fl.controls.TextInput类型,这很有意义。但是FlexBuilder似乎不知道这个类。虽然Flash和Flex都使用AS3,但Flex有一个全新的GUI类

我有一个Flex应用程序,它从CS3加载SWF。加载的SWF包含一个名为“myText”的文本输入。我可以在SWFLoader.content中看到这一点,没有问题,但我不知道应该在我的Flex应用程序中将其视为什么类型。我原以为flex文档涵盖了这一点,但我只能找到如何与另一个flex SWF交互


Flex调试器告诉我它属于fl.controls.TextInput类型,这很有意义。但是FlexBuilder似乎不知道这个类。虽然Flash和Flex都使用AS3,但Flex有一个全新的GUI类库。我认为它也有所有的Flash类,但我无法让它知道任何fl.**软件包。

Flex和Flash SWF本质上是相同的,只是使用不同的工具构建。我不确定它们是否共享相同的组件库,但根据包名,我猜它们至少大部分共享相同的组件库


如果它是一个普通的文本输入,那么我猜它是mx.controls.TextInput的一个实例。

类的
fl.*
层次结构仅限于Flash CS3。这是Flash Components 3库(我相信它被称为,我可能错了)。但是,您不需要类来处理对象。只要您可以在代码中获得对它的引用(您似乎有),您就可以将该引用分配给非类型化变量并使用它:

var textInput : * = getTheTextInput(); // insert your own method here

textInput.text = "Lorem ipsum dolor sit amet";

textInput.setSelection(4, 15);
为了与对象交互,不需要知道对象的类型。当然,您在编译时会丢失类型检查,但这并不是什么大问题,您只需要格外小心

如果您真的,真的想引用对象作为它的真实类型,那么所讨论的类位于

Adobe Flash CS3/Configuration/Component Source/ActionScript 3.0/User Interface/fl/controls/TextInput.as

…如果您安装了Flash CS3,因为它只与该应用程序一起提供。

请记住,如果您按照西奥所说的操作并使用正确的类型引用它,它将在两个SWF中编译该类,即使您在第一个SWF中没有使用它。不幸的是,fl.*类没有实现任何接口,因此不能将它们键入接口而不是实现。如果可以,则只编译接口,这比实现小得多。对于这一个,它不会是一个大问题,它可能只会增加几kb,但从长远来看,它会增加。只是一个提醒;)