Привет, да, вы можете загрузить его один раз; вы можете хранить все свои активы в одном SWF-файле, и после загрузки используйте их по мере необходимости.
Например, допустим, вы хотите использовать две графические строки (фрагменты ролика), rowA и rowB, в SWF, который вы должны загрузить; этот SWF будет действовать как ваша библиотека ресурсов. Что вам нужно сделать, это создать клипы rowA и rowB в вашей библиотеке и настроить их на экспорт для использования в ActionScript. (В библиотеке FLA щелкните их правой кнопкой мыши, выберите «Свойства» и выберите «Экспорт для Actionscript». В поле ввода Class введите «rowA» для этого примера и «rowB» соответственно). Теперь, когда у вас есть ресурсы в вашей библиотеке (они не должны быть на сцене), опубликуйте файл swf.
Теперь давайте перейдем к SWF, где вы на самом деле будете использовать эту «библиотеку». Здесь вам просто нужно загрузить свою SWF-библиотеку (ту, которая содержит графические ресурсы), и все готово. Пример кода,
// Our URL Request
var req:URLRequest = new URLRequest();
req.url = "assets.swf";
// Let create our loader
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLibLoaded);
var context:LoaderContext = new LoaderContext();
context.applicationDomain=ApplicationDomain.currentDomain;
loader.load(req,context);
function onLibLoaded(e:Event):void
{
createRows();
}
function createRows()
{
var myRowAClass:Class = loader.contentLoaderInfo.applicationDomain.getDefinition("rowA") as Class;
var rowA:MovieClip = new myRowAClass() as MovieClip;
this.addChild(rowA);
var myRowBClass:Class = loader.contentLoaderInfo.applicationDomain.getDefinition("rowB") as Class;
var rowB:MovieClip = new myRowBClass() as MovieClip;
rowB.y = rowA.height;
this.addChild(rowB);
}
Как видите, после загрузки библиотеки активов вы можете использовать ресурсы по своему усмотрению. В любом случае, надеюсь, это поможет, и, надеюсь, это то, что вы искали.