Динамически загружать и менять графику - PullRequest
0 голосов
/ 28 августа 2011

Я хотел бы сделать что-то вроде этого:

Проект flash загружает любой объект векторной графики с жесткого диска (этот рисунок имеет только два цвета), заменяет один цвет (например, # ff0000) на другой.(например, № 00ff00) и дисплей.

Возможно ли это?

Если это так, каков формат файла этого графического объекта?

1 Ответ

0 голосов
/ 28 августа 2011

Если вы хотите загрузить векторную графику, самый простой, изначально поддерживаемый во Flash способ - это загрузить SWF-файл. Этот SWF-файл может содержать графику в корневом списке отображения (в этом случае вы можете просто добавить загруженный SWF-файл, который появится как MovieClip, в ваш список отображения) или он может определять символы, связанные с именами классов. В последнем случае вы можете получить определения классов, используя getDefinitionByName(), а затем создать экземпляр этого класса.

// After having loaded a SWF with class definition "MySymbol"
var symbolClass : Class = getDefinitionByName("MySymbol") as Class;
var symbol : Sprite = new symbolClass();

Что касается преобразования цвета, вы можете сделать это, используя классы ColorTransform или ColorMatrixFilter, в зависимости от сходства двух цветов. В противном случае самый простой способ, если вы придерживаетесь метода загрузки SWF, - это просто разделить две части вашей графики на два отдельных слоя / экранных объекта при создании файла SWF (например, в Flash Professional) и затем получить к ним доступ. и преобразовать их отдельно.

var symbol : MovieClip = new symbolClass;
symbol.part1.transform.colorTransform = 
                        new ColorTransform(0, 0, 0, 1, 255, 0, 0);

Этот код будет обращаться к дочернему элементу MySymbol MovieClip с именем экземпляра part1 и менять его цвет на красный. Для получения дополнительной информации о ColorTransform см. документацию .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...