Форум программистов, компьютерный форум, киберфорум
ActionScript
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 21.05.2016
Сообщений: 5
1
AS 3.0

Как сделать так, что бы окно перемещалось когда разворачиваешь окно

21.05.2016, 16:09. Показов 1386. Ответов 9
Метки нет (Все метки)

Например я сделал ГУИ, в AS3
А вот как сделать что бы окна были связаны в окне, кто не поймёт в вот скрин
Миниатюры
Как сделать так, что бы окно перемещалось когда разворачиваешь окно   Как сделать так, что бы окно перемещалось когда разворачиваешь окно  
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.05.2016, 16:09
Ответы с готовыми решениями:

Как сделать так, чтобы когда разворачиваешь форму, элементы растягивались по ней, а не уходили в угол?
Как сделать так, чтобы когда разворачиваешь форму, элементы растягивались по ней, а не уходили в...

Как сделать так, что бы окно блокировалось?
Делаем какие то действия в JFrame. Выскакивает новый JFrame. Теперь необходимо, что бы стары...

MessageBox: Как сделать так, чтобы если окно модальное, при клике на родительское окно MessageBox мигал?
Здравия всем! Никак не найду нужный MB_*, как можно сделать так, чтобы если сделать MessageBox...

Как сделать так, что бы после начала игры, активным было OpenGL-окно, а не консольное?
Всем привет, у Меня тут такая проблемка, даже не знаю как искать ее решение в гугле, вот и решил...

9
154 / 136 / 51
Регистрация: 28.11.2009
Сообщений: 460
Записей в блоге: 14
21.05.2016, 16:37 2
Sascha76u, имеете в виду то, что как сделать, чтобы при масштабировании окна всё содержимое тоже масштабировалось?
0
0 / 0 / 0
Регистрация: 21.05.2016
Сообщений: 5
21.05.2016, 17:11  [ТС] 3
Nikto, Да !
0
154 / 136 / 51
Регистрация: 28.11.2009
Сообщений: 460
Записей в блоге: 14
21.05.2016, 17:43 4
Лучший ответ Сообщение было отмечено Sascha76u как решение

Решение

