размеры сцены загружается SWF-файла
Вот такая ситуация - у меня есть оболочка, которая загружает внешний .SWF-файл. А теперь вот что .swf - это 800x600, но это анимационная часть, и есть элементы, которые простираются за пределы сцены. Когда я заряжаю свой .swf в оболочку и вызовите его атрибут width, он возвращает 1200 - потому что он включает элементы, которые выходят из стадии.
Это не то, что я хочу - в идеале, должно быть два свойства, одно для возврата "вычисленной ширины" и одно для возврата "ширины по умолчанию". Сделать это свойства существуют, и если нет, то каков лучший обходной путь?
2 ответа:
Ширина и высота загруженного SWF, определенные FLA, с помощью которого он был создан, можно найти в объекте
Loader
, в который вы загрузили SWF.swfLoader.contentLoaderInfo.width swfLoader.contentLoaderInfo.height
Это всегда покажет вам размеры, определенные в свойствах FLA. Это не имеет никакого значения, если какие-либо изображения, MovieClips, или то, что вы удлиняете со сцены.
Свойства
stage.stageWidth
иstage.stageHeight
всегда будут возвращать ширину этапа, Этап всегда является самым верхним SWF. Другими словами, это будет всегда представьте размеры стадии оболочки. В приложении Flash существует только один этап.
Марк, скорее всего, прав, что объект content loader info будет содержать правильную ширину и высоту. Я никогда не проверял себя, поэтому не могу гарантировать этого. Врачи говорят "номинальный" и противопоставляют его "фактическому", так что это кажется разумным.
Есть еще несколько вариантов. Вы можете замаскировать внешний swf. Создайте маску размером со сцену и поместите под нее все содержимое. Еще одна идея состоит в том, чтобы создать movieclip на основе набора прямоугольной формы это альфа до 0 поместите его в x: 0, y: 0 и сопоставьте его ширину и высоту с этапом. Дайте ему имя экземпляра, а затем, когда он будет загружен, используйте это значение для размера.