Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Выравние объекта по центру (http://www.flasher.ru/forum/showthread.php?t=117743)

alekson 05.11.2008 14:01

Выравние объекта по центру
 
Размер флешки при проектирование например 1024*768
Размер флешки в браузере 600*700
scaleMode="noScale";

как определить координаты спрайта чтобы он был центре флешки при любом заданном размере флешки в браузере?

Добавлено через 16 минут
Код:

                        progressBar.x=(1024-parentObject.loaderInfo.parameters.width)/2+parentObject.loaderInfo.parameters.width/2-width/2;
                        progressBar.y=(768-parentObject.loaderInfo.parameters.height)/2+parentObject.loaderInfo.parameters.height/2-height/2;


Silver Ghost 05.11.2008 14:20

Для спрайта на любой глубине.
Код:

var p:Point=sprite.parent.globalToLocal(new Point(stage.stageWidth / 2, stage.stageHeight / 2));
sprite.x = p.x;
sprite.y = p.y;


_Smirnoff 05.11.2008 20:17

sprite.x = (stage.stageWidth - sprite.width) / 2;
sprite.y = (stage.stageHeight - sprite.heigth) / 2;

поставь это на ресайз stage

s8000_1 05.11.2008 23:24

Цитата:

Сообщение от _Smirnoff (Сообщение 774934)
sprite.x = (stage.stageWidth - sprite.width) / 2;
sprite.y = (stage.stageHeight - sprite.heigth) / 2;

поставь это на ресайз stage

Если быть точнее :)
Код:

sprite.x = Math.round((stage.stageWidth - sprite.width) / 2);
sprite.y = Math.round((stage.stageHeight - sprite.heigth) / 2));


Silver Ghost 05.11.2008 23:50

И окончательный вариант:
Код:

function resizeHandler(event:Event):void {
        var localPoint:Point = sprite.parent.globalToLocal(new Point(Math.round((stage.stageWidth - sprite.width) / 2),
                                                                    Math.round((stage.stageHeight - sprite.height) / 2)));
        sprite.x = localPoint.x;
        sprite.y = localPoint.y;
}
stage.addEventListener(Event.RESIZE, resizeHandler);
resizeHandler(null);//ставим по центру при загрузке

Ничего не забыл?

_Smirnoff 06.11.2008 09:27

Код:

stage.dispatchEvent(new Event(Event.RESIZE));//ставим по центру при загрузке
А это то зачем? И зачем лишние движения с globalToLocal?

etc 06.11.2008 12:04

А вызвать обработчик принудительно не через dispatchEvent от stage не судьба была?


Часовой пояс GMT +4, время: 01:18.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.