Сделать маску видимой в ActionScript 3.0 - PullRequest
0 голосов
/ 21 февраля 2010

У меня есть объект Loader, содержащий загруженный SWF. Я не знаю, как выглядит форма этого swf - он не обязательно прямоугольный.

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

Я не хочу загружать swf дважды, потому что он может содержать некоторое динамическое, сгенерированное скриптом содержимое, которое может давать разные результаты в каждом загрузчике.

И это довольно проблематично, не так ли? Есть идеи?

Изображение: http://www.freeimagehosting.net/uploads/12e6b9cd63.jpg

1 Ответ

0 голосов
/ 21 февраля 2010

Вы можете добавить свой экземпляр загруженного SWF на сцену, а для отражения использовать тот же мувиклип / спрайт и нарисовать его в новом BitmapData. выполните необходимые преобразования, а затем добавьте к сцене.

Или представьте следующую ситуацию: вместо загруженного SWF-файла, добавляющего свою собственную графику в библиотеку, вы можете сделать это из загрузочного приложения, например, присвоить имя экземпляра MyDisplayObject для мувиклипа в загруженном SWF и экспорт в ActionScript. После загрузки SWF-файла вы можете использовать следующий код для доступа к библиотеке, чтобы вы могли добавлять этот объект столько раз, сколько вам нужно, в вашем случае 2.

вот код (из Adobe Live Docs)

function initHandler(e:Event) {
var applicationDomain:ApplicationDomain = e.target.applicationDomain; // e.target is the loaderInfo object
var testClip:Class=applicationDomain.getDefinition("testClip") as Class;
var clip = new testClip();
addChild(clip);
var reflection = new testClip();
addChild(reflection);
reflection.y= 100;
}

Надеюсь, вы на правильном пути.

...