Показать сообщение отдельно
Старый 28.10.2009, 02:19
SamFR вне форума Посмотреть профиль Отправить личное сообщение для SamFR Посетить домашнюю страницу SamFR Найти все сообщения от SamFR
  № 7  
Ответить с цитированием
SamFR

Регистрация: Mar 2008
Адрес: Ростов-на-Дону
Сообщений: 354
Если юзать Flash IDE, то всё достаточно просто.
Выставляем для символов в библиотеке (их может быть сколько угодно, не обязательно один) свойства экспорта. Document class-ом делаем специально подготовленный класс, в котором:
  1. импортируются и каким-либо образом упоминаются все нуждающиеся в экспорте классы;
  2. каким-либо образом упоминаются все классы символов, которые вы прописали в библиотеке.
Далее в Publish Settings ставим галочку "export swc" и компилим. После этого говорим компилятору использовать данную swc и наслаждаемся

Пример: пусть в библиотеке лежат символы asset_mc и asset_picture, а также вы хотите экспортировать класс my.ui.SuperPuperButton. Тогда Document class может быть такой:

Код AS3:
import flash.display.Sprite;
import my.ui.SuperPuperButton;
 
public class AssetExporter extends Sprite{
	public function AssetExporter(){
		//assets
		asset_mc;
		asset_picture;
		//classes
		SuperPuperButton;
	}
}
Можно, кстати, чтобы не тянуть в swc flash.display.Sprite, не делать этот клас DocumentClass-ом, а просто в первом кадре импортировать его и создать экземпляр (и наследовать от Object, а не от Sprite). Этот способ, как мне кажется, даже более предпочтительный, несмотря на то, что в этом случае тянется MainTimeline.

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

А вот насчёт кидать на сцену – тут даже не знаю... Вроде бы IDE не может swc подхватывать (сейчас специально попробовал – не получилось). Хотя, может я просто не знаю, как.


Последний раз редактировалось SamFR; 28.10.2009 в 05:11.