Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   TextField (где ошибка?) (http://www.flasher.ru/forum/showthread.php?t=53498)

as_68 09.01.2004 12:03

TextField (где ошибка?)
 
Есть мувик на нем скрипт:
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). Ведь это уже логическая ошибка! А ошибки подобного рода чрезвычайно сложно отследить. Так что пишите хорошим стилем, и воздастся Вам с торицей!


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

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