Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   RSL Как же все таки правильно использовать? (http://www.flasher.ru/forum/showthread.php?t=207123)

kotyavo 25.03.2014 16:47

RSL Как же все таки правильно использовать?
 
Добрый день.
Чувствую я сон потерял и спать не могу, мучает меня один вопрос, как же все таки RSL использовать правильно?
У меня просто не получается (((
Расскажу как я делаю

Я создаю в FlashIDE CC *.fla проект
В настройках публикации выставлено публикация в swc и swf

Перехожу в библиотеку

Далее перекидываю в библиотеку файлы png создаю например кнопку из картинки, создаю мувиклип кидаю туда картинку потом созданную кнопку, в свойствах задаю нейм.

Сохраняю все это дело. компилирую (cntr+enter) получаю swc и swf, дальше созданное хожу показать в своем проекте.

Перехожу в FD

Делаю загрузку swf файла через Loader
Код AS3:

var mLoader:Loader = new Loader();
mLoader.load( new URLRequest('assets.swf') );
mLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompliteLoader);

onCompliteLoader
Код AS3:

public var mc:MovieClip;
public function onCompliteLoader(e:Event)
{
        mc:MovieClip = MovieClip(Loader(e.currentTarget).content);
        addChild(  mc  );
}

Получаю ошибку
TypeError: Error #1034: Type Coercion failed: cannot convert flash.display::LoaderInfo@7fff6059f11 to flash.display.Loader.

2 Вопрос
Вот я загрузил удачно swf как мне использовать изнеё ресурсы, которые включены были в swc

caseyryan 25.03.2014 17:06

В ошибке же все четко написано. e.currentTarget там не Loader, а LoaderInfo

alatar 25.03.2014 17:11

При чем тут RSL?
Зачем вам swc, если вы его не используете?

e.currentTarget ссылается у вас на LoaderInfo у которого вы подписались на событие, а вы его пытаетесь привести к Loader, о чем вам прямо сказано в ошибке.
Код AS3:

mc:MovieClip = MovieClip(Loader(LoaderInfo(e.currentTarget).loader).content);


kotyavo 25.03.2014 17:44

Цитата:

При чем тут RSL?
Зачем вам swc, если вы его не используете?
А как его использовать?

swc я так понял используется так, мы делаем какой то функционал в fla использую библиотеку например в коде. компилируем SWF в другой SWF мы просто показываем ее как независимую часть?
Единственный момент общения между двумя флешками это диспачеры и слушатели.

Можно ли через загруженную SWF которая использует SWC получить что не будь из той самой SWC для дальнейшего использования в другой SWF основного приложения?

alatar 25.03.2014 18:52

SWC-файл это предварительно скомпилированные символы и классы. По-сути библиотека представляющая собой zip архив содержащий swf и xml файлы. Может быть подключен к проекту и классы из него будут доступны при разработке. Как следствие того, что классы предварительно скомпилированы позволяет ускорить компиляцию проекта, по ставнению с распространением библиотек в виде исходного кода. При статической линковке (в терминах Flash Professional и Flex "Merged into code") классы используемые в проекте попадут в конечный swf-файл (это ответ на вопрос "Можно ли...").

RSL (Runtime Shared Library) технология позволяющая загружать swc (точнее swf-файлы извлеченные из swc, если не рассматривать swz-файлы, что на данный момент не релевантно) в рантайме, до того как загрузятся классы приложения. RSL позволяет сократить размер приложения, за счет разделения кода между файлами. А также позволяет нескольким приложениям использовать один и тот же, однажды загруженный код, что сокращает время загрузки приложения за счет того, что файлы будут браться из кеша браузера.

Из того, что вы показали, я вижу что ни первое, ни второе вы не используете.

Цитата:

А как его использовать?
После подключения swc к проекту, просто создаете экземпляр необходимого вам класса. Соответственно, все что вы понаваяли должно быть доступно из AS (в терминах Flash Professional должна стоять галка "Export for ActionScript").


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

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