Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Конфликтуют Flash-компоненты из двух SWC (http://www.flasher.ru/forum/showthread.php?t=163742)

elmortem 11.08.2011 00:42

Конфликтуют Flash-компоненты из двух SWC
 
Есть 2 SWC библиотеки в которых присутствуют стандартные компоненты Flash. Эти библиотеки подключаются к FD-проекту. Затем начинаются чудеса в стиле:
Код:

Ошибка типа Coercion: невозможно преобразовать flash.display::MovieClip@397f0f9 в fl.controls.Button.
Как подружить компоненты из разных SWC в одном проекте?

Aquahawk 11.08.2011 09:42

Никакие компоненты flash никогда не включаются в ни в swc ни в swf. Там от них только имена и подключаются они динамически из плеера. Контролсы похоже включаются в swc и билдятся из исходников. А вот мувиклип нет, от него только заголовок.
А то что мувиклип в баттон не приобразуется, так это он и не должен делать. Это ваш косяк, с swc никак не связанный.

Mur4ik 11.08.2011 10:30

elmortem, два варианта - либо баг, либо что-то делаете не так.

прикрепите маленький "пробничек" с проблемкой, тогда и подскажут что либо дельное.

elmortem 11.08.2011 11:15

Цитата:

Сообщение от Aquahawk (Сообщение 1020361)
Никакие компоненты flash никогда не включаются в ни в swc ни в swf. Там от них только имена и подключаются они динамически из плеера. Контролсы похоже включаются в swc и билдятся из исходников. А вот мувиклип нет, от него только заголовок.
А то что мувиклип в баттон не приобразуется, так это он и не должен делать. Это ваш косяк, с swc никак не связанный.

Сначала в проекте была 1 swc с контролами. Всё компилилось и работало. После того, как подключил вторую swc начало ругаться на мувик с контролами из первой swc. Как только перекомпилпервую - начало ругаться на мувик с контролами из второй swc. Делаю вывод, что вкопиливаются контролы из последней скомпиленной swc, а предыдущие контролы курят.

Если подключать 1 swc с контролами, то всё нормально работает, как только подключаю вторую - происходит описанная выше ситуация. Так что это всё-таки не мой косяк. Остаётся вопрос, что с этим делать?.. В инете тоже только вопросы и ни одного внятного или работающего ответа. Собственно Flash CS4 даже не позволяет нормально перенести мувики с контролами из одной FLA в другую, где тоже есть контролы. При драгндропе из библиотеки в библиотеку получается каша при этом переносится не всё. Т.е. даже "в лоб" задачу решить не удалось.

Ещё был совет сделать отдельную swc с контролами, и как-то пошарить её между 2 fla, чтобы при конечной компиляции контролы брались из общей swc. Но я так и не разобрался, как это делается. Думал, может кто в курсе и подскажет, как это разрулить.

elmortem 11.08.2011 11:34

Вложений: 1
Вот минимальный пример. Две swc с мувиками в которых лежит кнопка. Какая swc компилилась последней - тот мувик и работает.

derhab 11.08.2011 14:20

уберите в фла файлах из MCWithButton1 и MCWithButton2 кнопку-компонент, перекомпилируйте swc
а в коде так:

Код AS3:

private function checkScene():void
{
        var m:MovieClip;
        var m2:MovieClip;
 
        m = new MCWithButton1();
        var btn1:Button = new Button();
        m.addChild(btn1);
        m.x = 50;
        m.y = 50;
        addChild(m);
 
        m2 = new MCWithButton2();
        var btn2:Button = new Button();
        m2.addChild(btn2);
        m2.x = 50;
        m2.y = 150;
        addChild(m2);
}

да, и в коде не забудьте еще import fl.controls.Button;

elmortem 11.08.2011 14:56

Расставлять компоненты в коде - это не решение. Компонентов в мувике может быть много. И таких мувиков может быть много.
Видимо Адоби не позаботились об этом, увы. Даже на форуме Адоби на такой же вопрос никто не отвечает аж с 2002 года.

Пришлось создавать всё с нуля в одной флашке. Бред в общем.


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

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