![]() |
|
||||||||||
|
|||||
|
Регистрация: May 2006
Сообщений: 36
|
Есть такой вот класс (урезанный). В нём я хочу создать текстовое поле, задать ему TextFormat, присвоить некую переменную и в каждом кадре отслеживать изменение этой переменной. Не получается в классе задавать TextFormat. Подозреваю, что надо импортировать некий встроенный класс для текста, чтобы получить возможность использовать все его свойства и методы (как, например, с мувиком).
Пробовал задавать формат в руте, а в классе на него ссылаться. В таком случае класс компилится, поля создаются, но TextFormat не работает. Классы только начал осваивать, советы типа "Иди читай то-то и то-то" приветствуются )import mx.utils.Delegate;
class Zig_game.Interface {
// Очки
public var _score:Number = null;
public var _scoreText = null;
public var _iface:MovieClip;
// Параметры текстовых полей для очков и континиусов
var my_fmt:TextFormat = new TextFormat();
my_fmt.color = 0xCBCBCB;
my_fmt.size = 10;
my_fmt.align = "center";
my_fmt.font = "Trebuchet MS";
// Конструктор
function Interface() {
_score = 0;
// Создаем текстовые поля под континиусы и очки
_scoreText = _root.createTextField("score_txt", 15006, 126, 11, 70, 15);
_scoreText.setTextFormat(my_fmt);
// Аттачим интерфейс, хп зига
_iface = _root.attachMovie("interface", "interface", 15001, {_x:0, _y:0});
updater();
}
function updater() {
_iface.onEnterFrame = Delegate.create(this, updateInterface);
}
function updateInterface() {
_scoreText.text = _score;
}
}
|
|
|||||
|
Регистрация: Jul 2006
Сообщений: 170
|
class Zig_game.Interface {
private var _iface:MovieClip;
private var _scoreTextField:TextField
private var my_fmt:TextFormat
private var _scoreText:Number
// Конструктор
function TextFormatClass() {
_scoreText=0
my_fmt = new TextFormat();
my_fmt.color = 0x010101;
my_fmt.size = 30;
my_fmt.align = "center";
my_fmt.font = "Arial";
_scoreTextField = _root.createTextField("score_txt", 15006, 126, 11, 70, 55)
updater();
}
function updater() {
_scoreTextField.text = String(_scoreText)
_scoreTextField.setTextFormat(my_fmt);
}
}
|
|
|||||
|
Регистрация: May 2006
Сообщений: 36
|
MrPoma,
Почему наследовать от Мувиклипа? Я думал об этом, но посчитал избыточным и просто неудобным в силу того, что проще аттачить 2 текстовых поля и 3 мувика (а именно столько мне надо) не в руте, а непосредственно в классе. Возможно, я чего-то не знаю, но создание экземпляра при подобном наследованим будет выглядеть как: var iface:Interface = Interface(this.attachMovie("interface", "interface", _root.getNextHighestDepth(), {_x:x, _y:y});
)Silin, Видимо чего-то не хватает. При отладке ругается на задание свойств my_fmt: "This statement is not permitted in a class definition." tikhop, Спасибо, если немного адаптировать - всё работает. Silin, Пока разбирался с кодом от tikhop, понял главное, чего не хватало - объявления my_fmt как переменной типа TextFormat. Спасибо, тоже подходит. |
![]() |
![]() |
Часовой пояс GMT +4, время: 23:38. |
|
|
« Предыдущая тема | Следующая тема » |
|
|