![]() |
Размеры сцены и мувиклипов
Возникло несколько вопросов, которых с помощью документации, к сожалению, решить не получилось
1 (скорее не вопрос, а уточнее). Правильно ли я понимаю, что Stage.align по умолчанию center? В следующем вопросе поясню почему это так меня затронуло :) 2. Дело в том, что при помещении мувиклипа на сцену возникает ряд проблем с размерами этого самого мувиклипа и самой сцены. 2.1. Никак не хотят устанавливаться в какое либо значение параметры MovieClip.height и width. Если их затрейсить без изменения, они получаются равны нулю. Если их изменить, то этот мувиклип просто пропадает со сцены и трейс этих параметров все равно возвращает 0. 2.2. При помещении на сцену мувиклипа, скажем, размером 300x600 сцена не принимает размер этого мувиклипа, а делается достаточно большой. При попытке затрейсить Stage.stageHeight или stageWidth выдаются какие-то непонятные значения, типа 796x1140, при попытке изменить это параметры ничего не изменяется. Собственно вопрос, как сделать, чтобы сцена была того же размера, как и мувиклип и как установить высоту и ширину собственно по умолчанию? |
Вас непонятно.
|
Если трудно дается высказывание мыслей, необходимо выкладывать хотя бы код ваших действий.
|
На самом деле просто хочу динамически подгрузить на сцену мувиклип. А он после подгрузки непонятно как располагается на сцене.
Ладно, на конкретном и упрощенном-укороченном примере :) На самом деле конечно нужно добавлять лисенер на загрузку объекта и т.п., но считаем, что объект подгружается мгновенно (с локалхоста) Все это компилировалось в Flex Builder 3 (AS project) Код:
package 1. подгружается test.swf, попытки установить ширину его приводят к визуальному исчезновению его со сцены - это баг, фича, недоработка? 2. при попытке в ASе установить ширину и высоту сцены ничего не получается, просто эти настройки игнорируются. 3. После компиляции в Flex Builder 3 получается, что сам display object (в данном случае лоадер, им может быть тот же мувиклип) ужимается в сцене. То есть, к примеру в html'e задаем width 550, height 150, сцена занимает 550*150, а сам объект короче и уже, несмотря на то, что размер самого объекта 550*150. Это баг? При этом, если в Flash CS3 создать пустой fla, сделать Document class TestClass и задать размер fla 550*150, то сцена занимает корректный размер и объект не ужимается. |
>>На самом деле конечно нужно добавлять лисенер на загрузку объекта и т.п., но считаем, что объект подгружается мгновенно (с локалхоста)
так нужно добавить и менять width по Event.COMPLETE "мгновенно" ничего происходит, даже в локале |
Ладно, на самом деле как управлять шириной мувика я разобрался.
Действительно у лоадера размерами управлять не получается. Нужно получать контент лоадера как мувиклип: Код:
loader.contentLoaderInfo.addEventListener(Event.INIT,onLoadMovie);Код:
private function onLoadMovie(e:Event):void |
А что вы понимаете под сценой? то, что было Stage'м в АС2 или DisplayObjectContainer в котором находится загруженный клип?
Если вариант 1 - то из самого флеша никак. Если вариант 2 - то свойства .width и .height... ЗЫ. в мануале ж написано, что stageWidht и stageHeight read-only. |
Может у каждого свой мануал? О_о
Flex Builder 3 и Flash CS3: Цитата:
Цитата:
Код:
stage.scaleMode = StageScaleMode.NO_SCALE; |
да, есть непонятка: никакой он не [read-write] выходит..
во флешке: Код:
stage.stageWidth = 150; stage.stageWidth : 986// размер окна в браузере stage.stageWidth : 300// флешка вставлена с width=300 т.е. налицо явный приоритет контейнера, в котором "живет" флешка, все потуги изнутри что-то изменить тщетны, имхо |
Цитата:
Цитата:
|
о как, и правда..,
однако затейливо: Цитата:
|
Цитата:
Второе - это то, что если не задать stage.scaleMode = StageScaleMode.NO_SCALE, то сцена после компиляции во флексе будет шире мувиклипа. Т.е. задаем в браузере 150*200 размер. Мувиклип сужается. При этом, если отслеживать систему координат, то крайняя точка мувиклипа {x:150;y:200}, но если считать в настоящих пикселах, то 150*200 пикселов занимает вся сцена (включая незаполненную область), а мувиклип меньше. А вот если создать в Flash CS3 пустой fla файл и задать размеры через Size во Flashе, то получается нормальная свфка. |
>>если не задать stage.scaleMode = StageScaleMode.NO_SCALE, то сцена после компиляции во флексе будет...
там же: Цитата:
ищи аналогичные настройки в FB.., размер основной сцены (флешки) - это настройки/директивы компилятора.. |
Цитата:
|
Кстати, вот подумал... а может сеттер для АИРа оставлен? Ну, в смысле в АИРе можно наверное изменять из флешки размер сцены.
|
Цитата:
|
Цитата:
Была приведена цитата из справки Flash, я привел ее окончание. |
Цитата:
|
у меня нет FB чтоб посмотреть где там это задается..
но можно и просто задать размеры в метаданных Код:
package |
Да, действительно можно, спасибо. Я с такой записью никогда не сталкивался
Код:
[SWF(width=990,height=720)] |
| Часовой пояс GMT +4, время: 12:09. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.