![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Nov 2007
Сообщений: 17
|
Рисую мувик, все работает, даже складывается впечатление, что AS не так уж и сложно... но начинаю подгружать текст из *.txt, он грузится, а вот применить к нему какие-нибудь настройки (КРОМЕ ВИЗИБЛА) не получается, не работает ни АЛЬФА, ни размер шрифта, ни межстрочный интервал (вроде ставлю и альфу и текстформат после загрузки текста, как по правилам).... может кто ошибку в коде найдет? Или есть другие объяснения... Заранее спасибо всем ответившим!!!
//создаю текстовое поле centralTX
_root.createTextField("centralTX",
this.getNextHighestDepth(), 0, 0, 500, 300);
_root.centralTX.multiline = true;
_root.centralTX.wordWrap = true;
//прячу на время
_root.centralTX._visible = false;
//ловлю действие мыши
_root.button.onRelease = function()
{
// .....код анимации.....
//загружаю текст
var loadtxt:LoadVars = new LoadVars();
loadtxt.load("clubText.txt");
loadtxt.onData = function(txt:String)
{
_root.centralTX.text = txt;
delete loadtxt;
}
//Загруженное поле делаю видимым плавно
_root.centralTX._visible = true;
_root.centralTX._alpha = 0;
_root.centralTX.onEnterFrame = function()
{
centralTX._alpha < 100 ?
centralTX._alpha += 2 : centralTX._alpha = 100;
}
//применяю форматирование
var formTX:TextFormat = new TextFormat();
formTX.size = 15;
formTX.leading = 10;
centralTX.setTextFormat (formTX);
}
Последний раз редактировалось iNils; 05.12.2007 в 03:09. |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
|
1. Альфа не работает потому, что должен быть вшит в ролик шрифт и у текстового поля должно стоять embed=true
2. Нарушена последовательность действий. Либо вы назначаете стиль до установки текста, тогда надо использовать setNewTextFormat, либо после и использовать ваш setTextFormat, но вся работа со стилем должна быть внутри события загрузки. 3. Вы уверены, что вам нужно использовать onData, а не onLoad? |
|
|||||
|
Modus ponens
|
Ко всему вышесказанному добавлю, что TextField не подписан на onEnterFrame, так что все изменения описанные в этой ф-ции происходить не будут.
__________________
Hell is the possibility of sanity |
|
|||||
|
Регистрация: Nov 2007
Сообщений: 17
|
to iNils:
1. спасибо, про embed не знал.... 2. помогло, работает 3. Я плохо представляю себе отличия, поэтому неуверен, просто с onData работает мне нужен текст который появляется на время и который можно выгрузить и загрузить на его же место (в тот же TextField) другой текст, из другого файла, для этих целий какой метод правильней использовать?to wvxvw: А не подскажете как подписать TextField на onEnterFrame? Это надо делать при создании Поля или при загрузке в поле текста? И кого вида синтаксис? |
|
|||||
|
Modus ponens
|
onEnterFrame - событие клипов, незачем его присваивать текстовым полям =)
чтобы создать програмную анимацию можно (проще) описать ее в onEnterFrame какого-нибудь клипа / в setInterval + updateAfterEvent. Чуть сложнее (но, зато + в управлении анимацией) - с помощью класа mx.transitions.Tween
__________________
Hell is the possibility of sanity |
|
|||||
|
Регистрация: Nov 2007
Сообщений: 17
|
to wvxvw да, но Вы выше писали, что если текстфилд не подписан на onEnterFrame, то изменения текста происходить не будут, а теперь пишете, что ТекстФилд не подписывается на onEnterFrame...... Не могли бы Вы поподробнее написать, что Вы имели ввиду? (В мувике я пользуюсь onEnterFrame при анимации назад и плавном изменении альфы...)
|
|
|||||
|
Modus ponens
|
onEnterFrame - это событие, которое возникает 1 раз в кадр =) Клип его "слышит" и выполняет то, что описано в функции с таким же названием. Текстовое поле по умолчанию это событие не слушает. Его можно на него подписать, но делать этого не стоит. Т.е. чтобы происходили какие-то изменения с текстом нужно описать в функции эти изменения и периодически вызывать эту функцию. onEnterFrame в этом случае удобен тем, что не нужно заботится о синхронном обновлении экрана + работает точнее, чем setInterval.
В этом же и заключается суть класса mx.transitions.Tween - создается клип, и в его onEnterFrame происходят изменения с обьектом, который нужно анимировать.
__________________
Hell is the possibility of sanity |
|
|||||
|
Регистрация: Nov 2007
Сообщений: 17
|
Спасибо огромное, теперь все гораздо понятнее!!! Буду пробовать...
|
|
|||||
|
Регистрация: Nov 2007
Сообщений: 17
|
Осталась проблема только в Альфе!
Делаю так: в библиотеке новый шрифт (выбираю Courier New) -> экспорт в AS (название Cur) -> пишу код(добавленное жирное): //создаю текстовое поле centralTX
_root.createTextField("centralTX",
this.getNextHighestDepth(), 0, 0, 500, 300);
_root.centralTX.multiline = true;
_root.centralTX.wordWrap = true;
_root.centralTX.embedFont = true
//прячу на время
_root.centralTX._visible = false;
//ловлю действие мыши
_root.button.onRelease = function()
{
// .....код анимации.....
//загружаю текст
var loadtxt:LoadVars = new LoadVars();
loadtxt.load("clubText.txt");
loadtxt.onData = function(txt:String)
{
_root.centralTX.text = txt;
delete loadtxt;
//применяю форматирование
var formTX:TextFormat = new TextFormat();
formTX.size = 15;
formTX.leading = 10;
centralTX.setTextFormat (formTX);
}
//Загруженное поле делаю видимым плавно
_root.centralTX._visible = true;
_root.centralTX._alpha = 0;
_root.centralTX.onEnterFrame = function()
{
centralTX._alpha < 100 ?
centralTX._alpha += 2 : centralTX._alpha = 100;
}
}
|
|
|||||
|
Modus ponens
|
ну нету у TextField события onEnterFrame! Просто для эксперимента, убери выделенный текст из своего кода. Это не самый хороший способ - делать какие-то операции с _root'ом, но как для примера - покатит.
__________________
Hell is the possibility of sanity |
![]() |
![]() |
Часовой пояс GMT +4, время: 03:33. |
|
|
« Предыдущая тема | Следующая тема » |
|
|