2008-10-29 2 views
8

Вот ситуация. У меня есть оболочка, которая загружает внешний .swf. Теперь это .swf 800x600, но это фрагмент анимации, и есть элементы, которые простираются со сцены. Когда я загружаю .swf в оболочку и вызываю его атрибут width, он возвращает 1200 - потому что он включает в себя элементы, которые выходят из сцены.размеры загруженной сцены swf

Это не то, что я хочу - в идеале, было бы два свойства, один для возврата «рассчитанной ширины» и один для возврата «ширины по умолчанию». Имеются ли эти свойства, а если нет, то что лучше всего обходится?

ответ

15

Ширина и высота загруженного SWF, как определено FLA, которую он создал, можно найти в объекте Loader, в который вы загрузили SWF.

swfLoader.contentLoaderInfo.width 
swfLoader.contentLoaderInfo.height 

Это всегда будет показывать размеры, определенные в свойствах FLA. Не имеет значения, есть ли какие-либо изображения, MovieClips или что вы продлеваете со сцены.

Объекты stage.stageWidth и stage.stageHeight всегда будут возвращать ширину сцены, эта стадия всегда является верхней частью большинства SWF. Другими словами, он всегда будет представлять размеры сцены раковины. Во Flash-приложении есть только один этап.

+0

Спасибо за подсказку по атрибуту 'stage' - это нечто противоположное, не так ли? – 2008-11-03 01:11:29

+0

приятный! Это полностью работает! Мне никогда не приходило в глаза, чтобы посмотреть на объект информации загрузчика. Обычно я просто использую переменную throwaway, чтобы ее удерживать, пока я жду, пока загрузится «реальный» контент, но я могу попытаться сохранить ее в будущем. . благодаря! – 2008-11-03 01:17:03

0

Знак, скорее всего, прав, если объект content loader info будет содержать правильную ширину и высоту. Я никогда не проверял себя, поэтому я не могу этого гарантировать. Документы говорят «номинальные» и контрастируют с «фактическими», поэтому они кажутся разумными.

Есть еще несколько вариантов. Вы можете маскировать внешний swf. Создайте маску, которая является размером сцены и поместит весь контент под нее. Другая идея заключается в создании мувиклипа на основе прямоугольной формы, установленной в качестве альфа, чтобы поместить его в x: 0, y: 0 и сопоставить его ширину и высоту с шагом. Дайте ему имя экземпляра, а затем, когда оно будет загружено, используйте это значение для размера.

Смежные вопросы