Просмотр полной версии : Размещение созданого програмно текстового поля ровно по центру
Добрый вечер. Вопрос думаю простой но я что-то не могу найти ответ на него.
Делаю прилоадер картинок и програмно создаю текстовое поле в котором будут отображаться проценты.
Ставлю его по центру сцены:
Stage.width/2
Stage.height/2
Но он немного не по центру получается так как точка отсчёта этого текста по умолчанию "TL". Как сделать что б это точка была по центру?
Спасибо.
Сместить на половину ширины и высоты текстовое поле?
Да, я так и делаю. Это единственный вариант?
this.yourTextField.x = Stage.width / 2 - this.yourTextField.width / 2;
this.yourTextField.y = Stage.height / 2 - this.yourTextField.height / 2;
Update: для отслеживания изменения размера экрана можно сделать так. Ваше поле будет всегда по центру экрана.
var dept:Number = 1000; // some depth
this.createTextField('yourTextField', depth, 0, 0, 0, 0);
this.yourTextField.text = 'Hello, World! :)';
this.yourTextField.autoSize = 'center';
this.onResize();
this.onResize = function():Void {
this.yourTextField.x = Stage.width / 2 - this.yourTextField.width / 2;
this.yourTextField.y = Stage.height / 2 - this.yourTextField.height / 2;
};
Stage.addListener(this);
Art_133, если бы вы так делали, вопроса бы не было.
dimarik, ай-яй-яй!
Уважаемый __etc, поясните свою мысль по поводу "dimarik, ай-яй-яй!" =)
dimarik, два раза пополам делишь, а мог бы и один :quiet:
а я вроде поправил давно :rolleyes:
Неа, ничего не поправил. Разность ширины стейджа и текстового поля можно было посчитать и поделить в конечном итоге единственный раз, а не высчитывать разницу половины ширины стейджа и половины ширины текстового поля.
Art_133, если бы вы так делали, вопроса бы не было.
dimarik, ай-яй-яй!
Вопрос возник потому что я считаю что есть болие рациональное решение чем делить ширину текстового поля, к примеру:
мой_текст.align = "C"
Art_133, это что за новый тип алигна? И без точки с запятой после.
Art_133, да ну? А давно такое свойство, как align, образовалось у TextField, да ещё с подобным значением?
__etc , ширина текстового поля определяется текстом его содержащим. При изменении текста следовало бы ввести поддержку события onChangeTextValue, например. Потому пересчет ширины не счтитаю зазорным. А по поводу высоты Вы правы.
var dept:Number = 1000; // some depth
this.createTextField('yourTextField', depth, 0, 0, 0, 0);
this.yourTextField.text = 'Hello, World! :)';
this.yourTextField.autoSize = 'center';
var yourTextFieldHalhHeight:Number = this.yourTextField.height / 2;
this.onResize();
this.onResize = function():Void {
this.yourTextField.x = Stage.width / 2 - this.yourTextField.width / 2;
this.yourTextField.y = Stage.height / 2 - this.yourTextFieldHalhHeight;
};
Stage.addListener(this);
Дима, всё просто, фиг бы с ней, с высотой. Просто и легко:
(Stage.width - this.yourTextField.width) / 2;
А-а-а-а! Семён Семёныч! (с) Бриллиантовая рука. Математика, какой-то класс =)
Кстати, не width, а _width :)
Аха, недоглядел. Сложно переключаться с ас3 на ас2 и наоборот. А у Stage.width так и есть =)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.