Символ загрузки AS3 из внешней библиотеки SWF - PullRequest
1 голос
/ 31 мая 2011

У меня есть 2 SWF, один из них (назовем его Resources.swf), который содержит несколько символов (большинство из них MovieClips) в своей библиотеке, но ни один из них не добавляется на сцену (временная шкала содержит только один пустая рамка), а затем другой swf (Main.swf), куда мне нужно импортировать некоторые символы из другого SWF.

Я искал и искал, но вся информация, которую я видел и пробовал, импортирует символы со сцены / шкалы времени, используя такие вещи, как:

loadedMC = MovieClip(loader.content);

или

loadedMC = MovieClip(event.target.content);

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

[Embed(source='assets/Resources.swf', symbol='SymbolName')]
public class Generic2 extends MovieClip

Есть ли способ сделать это?

Если нет, я должен изменить мой Resources.swf, чтобы решить эту проблему, или у меня есть другие альтернативы?

Ответы [ 3 ]

2 голосов
/ 16 ноября 2011

Выполните следующие действия

  1. . Во флэш-памяти отметьте свой класс для экспорта, вызвав «Свойства» для элемента библиотеки и проверив «Экспорт для ActionScript» и присвоив ему имя «Класс».
  2. Публикация Resources.SWF
  3. После загрузки Resources.SWF вы можете создавать экземпляры с помощью этой вспомогательной функции
  4. Затем вы можете добавить addChild () или все, что захотите с экземпляром.

Вспомогательная функция

public function createInstance(mc:MovieClip, className:String, instName:String):MovieClip
{
    var cls:Class = mc.loaderInfo.applicationDomain.getDefinition(className) as Class;
    if (cls)
    {
        var instMC:MovieClip = new cls();
        instMC.name = instName;
        return instMC;
    }
    return null;
}
2 голосов
/ 31 мая 2011

После загрузки Resources.swf вы можете создавать экземпляры загруженных классов.

Вот фрагмент, который может помочь:

var dynClass : Class = Class(getDefinitionByName("fully.qualified.ClassName"));
if(dynClass) 
{
    var app : Object = new dynClass();
    addChild(app as DisplayObject);
}
0 голосов
/ 31 мая 2011

Вам нужно иметь класс as3 или просто экспортировать символ в кадре, иначе вы не сможете ссылаться на него. Ваш SWF-файл будет пустым, если вы не экспортируете мувиклип ... По сути, вы можете просто экспортировать его как определенный класс, а затем ссылаться на пустой класс!

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