首页 / 知识

如何从Flex App读取Flash SWF中输入的文本的值?

2023-04-17 09:10:00

如何从Flex App读取Flash SWF中输入的文本的值?

How to read the value of a text input in a Flash SWF from a Flex App?

我有一个Flex应用程序,可以从CS3加载SWF。 加载的SWF包含一个名为" myText"的文本输入。 我可以毫无问题地在SWFLoader.content中看到此内容,但是我不知道我应该在Flex App中将其视为哪种类型。 我以为Flex文档涵盖了这一点,但是我只能找到如何与另一个Flex SWF进行交互。

Flex调试器告诉我它是fl.controls.TextInput类型,这很有意义。 但是FlexBuilder似乎并不了解此类。 Flash和Flex都使用AS3,而Flex具有一个全新的GUI类库。 我以为它也具有所有Flash类,但我无法了解任何fl。***软件包。


类的fl.*层次结构仅适用于Flash CS3。它是Flash Components 3库(我相信它叫做,我可能错了)。但是,您不需要类来处理对象。只要您可以在代码中获得对它的引用(似乎已拥有该引用),就可以将该引用分配给一个无类型的变量,并始终使用它:

1
2
3
4
5
var textInput : * = getTheTextInput(); // insert your own method here

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

textInput.setSelection(4, 15);

无需知道对象的类型即可与之交互。当然,您在编译时会丢失类型检查,但这实际上不是什么大问题,您只需要格外小心。

如果您真的要引用该对象作为其实型,则该类位于

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

...如果您安装了Flash CS3,因为它仅随该应用程序一起提供。


请记住,如果按照Theo的说明进行操作并以正确的类型引用它,即使您在第一个swfs中没有使用它,它也会在两个swfs中编译该类。不幸的是fl。*类没有实现任何接口,因此您不能在实现中将它们键入接口。如果可以,将仅编译接口,该接口比实现小得多。对于这个而言,这没什么大不了的,它可能只会添加几个kb,但从长远来看,它会加起来。只是抬头;)


Flex和Flash SWF本质上是相同的,只是使用不同的工具构建而成。我不确定它们是否共享相同的组件库,但是基于包名,我猜测它们至少在大多数情况下都可以。

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


文本输入读取加载

最新内容

相关内容

猜你喜欢