Sascha76u, используйте коэффициенты масштабирования.
Добавьте обработчик события для отслеживания изменения размеров окна.
ActionScript 3
1
stage.addEventListener(Event.RESIZE, resizeDisplay);
Внутри обработчика пропишите
ActionScript 3
1
2
3
4
5
6
var koefW: Number = stage.stageWidth / ШИРИНА_ЭКРАНА_КОТОРАЯ_В_НАСТРОЙКАХ_ПРОЕКТА;
var koefH: Number = stage.stageHeight / ВЫСОТА_ЭКРАНА_КОТОРАЯ_В_НАСТРОЙКАХ_ПРОЕКТА;
ваша_картинка.width *= koefW;
ваша_картинка.height *= koefH;
другая_ваша_картинка.width *= koefW;
другая_ваша_картинка.height *= koefH;
1
0 / 0 / 0
Регистрация: 21.05.2016
Сообщений: 5
21.05.2016, 17:53  [ТС] 5
Nikto, Я что то не понял (Новенький в AS3)
Вот мой код класса:
ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
package GTanks.Sascha76u 
{
    import controls.ColorButton;
    import controls.Label;
    import controls.TankInput;
    import controls.TankWindow;
    import flash.display.Sprite;
    import flash.display.Stage;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import flash.ui.Mouse;
    import flash.ui.MouseCursor;
    import flash.events.TextEvent;
    import controls.panel.Indicators;
    import controls.rangicons.RangIconNormal;
    import controls.RedButton;
    import controls.BigButton;
    import assets.icons.BattleInfoIcons;
    import MainPanelBattlesButton;
    import MainPanelCloseButton;
    import flash.net.SharedObject;
    import MainPanelGarageButton;
    import MainPanelHelpButton;
    import MainPaneHallButton;
    import controls.TankWindowInner;
    import fl.controls.listClasses.ImageCell;
    import MainPanelSoundButton;
    import MainPanelConfigButton;
    
    public class Gui extends Sprite
    {
        [Embed(source = "../data/228.png")]
        static private var image:Class
        
        private var _stage:Stage;
        private var b:TankWindow = new TankWindow(380, 550);
        private var d:TankInput = new TankInput();
        private var e:ColorButton = new ColorButton();
        private var g:Alert;
        private var v:Indicators = new Indicators();
        private var spisok:TankWindow = new TankWindow(380, 550);
        private var gg:* = new image;
        private var rang:RangIconNormal = new RangIconNormal();
        private var q:RedButton = new RedButton();
        private var infa:TankWindow = new TankWindow(380, 550);
        private var big:BigButton = new BigButton();
        private var text:Label = new Label();
        private var timer:BattleInfoIcons = new BattleInfoIcons();
        private var ol:MainPanelBattlesButton = new MainPanelBattlesButton();
        private var exit:MainPanelCloseButton = new MainPanelCloseButton();
        private var so:SharedObject = SharedObject.getLocal("login");
        private var garage:MainPanelGarageButton = new MainPanelGarageButton();
        private var help:MainPanelHelpButton = new MainPanelHelpButton();
        private var al:MainPaneHallButton = new MainPaneHallButton();
        private var i:TankWindowInner = new TankWindowInner();
        private var pisa:TankWindowInner = new TankWindowInner();
        private var vv:* = new image; 
        private var priv:TankWindowInner = new TankWindowInner();
        private var pi:TankWindowInner = new TankWindowInner();
        private var liv:* = new image;
        private var sound:MainPanelSoundButton = new MainPanelSoundButton();
        internal var sup:MainPanelConfigButton = new MainPanelConfigButton();
        
        public function Gui(a:Stage):void
        {
            _stage = a;
            _stage.addEventListener(Event.RESIZE, draw);
            g = new Alert(_stage);
            vv.x = 392;
            vv.y = 113;
            vv.width = 355;
            vv.height = 493;
            priv.x = 390;
            priv.y = 113;
            priv.width = 359;
            priv.height = 493;
            pisa.x = 13;
            pisa.y = 113;
            pisa.width = 359;
            pisa.height = 493;
            gg.x = 14;
            gg.y = 114;
            gg.width = 358;
            gg.height = 492;
            i.x = 395;
            i.y = 700;
            i.width = 356;
            i.height = 220;
            al.x = 931;
            al.y = 4;
            al.label = "Зал славы";
            help.x = 1080;
            help.y = 4;
            garage.x = 835;
            garage.y = 4;
            garage.label = "Гараж";
            //Текст для гуи
            //Поле для ввода
            d.x = 10;
            d.y = 508;
            d.width = 260;
            d.addEventListener(MouseEvent.ROLL_OVER, function(e:Event):void {
                Mouse.cursor = MouseCursor.IBEAM;
            });
            d.addEventListener(MouseEvent.ROLL_OUT, function(e:Event):void {
                Mouse.cursor = MouseCursor.ARROW;
            });
            //Кнопка закрыть игру
            exit.x = 1114;
            exit.y = 5;
            //Кнопка чата
            e.label = "Сказать";
            e.x = 275;
            e.y = 508;
            e.width = 50;
            e.setStyle("def");
            e.addEventListener(MouseEvent.ROLL_OVER, function(e:Event):void {
                Mouse.cursor = MouseCursor.BUTTON;
            });
            e.addEventListener(MouseEvent.ROLL_OUT, function(e:Event):void {
                Mouse.cursor = MouseCursor.ARROW;
            });
            e.addEventListener(MouseEvent.CLICK, function(a:Event):void {
                
            });
            //Окно чата
            spisok.headerLang = "ru";
            spisok.header = 6;
            //Звание
            rang.x = 3;
            rang.y = 1;
            //Окно хз
            b.headerLang = "ru";
            b.header = 5;
            infa.headerLang = "ru";
            infa.header = 7;
            //Кнопка играть
            big.label = "Играть";
            big.enable = false;
            big.x = 1004;
            big.y = 589;
            //Таймер
            timer.x = 500;
            timer.y = 324;
            //Кнопка "Битвы"
            ol.label = "Битвы";
            ol.x = 740;
            ol.y = 4;
            //Кнопка "Создать" битву
            q.label = "Создать";
            q.x = 275;
            q.y = 510;
            //Текст счёта
            text.x = 600;
            text.y = 500;
            text.htmlText = "0";
            text.color = 0xFF0000;
            text.size = 21;
            //Прогресс ранга (Индикатор)
            v.x = 65;
            v.y = 4;
            v.width = 700;
            liv.x = 772;
            liv.y = 340;
            liv.width = 353;
            liv.height = 244;
            sound.x = 1050;
            sound.y = 4;
            //Рамка битвы (Не окна);
            pi.x = 770;
            pi.y = 340;
            pi.width = 355;
            pi.height = 244;
            sup.x = 1020;
            sup.y = 4;
            sup.addEventListener(MouseEvent.ROLL_OVER, function(e:Event):void {
                Mouse.cursor = MouseCursor.BUTTON;
            });
            sup.addEventListener(MouseEvent.ROLL_OUT, function(e:Event):void {
                Mouse.cursor = MouseCursor.ARROW;
            });
            sup.addEventListener(MouseEvent.CLICK, function(a:Event):void {
                addChild(new Settings(_stage));
            });
            //Чилды
            b.addChild(d);
            b.addChild(e);
            addChild(b);
            addChild(v);
            addChild(spisok);
            addChild(gg);
            addChild(rang);
            spisok.addChild(q);
            addChild(infa);
            addChild(big);
            addChild(text);
            addChild(timer);
            addChild(ol);
            addChild(exit);
            addChild(garage);
            addChild(help);
            addChild(al);
            addChild(i);
            addChild(pisa);
            addChild(vv);
            addChild(priv);
            addChild(liv);
            addChild(pi);
            addChild(sound);
            addChild(sup);
            //Конец
            draw();
        }
        //Расположение окон
        private function draw(e:Event = null):void {
            b.x = 2;
            b.y = 100;;
            //Список битв
            spisok.x = 380;
            spisok.y = 100;
            //Информация о битве
            infa.x = 758;
            infa.y = 100;
            
            i.x = 770;
            i.y = 115;
        }
    }
 
}
0
154 / 136 / 51
Регистрация: 28.11.2009
Сообщений: 460
Записей в блоге: 14
21.05.2016, 18:33 6
Sascha76u, вот у вас в коде координаты позиции заданы жёстко числами, также и размеры. Вам нужно размеры и позиции задать через коэффициенты масштабирования.

