flex: изменение размера проблем и позиционирование SWFLoader - PullRequest
0 голосов
/ 06 августа 2010

У меня сложная проблема с парой SWFLoaders.

У меня есть приложение, которое загружает SWF с SWFLoader. Загруженный SWF-файл загружает другой SWF-файл (просто скомпилированный флаг). Я добавляю всю мою логику изменения размера и положения в загруженный SWF-файл, и он хорошо работает при изменении размера события, но когда я пытаюсь запустить тот же код в моем SWF-приложении applicationComplete, это не удается. Тот же код при запуске прекрасно работает, если я запускаю свой SWF как автономный, но по какой-то причине масштаб меняется, когда я загружаю его в свое приложение.

Я просто устанавливаю его ширину и высоту в соответствии с размером браузера, чтобы все, кроме масштаба, было одинаковым!

Это мой след от загруженного SWF как отдельного: swfLoader: 1435 742 FlexLoader: 1319,1 742 1,0305555555555554 1,0305555555555554

и это из того же загруженного SWF, когда он загружен в моем приложении: swfLoader: 1435 742 FlexLoader: 1159,55 742 0,9053196681307955 0,9053196681307955

swfLoader - это swfloader моего загруженного swf, который загружает мой скомпилированный fla. Это то, что мне нужно изменить размер и положение в центре. Следующие цифры - ширина и высота. FlexLoader - это загрузчик swfLoaders (или контент, если хотите). Числа: ширина, высота, scaleX и scaleY.

Как видите, размер одинаков (он также одинаков для загруженного приложения swfs), но масштаб другой. Обе шкалы рассчитаны исходя из 1280 и высоты 720, что является размером моего скомпилированного флага.

Единственная причина, по которой я возиться с масштабированием, заключается в том, что я не могу найти точную ширину моего скомпилированного fla, чтобы отцентрировать его (application.width --loadedSwf.width / 2), так что если кто-нибудь знает лучше способ найти, что я был бы очень признателен, что !! :)

Часть, которую я не получаю, почему весы разные? Какую часть я пропускаю? Я полностью потерян и пытаюсь решить эту проблему довольно долго: p

1 Ответ

0 голосов
/ 14 августа 2010

Как и в случае с обычными отображаемыми объектами Flash, вы должны установить размер элемента на основе его внутреннего содержимого.Если вы берете SWF (SWFa) и загружаете его в другой (SWFb), а SWFb указывает SWFa быть шире и выше, Flash не расширяет сцену SWFa, он масштабирует сцену SWFa, если только вы не настроили StageScaleMode SWFa наStageScaleMode.NO_SCALE.Если вы сделали это, вам все равно придется обрабатывать перемещение всех элементов на сцене SWFa, когда он изменяет размеры, чтобы элементы оставались в центре по мере роста / сжатия его стадии.

...