Изменение размера рабочей области во время выполнения в AS3 - PullRequest
0 голосов
/ 23 марта 2012

Можем ли мы изменить размер сцены во время выполнения?

Мне нужно динамически изменять размер сцены во время выполнения, когда SWF-файл получает flashvar со страницы HTML.Можно ли это сделать?

Ответы [ 2 ]

3 голосов
/ 23 марта 2012

Если вы измените размер элементов <object> / <embed> в своем HTML, это изменит размер этапа SWF.

Однако содержимое SWF будет масштабироваться, если только вы не укажете, что в AS3 не будет масштабирования:

stage.scaleMode = StageScaleMode.NO_SCALE;

Также важно отметить при работе с масштабируемыми SWF-файлами, что по умолчанию экспортированные размеры рабочей области всегда будут находиться по центру в пределах области с измененным размером, например,

enter image description here

Мне проще, когда все измеряется от верхнего левого угла изменяемой области, что также можно сделать, добавив следующее:

stage.align = StageAlign.TOP_LEFT;
0 голосов
/ 23 марта 2012

Можно использовать flash.external.ExternalInterface

if (ExternalInterface.available) {
    ExternalInterface.call('JSResizeBlockFunction');
}

JSResizeBlockFunction должна быть функцией javascript, определенной на верхнем уровне на той же странице, что и запущенный swf.

В этой функции вы должны изменить размерdiv, в который входит <object> / <embed>.Но ваш SWF-файл на странице должен иметь размер в процентах для получения события RESIZE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...