Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Регистрация Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Блоги > Rzer

Рейтинг: 5.00. Голосов: 2.

Подключаем SWC как внешнюю библиотеку.

Запись от Rzer размещена 07.07.2014 в 13:09
Обновил(-а) Rzer 07.07.2014 в 13:44

Дизайн собираем во Flash CS6. Код пишем в FD.

1) Ставим галочку "Экспорт для ActionScript" для всех символов, которые нам нужны. Я добавляю префикc UI к каждому имени класса.
2) В Параметрах публикации отмечаем SWC и SWF форматы.
3) Подключаем нашу SWC библиотеку к проекту:

4) Используем UI классы как обычные классы: наследуемся от них, создаём новые экземпляры и т.д. без каких либо ограничений. Я люблю наследование: все именованные символы кочуют в класс логики и с ними удобно работать.

Это для дебага. В релизе, когда SWC файл нужно отделить от Флешки:
1) Переключаем в свойствах библиотеки её тип на External library.

2) Собираем проект. Появится ошибка - мол классы не найдены.
3) Пишем отдельную Флешку-прелоадер, которая загружает оба ролика (с дизайном и логикой) в один апликейшн домен.

Код AS3:
public class FrontendLoader extends Sprite {
 
		private var uiLoader:Loader;
		private var frontend:Loader;
 
		public function FrontendLoader():void {
 
			uiLoader = new Loader();
			uiLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onUIComplete);
			uiLoader.load(new URLRequest("interface.swf"), new LoaderContext(false, ApplicationDomain.currentDomain));
		}
 
		private function onUIComplete(e:Event):void {
 
 
			//var PFSans:Class = getDefinitionByName("fonts.PFSquare") as Class;
			//Font.registerFont(PFSans);
 
			frontend = new Loader();
			frontend.contentLoaderInfo.addEventListener(Event.COMPLETE, onFrontEndComplete);
			frontend.load(new URLRequest("logic.swf"), new LoaderContext(false, ApplicationDomain.currentDomain));
		}
 
		private function onFrontEndComplete(e:Event):void {
 
			var mainClass:Class = getDefinitionByName("Main") as Class;
			addChild(new mainClass() as DisplayObject);
 
		}
 
	}
4) Запускаем наш прелоадер.
5) Вуаля! Теперь можно просто подменять swf файл дизайна, без необходимости пересобирать основной проект. Это удобно, когда у вас есть дизайнер, который рисует интерфейсики во Flash IDE. Или, как в моём случае терминального софта (GPRS модем со скоростью улитки), нужно отделить тяжёлый редкообновляющийся дизайн от 30 килобайтов логики без потери удобств от автокомплита и прямого использования классов.
Миниатюры
Нажмите на изображение для увеличения
Название: step2.png
Просмотров: 493
Размер:	38.5 Кб
ID:	438  
Изображения
 
Всего комментариев 3

Комментарии

Старый 08.07.2014 13:24 in4core вне форума
in4core
 
Аватар для in4core
Цитата:
5) Вуаля! Теперь можно просто подменять swf файл дизайна
SWF или SWC ?)))
Старый 08.07.2014 13:59 dimarik вне форума
dimarik
 
Аватар для dimarik
SWC и есть внешняя библиотека. Спасибо за еще один, годный пост.
Старый 09.07.2014 10:56 Котяра вне форума
Котяра
 
Аватар для Котяра
Цитата:
SWC и есть внешняя библиотека.
Ну не совсем же, swc -просто библиотека. А подключать её можно как "включённую полностью", "включенную не полностью", или как " внешнюю"
Ваш кэп.
 

 


Часовой пояс GMT +4, время: 06:54.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.