Как извлечь форму MovieClip?
У нас есть флэш-приложение, которое мы планируем конвертировать в javascript. Это довольно простое картографическое приложение с фоновым изображением и набором простых многоугольных видеоклипов, которые представляют места назначения на карте.
Я хотел бы перебрать каждый фрагмент ролика и извлечь фигуру в массив точек x,y, чтобы перерисовать многоугольник с помощью внешней функции javascript.
Это возможно с actioncript?
3 ответа
Если вы хотите экспортировать координаты формы во время создания, вы можете попробовать скрипт JSFL, рекомендованный @strille или этот, или экспортировать прозрачные изображения (если это не слишком ограничивает ваше приложение).
Если вам нужно экспортировать фигуры во время выполнения, вы можете использовать классную библиотеку as3swf для декомпиляции swf и экспорта фигур. Посмотрите вики ShapeExport, так как есть несколько удобных экспортеров для js, таких как JSCanvasShapeExporter и более универсальный JSONShapeExporter
Flash Player 11.6 представил метод readGraphicsData(), который выполняет именно то, что вы просите.
Если вам нужно ориентироваться на более раннюю версию, то, к сожалению, не существует простого способа считывания координат формы из экранного объекта с помощью ActionScript во время выполнения.
Если вы просто хотите извлечь координаты формы, как только кто-то написал сценарий jsfl для Flash CS3, который может помочь вам.
Есть способы, которыми вы можете прочитать координаты из SWF. Например, я написал парсер на PHP ( ссылка). Как оказалось, получение данных не помогает. Модель рисования Flash достаточно отличается от модели HTML5, что затрудняет перенос данных. Основное препятствие, которое я обнаружил, заключается в том, что во Flash путь может быть заполнен двумя стилями заливки: один для области, окруженной путем, другой для закрытой области, которая считается четной нечетной по правилу (например, пятиугольник в середина звезды). Поскольку холст HTML5 позволяет указывать только один стиль заливки, вы не можете точно перерисовывать фигуры из Flash. Я пытался создать инструмент, который извлекает фигуры как SVG, и в результате получился большой пробел и дыры.