2013-04-02 24 views
6

Moja aplikacja AIR ładuje plik SWF zawierający pole tekstowe do wprowadzania danych. Mogę wpisać w pole tekstowe, ale kopiowanie i wklejanie jest zepsute. Kiedy próbuję wkleić coś za pomocą skrótu klawiaturowego, pole tekstowe staje się tak:Nie można kopiować/wklejać w polach tekstowych w załadowanych plikach SWF w AIR

enter image description here

(nie jest to „T”). Nic się nie dzieje, nie pojawia się menu kontekstowe z opcjami kopiowania/wklejania

enter image description here

Kiedy zrobić kliknij prawym przyciskiem myszy w polu tekstowym:

I po serii kopiowania/wklejania wygląda to tak .

Załadowany SWF jest w AS2 (praktycznie niemożliwe jest przeniesienie go do AS3, ponieważ kod w nim jest bardzo rozległy i wyrafinowany). Nie mogę zastąpić tego SWF, ma on bardzo wysoką wartość dla mojego projektu. Oprócz tego problemu, SWF działa dobrze. Może mógłbym zmienić niektóre stałe konfiguracyjne w ustawieniach AS3 modułu ładującego?

Dla celów testowych utworzyłem dwa .flas, jeden jest w AS2 i zawiera pole tekstowe, a drugi w AS3 i ładuje pole tekstowe. Możesz pobrać .flas w archiwum from here.

+0

Brak komunikacji AS2-AS3 może to dotyczy Ciebie? Czy próbowałeś z przykładowym plikiem SWF (AS3) załadowanym na miejsce innego pliku SWF i przetestowano ten problem z kopią i wklejaniem? –

+0

@ Komunikacja Lukasz'Severiaan'Grela Inter-SWF nie ma z tym nic wspólnego. Możesz to ustalić na podstawie dwóch .flas, które dołączyłem. – Pleo

Odpowiedz

6

To jest brudny hack, ale działa. :) Konwertuj SWF z AVM1 na AVM2 "w locie". Użyj ForcibleLoader https://code.google.com/p/as3-classes/source/browse/trunk/org/lzyy/util/ForcibleLoader.as

W loader.fla:

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

W ForcibleLoader.as dodać import flash.system.LoaderContext;

i

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

zamiast

loader.loadBytes(inputBytes);

w linii ~ 75

+0

To jest niesamowite! Zrobiłeś mój dzień, sir! Dziękuję bardzo! Będziemy teraz badać więcej na temat AVM1/AVM2. – Pleo

+0

Jakiś rodzaj czarnej magii flash :) Cieszę się, że mogę ci pomóc! – Smolniy

+0

Ah snap! Właśnie sprawdziłem to z rzeczywistą SWF i chociaż ładuje całą grafikę, nie uruchamia żadnego kodu z załadowanego SWF! :(Co przeoczyłem? – Pleo

Powiązane problemy