2011-01-04 13 views
1

Ich glaube, dass Adobe-Tools wie CS5 Möglichkeiten haben, als iPhone-App auszugeben, aber was ist mit einem normalen AS3- oder Flex-Projekt? Gibt es Tools für Auto-Port oder AS3/Flex iPhone Implementierungen?Port AS3/Flex App für iPhone

Von Interesse, wie funktioniert das CS5-Ding? Ist es ein völlig anderer Code-Pfad oder etwas weniger drastisch? Zum Beispiel unterstützt Flash Shapes und Timelines, etc ... stellen sie tatsächlich eine iPhone Flash-Laufzeit zur Verfügung?

Antwort

0

In Bezug auf how it works ist es keine Flash-Laufzeit, sondern eine Möglichkeit, ActionScript über LLVM in nativen ARM-Assemblercode zu kompilieren.

Bearbeiten: Siehe auch Jesse Nicholson Antwort.

0

Eigentlich ist es immer noch die Flash-Laufzeit, genauso wie beim Exportieren eines .exe in den Veröffentlichungseinstellungen (keine AIR-native EXE, nur eine Projektor-Exe). Es ergreift die Flash-VM, und Ihr Quellcode kompiliert Ihre Quelle und die Flash-VM in einer einzigen ausführbaren Datei zusammengefasst. Es ist nur auf ARM kompiliert. In dieser ausführbaren Datei läuft immer noch die Flash-Laufzeitumgebung und Ihr Bytecode wird immer noch ausgeführt. Virtualisierung findet also immer noch im Wesentlichen statt. Sie haben recht, wenn Sie sagen, dass es "nativer" Assemblercode ist, aber es ist weit entfernt von einer "nativen" Anwendung.

+0

Es macht also nichts Verrücktes wie das Konvertieren der .as3 in äquivalentes C++, sondern das Bereitstellen eines AS3-> iPhone Compilers. –

+0

Sie haben sicherlich Recht, dass die auf diese Weise erstellten Apps nicht wie native iPhone-Apps aussehen und sich anfühlen, da sie nicht das Cocoa Touch-Framework verwenden. –

+0

Ich habe mehr Arbeit Reverse Engineering (für Bildungszwecke) die Werkzeuge, die Adobe für Dinge wie das PFI verwendet. Adobe hat eigentlich ein AS3-Frontend für LLVM geschrieben. Der Actionscript-Compiler (asc.jar, seine Open Source) gibt bereits einen Typ von intermediärem Bytecode aus, so dass sie diesen in LLVM IR umwandeln/konvertieren, dann führt LLVM eingebaute Optimierungstechniken für diesen Code durch und kann dann an beliebige gesendet werden Backend für LLVM, in diesem Fall ARM. Sie können mehr über diesen Prozess erfahren, indem Sie den Packager für iPhone herunterladen und das Jar mit JD-GUI dekompilieren. Schau dir GlobalOptimizer.java an. –