Преобразование синтаксиса Actionscript в Objective C - PullRequest
7 голосов
/ 06 октября 2010

У меня есть игра, которую я написал в Actionscript 3. Я ищу порт для iOS.В игре около 9 тыс. LOC, распределенных по 150 классам, большинство классов предназначены для моделей данных, обработки состояний и генерации уровней, все из которых должны быть легко портированы.

Однако мысль о перенастройке синтаксиса вручную для всех этих файлов не слишком привлекательна.Существуют ли инструменты, которые могут помочь мне ускорить этот процесс?

Я не ищу здесь волшебный инструмент и не ищу кросс-компилятор, я просто хочу помочь с преобразованием моих исходных файлов..

Ответы [ 4 ]

1 голос
/ 22 августа 2012

Я начал собирать инструмент, чтобы избавиться от незначительных аспектов этого процесса.

Я пытаюсь выяснить, достаточно ли интереса, чтобы сделать его чистым и стабильным для выпускадругие использовать.В любом случае, я могу это сделать.

http://meanwhileatthelab.blogspot.com.au/2012/08/automating-process-of-converting-as3-to.html

Пока я экономлю много времени, портируя одну из моих довольно больших игр с AS3 на objc.

1 голос
/ 30 октября 2010

Я не знаю инструмента, но я бы попытался атаковать вашу проблему, если действительно много (простого) кода для преобразования.Я уверен, что мое предложение не очень полезно для частей кода, которые очень специфичны для флэш-памяти (все вещи DisplayObject?), А также не очень полезны для большей части вашей логики.Но было бы весело строить!: -)

Частичное автоматическое преобразование должно быть возможным, особенно если объекты являются просто «контейнерами данных», следите за тем, чтобы перенести слишком много идиомы as3 в target-c, хотя может не всегда подходит.

Если вы не хотите создавать свой собственный (полу) парсер для as3, вам понадобится какой-то парсер, очевидно, FlexPMD имеет его (никогда не использовал)это), и, вероятно, есть и другие.

После того, как вы получили парсер, вам нужно найти способ подсказать системе, какие части могут быть автоматически преобразованы.Вы можете попробовать добавить правила в скрипт парсера / генератора для общего случая.В более конкретных случаях я бы использовал пользовательские метаданные для реального класса / свойства / метода, предполагая, что настоящий парсер as3 будет правильно их анализировать.

Теперь часть вашей работы перейдет от ручного преобразования файлов к ручномуаннотировать файлы, но это может быть хорошо для вас.

Попросите парсер проанализировать ваши классы и определить действия, основанные на ваших метаданных, которые определят, какой класс target-c генерировать.Если вы добьетесь того, что это сработает, то, по крайней мере, вы получите все свои классы, их простые свойства и сигнатуры методов (запрос на преобразование тела методов может быть слишком сложным, но вы можете включить его в качестве комментария, чтобы иметьхороший справочник при ручном переводе).

PS: если вы сделаете это односторонним процессом, будьте уверены, что вам не нужно его заново генерировать позже - было бы плохо, если бы вы узнали, чтовы модифицировали сгенерированный код, и вам как-то нужно заново сгенерировать все эти классы - это будет означать, что вам придется переделывать всю вашу тяжелую работу!

0 голосов
/ 16 июня 2012

, даже если какое-то решение существует, обратите внимание, что архитектурная логика РАЗЛИЧНА, и еще много других деталей. В любом случае, даже если это возможно, у вас будет странный гибрид. Я возвращаюсь с WWDC2012, и сообщение - (как всегда ..) производительность и отличный пользовательский опыт.

Итак, вы должны переписать, используя другую модель программирования.

0 голосов
/ 30 октября 2010

Проверьте Воробей рамки. Предполагается, что он предназначен для разработчиков ActionScript, воссоздающих классы, которые имитируют список отображения и тому подобное. Вам наверняка придется погрузиться в «переигровку», независимо от того, что вы делаете, если не хотите использовать упаковщик CS5.

http://www.sparrow -framework.org /

...