Я работаю с гибким проводом, но actionscript идеи так же хороши.
Гибкий провод <s:Application>
тег имеет height="100%" width="100%"
таким образом, swf соответствует браузеру, поскольку браузер изменен.
Моя проблема состоит в том, что у меня есть a <s:Label>
то, что я должен расположить на основе реального/текущего размера браузера.
<s:Application height="100%" width="100%">
.....
<s:Label text="hello" x="?" y=">" />
</s:Application>
Я слышал, что возможно использовать Application.application.width;
но я получаю ошибку компиляции, что она не знает, каково это.
Любые идеи, как сделать это. Я пытаюсь получить текущий размер swf в браузере, поскольку браузер изменяет размер.
Насколько я могу судить, следующее должно работать. Application.application просто то же самое, что и это, при условии, что вы находитесь в базовом приложении. Привязка должна позволять изменять размер после инициализации.
<s:Application height="100%" width="100%">
.....
<s:Label text="hello" x="{width}" y="" />
</s:Application>
Редактировать: Я только что проверил, и это действительно работает. Чтобы поместить ваш Label в середину сцены, вы просто должны поместить его так
<s:Application height="100%" width="100%">
.....
<s:Label text="hello" x="{width/2}" y="{height/2}" />
</s:Application>
вы можете узнать размер сцены только тогда, когда элемент добавляется внутри сцены, вы можете попробовать такой делегат события
app.addEventListener(Event.ADDED_TO_STAGE,init); private function init(evt:Event):void{ trace(stage.stageWidth); trace(stage.stageHeight); }
Вызов функции JavaScript при изменении размера браузера. Оттуда получите ссылку на swf и вызовите функцию AS, чтобы изменить размер метки. Передайте ширину / высоту браузера.
См. Пример здесь
ОБНОВЛЕНИЕ: Исправление: ExternalInterface переходит от AS к JS.
Не совсем понятно, что вы пытаетесь сделать. x
и y
- это позиционные элементы, ширина
и высота
- это элементы размера. Если вы размещаете этикетку, вам, вероятно, следует использовать верхний, левый, правый
и нижний
, а не x
и y
, если хотите. по размеру как размеры родительского элемента управления.
Если вы хотите, чтобы метка была центрирована, вы можете использовать horizontalCenter
и verticalCenter
.
Если вы поместите его в элемент управления макетом, например панель
или холст
, вы можете просто установить для его слева
и справа
значение 0 и имеют размер родительского холста.
Если ваша метка всегда находится в другом месте в зависимости от размера, вы можете переопределить updateDisplayList
, чтобы установить позицию. Это действует независимо от того, помещаете ли вы его в элемент управления макетом или нет.