Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Декартова система координат с начальной точкой в центре stage (http://www.flasher.ru/forum/showthread.php?t=183066)

wisconsin 10.08.2012 17:51

Декартова система координат с начальной точкой в центре stage
 
декартова система координат с начальной точкой в центре stage

собственно как реализовать

samana 10.08.2012 19:29

Прибавляйте к вашим координатам половину размера сцены по высоте и ширине.
Либо делайте в отдельном спрайте, а сам спрайт поставьте в центр сцены.

wisconsin 10.08.2012 23:18

хотелось бы узнать как двигать stage. никак не найду нужного свойства... спасибо

Wolsh 10.08.2012 23:32

1. Стейдж не может двигаться, это пространство окна плеера.
2. Стейдж тут вообще не при чем. Есть экземпляр ДокументКласса, и все объекты должны добавляться в его список отображения, а не в список стейджа. А вот документКласс-то (рут) можно смело сдвинуть на середину.

wisconsin 11.08.2012 01:06

Цитата:

Сообщение от Wolsh (Сообщение 1091785)
Есть экземпляр ДокументКласса, и все объекты должны добавляться в его список отображения, а не в список стейджа. А вот документКласс-то (рут) можно смело сдвинуть на середину.

Код AS3:

 
package {
        import flash.display.MovieClip;
 
        public class MainClass extends MovieClip
        {
                //Как теперь двигать?
        }
}


Sintesis 11.08.2012 01:24

Если двигать MainClass то
Код AS3:

 
package {
        import flash.display.MovieClip;
 
        public class MainClass extends MovieClip
        {
                this.x = 100;
                this.y = 100;
        }
}

Если самый низ как Wolsh сказал то: stage.root.x = 100; stage.root.y = 100

Wolsh 11.08.2012 01:37

Да. Ну, по-хорошему конечно надо подписаться на ADDED_TO_STAGE, в хендлере установить настройки скейла (stage.scaleMode = StageScaleMode.NO_SCALE) и привязки (stage.align = StageAlign.TOP_LEFT), и подписаться на Event.RESIZE от полученного стейджа (и не забыть вызвать хендлер ресайза вручную), а в хендлере ресайза уже устанавливать положение в зависимости от размеров сцены, то есть stage.stageWidth/2 и stage.stageHeight/2, а не хардкодить "100"))

Sintesis 11.08.2012 01:53

Ну это обязательно. Лень мне было целую точку входа писать...

caseyryan 11.08.2012 09:45

Цитата:

Да. Ну, по-хорошему конечно надо подписаться на ADDED_TO_STAGE
Зачем это делать для документ класса? В нем stage уже в конструкторе доступна. По-моему это просто лишние телодвижения и лишнее нагромождение в коде. Я не сталкивался ни с однм случаем, когда обращение к стейдж в конструкторе документ класса приводило бы к обращению к несуществующему объекту

wisconsin, о декартовой системе задумываются многие начинающие программисты. Но, это лишнее (если конечно не стоит задачи реализовать какой-то график функции, например). Стоит привыкнуть к существующей системе, ничего плохого в ней нет

Wadimir 11.08.2012 12:18

Цитата:

Сообщение от caseyryan (Сообщение 1091808)
В нем stage уже в конструкторе доступна.

А если делать проект в FlashBuilder-e ???


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

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