Это у вас флешка или air приложение? Если флешка, то зачем вам вообще насчёт этого заморачиваться?
1
0 / 0 / 0
Регистрация: 21.05.2016
Сообщений: 5
21.05.2016, 18:34  [ТС] 7
Nikto, Флешка у меня
0
0 / 0 / 0
Регистрация: 21.05.2016
Сообщений: 5
21.05.2016, 18:55  [ТС] 8
Nikto, Мдэ, список теперь вообще пропал ((
Миниатюры
Как сделать так, что бы окно перемещалось когда разворачиваешь окно  
0
154 / 136 / 51
Регистрация: 28.11.2009
Сообщений: 460
Записей в блоге: 14
21.05.2016, 19:17 9
Sascha76u, позицию то, тоже менять надо.
Изначально позицию не задавайте числом. Рассчитывайте через коэффициент, например, если объект должен находится примерно начиная с четверти экрана, то пишите:
ActionScript 3
1
объект.x = 0.25 * stage.stageWidth;
Это же дублируете в функции resizeDisplay
0
TanaTiX
22.05.2016, 07:53     AS 3.0 Как сделать так, что бы окно перемещалось когда разворачиваешь окно
  #10

Не по теме:

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

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.05.2016, 07:53

как сделать так,чтобы когда я нажимаю кнопку закрыть в правом верхнем углу выходило окно сообшение?(типа вы хотите закрыть программу/да или нет/)
как сделать так,чтобы когда я нажимаю кнопку закрыть в правом верхнем углу выходило окно...

Как сделать что перемещалось на 5 вправо?
var p = transform.position; p.x = endPoint; // конечная точка по Х transform.position =...

Можно ли сделать так, что окно программы по умолчанию появлялось на втором мониторе (secondary display)
Доброго времени суток. Есть ли возможность создать и показать окно сразу на втором мониторе, чтоб...

Как перейти на второе окно, что бы первое окно закрылось (NetBeans)
Здравствуйте. Работаю с NetBeans. Например: запускаю программу, открывается окно, нажимаю кнопку...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru