![]() |
Проблемы при подключении flexlib. Какой-то конфликт.
У меня проект(система администрирования) состоит из большого количества файлов SWF. Есть главный файл SWF-mainmenu.swf, где находится главное меню. При выборе пункта меню в главный файл подгружаются другие флешки.
В одной флешке(monitoringUniversal.swf) нужно было использовать дополнительную библиотеку flexlib. Подключил и откомпилировал. Что бы заработало пришлось подключать и к главной флешке(mainmenu.swf) эту библиотеку, по другому отказывалось работать. После подключения к mainmenu.swf во всех остальных флешках(которые грузятся в нее) перестал правильно работать центрирование вложенных окон(PopUpManager.centerPopUp(this); ). Структура проекта: Код:
-mainmenu.swf(Чтобы заработал flexlib в monitoringUniversal.swf пришлось подключить flexlib и сюда)1)Что там может конфликтовать и как решить проблему. Может как то пути прописать? 2)Почему в monitoringUniversal.swf не работают компоненты flexlib, до тех пор пока я библиотеку не подключу в mainmenu.swf? |
"Только ветер вам на это ответит" (цитата из какой-то песни :) )
в этой библиотеке куча всего, и никто не знает, что именно вы от туда использовали, да и качество этой библиотеки весьма сомнительно даже по сравнению с флексовым фреймворком в целом... Почему так подключается - компилируйте с -link-report и смотрите кто и от чего зависит... дело это не легкое, но вряд ли вам кто-то что-то более внятное посоветует. |
Цитата:
Но почему все таки обязательео нужно подключать библиотеку к главному файлу, хоть она там вообще не используется? :( По другому в подгружаемой флешке отказывается работать(отя там библиотека тоже подключена). Это как то можно обойти, чтобы подключить только к подгружаемой флешке? Тогда проблема отпадёт сама собой.:( |
Цитата:
Цитата:
|
Вопрос, ты скомпиленную либу как подключаешь?
1. merge into code 2. external library 3. RSL ? |
Цитата:
|
Если ты пробовал merge into code, то у тебя будет проблема в 99% случаев.
Допустим у тебя есть 2 swf и в каждой стоит merge into code. В таком случае один и тот же класс будет вкомпиливаться в каждую swf. Это и преведет потом к ошибке что класс не совпадает сам с собой (на самом деле это 2 инстанса одного класса). Если же ты в обоих (именно в обоих) случаях используеь RSL то проблем не будет, т.е. классы вообще вкомпиливаться не будут и на рантайме при попытке обратиться к данному классу плеер просто подгрузит RSL по указанному адрессу и поднимит класс. Если же ты в одной swf укажешь merge into code, а во второй RSL. То проблема опять же будет (см абзац выше). Ты уверен что ты везде пробовал RSL? И что дебаг говорит? В трейсе есть какие-нибудь ошибки... Они должны быть. |
Цитата:
Проблема только в том что перестало корретно работать функция PopUpManager.centerPopUp(this); Других проблем вообще нету. Тут большой проект и много вложенных окон. И даже такая мелочь это не очень хорошо. Других проблем кроме не правильной работы centerPopUp во всем большом проекте нету. Обнаружил такую вещь. Так как определение centerPopUp находится в классе sdks\3.0.0\frameworks\projects\framework\src\mx\managers\PopUpManagerImpl.as вместо библиотеке framework.swc подключил исходники sdks\3.0.0\frameworks\projects\framework\ по методу http://www.brightworks.com/flex_ability/?p=99 И функция centerPopUp нормально заработала вместе с Flexlib. Как с таким бороться вообще не понимаю. Не успевает что инициализироваться?! Может кто-нибудь зацепку подскажет какую-нибудь? |
Судя по тому что ты написал, проблемы с flexlib нет, тк у тебя всё грузить и показывается.
Код AS3:
|
| Часовой пояс GMT +4, время: 00:56. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.