PDA

Просмотр полной версии : TextField (где ошибка?)


as_68
09.01.2004, 12:03
Есть мувик на нем скрипт:
onClipEvent (load) {
this.createTextField("mytext", 1, 0, 0, 270, 100);
mytext.selectable = false;
mytext.type = "dynamic";
mytext.multiline = true;
mytext.wordWrap = true;
mytext.text = "sdklj kshdlfhsd lksdjflk klsdjlj lkjdsi ioiurfgi .kjsdfkgoirfgj kjlkf";
prostotxt = new TextFormat();
prostotxt.font = "Arial Cyr";
prostotxt.size = 11;
prostotxt.color = 0x00000f;
prostotxt.bold = true;
prostotxt.italic = false;
prostotxt.underline = false;
prostotxt.url = "";
prostotxt.target = "";
prostotxt.align = "left";
prostotxt.leftMargin = 0;
prostotxt.rightMargin = 0;
prostotxt.indent = 0;
prostotxt.leading = 0;
prostotxt.bullet = false;
mytext.setTextFormat(prostotxt);
overtxt = new TextFormat();
overtxt.underline = true;
overtxt.color = 0x000000;
prestxt = new TextFormat();
prestxt.color = 0x666666;
}
onClipEvent (enterFrame) {
onRollOver = function () {
mytext.setTextFormat(overtxt);
};
onRollOut = function () {
mytext.setTextFormat(prostotxt);
};
onRelease = function () {
mytext.setTextFormat(prestxt);
trace("mytext.textColor "+mytext.textColor);
_root.gotoAndPlay(10);
};
trace("mytext.textColor "+mytext.textColor);
}

Подскажите, пожалуйста:

1.почему не работает
trace("mytext.textColor "+mytext.textColor);

2.как зафиксировать цвет после onRelease

начинающий
09.01.2004, 13:44
1) вместо:
trace("mytext.textColor "+mytext.textColor);
попробуйте:
trace("mytext.textColor: #"+ mytext.getTextFormat().color.toString(16));

2) там всё ОК! onRelease работает, просто видимо сразу же после этого события Вы инициируете событие onRollOut, которое уничтожает всё то хорошее, что было сделанно до него.

начинающий
09.01.2004, 14:00
1) вместо:
trace("mytext.textColor "+mytext.textColor);
попробуйте:
trace("mytext.textColor: #"+ mytext.getTextFormat().color.toString(16));

2) там всё ОК! onRelease работает, просто видимо сразу же после этого события Вы инициируете событие onRollOut, которое уничтожает всё то хорошее, что было сделано до него.

as_68
09.01.2004, 15:06
по п.1 спасибо

по п.2: мне надо зафиксировать этот серый цвет при переходе на 10 кадр

попробовал с помощью цвета отслеживать переход,
но что-то не "хотит"


onClipEvent (enterFrame) {
if (mytext.getTextFormat().color.toString(16) != 666666) {
onRollOver = function () {
mytext.setTextFormat(overtxt);
};
onRollOut = function () {
mytext.setTextFormat(prostotxt);
};
onRelease = function () {
mytext.setTextFormat(prestxt);
_root.gotoAndPlay(10);
};
}
}

начинающий
09.01.2004, 17:59
if (mytext.getTextFormat().color.toString(16) != 666666) {
не будет работать в любом случае: 666666 и 0x666666 - разные вещи!

as_68
12.01.2004, 01:26
А как тогда задать 0x666666 ?

начинающий
12.01.2004, 19:14
Зачем преобразовывать цифру в строку, да еще и в НЕХ-виде, чтобы потом сравнивать с десятичной цифрой? Достаточно написать: if (mytext.getTextFormat().color != 0x666666), а то иначе Вы не сможете проверить цвет, в коде которого хоть одна тетрада больше девяти (напр: #6699CC, #FFFFFF). Ведь это уже логическая ошибка! А ошибки подобного рода чрезвычайно сложно отследить. Так что пишите хорошим стилем, и воздастся Вам с торицей!