AS2 Обнаружение размера сцены / репозиция MC при изменении размера и смене кадра - PullRequest
0 голосов
/ 15 июня 2011

Создание веб-сайта, который находится в полноэкранном режиме, в котором не было драмы.

Единственная проблема, с которой я сталкиваюсь, заключается в том, что если вы измените размер окна, а затем перейдете в новое меню, программное расположение элементов:то есть:

    contactheader._x = Stage.width / 2 - 252;
    contactheader._y = Stage.height / 2 - 264;


не срабатывает, пока вы не «поднимете» его, снова изменив размер окна.См. Здесь живой пример с шагами, чтобы увидеть проблему:

http://flash.pcfuse.com/

Файлы проекта здесь: http://flash.pcfuse.com/mySite.zip

Что я могу сделать, чтобы элементы не игнорировалисьих собственное программное позиционирование ??

Спасибо, любезно

Ответы [ 3 ]

1 голос
/ 16 июня 2011
function setStage ()
{
    var sw:Number = Stage.width;
    var sh:Number = Stage.height;

    tabbar._x = Stage.width / 2;
    tabbar._y = Stage.height - 98;

    google._x = Stage.width / 2 - 183;
    google._y = Stage.height / 2 + 28;

    about_txt._x = Stage.width / 2 - 376;
    about_txt._y = Stage.height / 2 - 263;

}

// Add a listener
var stageListener:Object = new Object ();
Stage.addListener (stageListener);

// When the Stage dimensions change...
stageListener.onResize = setStage;

// Call our function to set it all up right!
setStage ();


Понял;)

0 голосов
/ 09 января 2013

Попробуйте это:

onEnterFrame = function(){
   contactheader._x = Stage.width / 2 - 252;
   contactheader._y = Stage.height / 2 - 264;
}

Если в какой-то момент вы не хотите, чтобы он обновлял свою позицию, используйте:

onEnterFrame = null;
0 голосов
/ 15 июня 2011

Я думаю, что проблема, с которой вы можете столкнуться, заключается в том, что, когда вы переходите в разные разделы вашего приложения Flash, вы добавляете прослушиватель событий, чтобы ваши экранные объекты располагались правильно при изменении размера.Однако вы не делаете никакого динамического позиционирования этих объектов при фактическом переходе к этому разделу.

Чтобы уточнить, когда флеш-элемент загружается впервые, он захватывает высоту и ширину сцены, выполняет ли это размещение объектов в этих вычислениях изатем сидит там.Когда вы нажимаете на вкладки, они не перезагружают эти объекты и не перемещают их, потому что это произошло при первом запуске приложения.Он установит их на место, как только вы начнете изменять размер swf, потому что именно это и должно делать событие onresize.

Я бы предложил написать функцию, которая выполняет позиционирование объектов в каждом разделе,затем вызывайте его всякий раз, когда вы нажимаете на конкретный раздел, который вы хотите открыть при нажатии на вкладку, а затем вызываете эту функцию из события onresize.

...