无法在AIR中加载的SWF中的文本字段上进行复制/粘贴

时间:2013-04-02 13:59:19

标签: actionscript-3 flash actionscript air actionscript-2

我的AIR应用正在加载一个包含输入文本字段的SWF文件。我可以输入文本字段,但复制和粘贴被破坏。当我尝试使用键盘快捷键粘贴某些内容时,文本字段将如下所示:

enter image description here

(这不是“T”)。

经过一系列复制/粘贴后,它看起来像这样:

enter image description here

当我右键单击文本字段时,没有任何反应,没有出现带有复制/粘贴选项的上下文菜单。

正在加载的SWF在AS2中(实际上不可能将其移植到AS3,因为其中的代码非常庞大且复杂)。我不能取代那个SWF,它对我的​​项目有极高的价值。除了这个麻烦,SWF工作正常。也许我可以在加载器的AS3设置中更改一些配置常量?

出于测试目的,我创建了两个.flas,一个在AS2中,包含一个文本字段,另一个在AS3中并加载文本字段。您可以在档案from here中下载.flas。

1 个答案:

答案 0 :(得分:6)

这是肮脏的黑客,但它的工作原理。 :) 将您的SWF从AVM1转换为AVM2“在飞行中”。使用ForcibleLoader https://code.google.com/p/as3-classes/source/browse/trunk/org/lzyy/util/ForcibleLoader.as

在loader.fla中:

var loader:Loader = Loader(addChild(new Loader()));
var fLoader:ForcibleLoader = new ForcibleLoader(loader);
fLoader.load(new URLRequest('tf.swf'));

在ForcibleLoader.as中添加import flash.system.LoaderContext;

var lc:LoaderContext = new LoaderContext();
lc.allowCodeImport = true;
loader.loadBytes(inputBytes, lc);

代替

loader.loadBytes(inputBytes);

在第75行