|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Sep 2010
Сообщений: 167
|
Да, конструкция require представляется как один их вариантов. Но я видел примеры с использованием reference-листов и тому подобными вещами. Хотелось бы грамотно это сделать, с подходом как в AS3, а не как в чистом JS. Там ещё что-то про AMD читал, но пока ещё не понял.
В общем, в целом я провёл одну ночь с TypeScript и pixi. Я использую as3-to-typescript через npm, для конвертации исходных текстов из AS3 в более-менее корректный TypeScript. Далее убираю в заголовке файлов флешевские импорты пакетов, потом остаётся только заменять вызовы на библиотеки AS3 аналогичными реализациями из pixi.js. Появляется вопрос - чем лучше заменить Sprite, MovieClip, Shape и AS3? Теоретически можно делать следующие подмены: Shape => PIXI.Graphics Sprite => PIXI.Sprite - если нужно загрузить в спрайт текстуру Sprite => PIXI.Container - для всего остального в общих случаях Но в PIXI у контейнеров нет подкласса graphics. Нельзя напрямую в контейнерах использовать graphics.lineTo. Зато в PIXI есть отдельный класс PIXI.Graphics, наследующий от PIXI.Container, и по идее будет корректно заменять Sprite на PIXI.Graphics - для тех спрайтов, где используется рисование графики. Далее, текстовые поля. TextField в AS3 можно подменить PIXI.Text, и там в общем некоторые свойства очень похожи, за исключением отсутствия autoSize, textHeight и textWidth. Цвет задаётся свойством fill в объекте стиля. Да, и вот ещё какой момент. Свойство numChildren у DisplayObjectContainer. В PIXI.Container его нет, но его можно заменять на PIXI.Container.children.length Портировал пока 3 класса, Пока что не удалось протестировать. В выводе просто чёрный квадрат, нужно искать ошибки, последовательно прослеживая все вызовы в коде через отладчик. Уверен, что где-то оно упирается во что-то примитивно, и дальше работать не хочет. Сейчас эти 3 класса лежат в одном файле, и это уже код на тысячу строчек. А там ещё в три раза больше будет. Неудобно. Последний раз редактировалось Alex626; 21.06.2016 в 22:35. |
|
|||||
а еще есть Haxe)
__________________
местонахождение |
|
|||||
[+4 06.05.14]
|
Цитата:
Чет не прижилась технология. Я как то смотрел ее, вполне-вполне . Но из-за мелкого комьюнити делать там нечего, сорри. Добавлено через 45 секунд Или все поменялось с тез пор?
__________________
Марк Tween |
|
|||||
[quote=in4core;Чет не прижилась технология. Я как то смотрел ее, вполне-вполне . Но из-за мелкого комьюнити делать там нечего, сорри.[/QUOTE]
На самом деле, до недавнего времени тоже так считал. Но потребовалось перебросить небольшой проект из swf на html5 и хакс очень в этом помог. В итоге проект перекинул за пару дней (использовал связку Haxe + PIXI). При этом код писался FlashDevelop, язык можно сказать остался тот же. Как выяснилось, все да же очень круто с хаксом.
__________________
Ujim |
|
|||||
Регистрация: Sep 2010
Сообщений: 167
|
Цитата:
Мне понравился pixi.js и TypeScript. Одной командой я могу перевести весь код из AS3 в синтаксически-корректный TypeScript, далее остаётся только подключить всё к стороннему рендеру (pixi). Ну, то что я писал в предыдущем посте. Я даже не ожидал, что получится так безболезненно перенести всё. И ведь работает. Это просто великолепно! Пока что портирована лишь только малая часть кода, и остаётся ещё много нераскрытых подводных камней и неизбежных трудностей. Например, мне понадобится библиотека для создания UI в приложении. В оригинале на Flash используется MinimalComps + SimpleGUI. Реализации на JS для MinimalComps нет. Есть только QuickSettings от того же автора, но оно скорее реализует именно то, что делал SimpleGUI на основе компонентов из MinimalComps. И оно не использует canvas для отрисовки собственных компонентов, а всего лишь быстро создаёт по запросу существующие в HTML5 компоненты и перенаправляет их в интерфейс. Вроде бы неплох ещё dat.gui. И нашёл ещё controlkit.js . А что вы используете? |
|
|||||
Регистрация: Sep 2010
Сообщений: 167
|
А что, если портировать MinimalComps целиком, под pixi?
|
Часовой пояс GMT +4, время: 10:47. |
|
« Предыдущая тема | Следующая тема » |
|
|