|
|
|||||
Регистрация: Feb 2012
Сообщений: 47
|
Анимация исчезновения
мне нужно чтоб текст (nam) исчезал через каждые 0,01 секунды я набросал вот такой код:
package p { import flash.display.*; import flash.utils.*; import flash.net.*; import flash.events.*; import flash.text.*; import flash.display.Sprite; import flash.display.DisplayObjectContainer; public class DrawName extends MovieClip { private var nam; private var cont:Sprite = new Sprite(); private var timer; public function DrawName() { } public function drawNam(){ trace('Класс, анимирующий название модуля'); this.nam = new CreateButton('Кожа', 30, 0xff0000, "Times New Roman", true, false, 90, 60, 100, 100, TextFieldAutoSize.CENTER, TextFormatAlign.CENTER, false, null, false, null, false, null); this.cont.addChild(nam); this.cont.alpha = 1; addChild(cont); this.timer = new Timer(100, 0); this.timer.addEventListener(TimerEvent.TIMER, timerListener); this.timer.start(); } private function timerListener(e:TimerEvent) { trace(this.cont.alpha); this.cont.alpha -= 0.01; addChild(cont); } } } я с таймером еще не встречался поэтому сразу извините если где-то что-то глупо |
|
|||||
А что не работает? Или это урок? Если так, то слабенький вышел, но все равно похвально.
По сабжу. Во-первых 0,01 секунда - это 10 мс, а не 100, как у вас. Но выставлять такие маленькие таймеры, на сколько помню, даже адоб не рекомендует. Таймер вечен, а должен останавливаться. Еще не понятно что такое CreateButton. Ну и название класса не совсем вяжется с его потенциальными возможностями.
__________________
Ну все, теперь Забава м-о-я. Гы-гы, а корабль мой! |
|
|||||
Регистрация: Feb 2012
Сообщений: 1,540
|
Немного поправлю:
package p { import flash.display.*; import flash.utils.*; import flash.net.*; import flash.events.*; import flash.text.*; import flash.display.Sprite; import flash.display.DisplayObjectContainer; public class DrawName extends MovieClip { private var nam; private var cont:Sprite = new Sprite(); private var timer; public function DrawName() { } public function drawNam(){ this.nam = new CreateButton('Кожа', 30, 0xff0000, "Times New Roman", true, false, 90, 60, 100, 100, TextFieldAutoSize.CENTER, TextFormatAlign.CENTER, false, null, false, null, false, null); this.cont.addChild(nam); this.cont.alpha = 1; addChild(cont); this.timer = new Timer(10, this.cont.alpha/0.01); this.timer.addEventListener(TimerEvent.TIMER, timerListener); this.timer.start(); } private function timerListener(e:TimerEvent) { this.cont.alpha -= 0.01; addChild(cont); } } } |
|
|||||
Регистрация: Feb 2012
Сообщений: 47
|
CraeateButton отвечает за создание кнопок(что чаще) и текста. И не надо ничего больше про это. Ограничение на таймер поставил ничего не появилось. И кстати пробовал и раз в секунду делать тож ничего. добавлял updateAfterEvent все равно ничего
Добавлено через 1 минуту вот что сейчас у меня package p { import flash.display.*; import flash.utils.*; import flash.net.*; import flash.events.*; import flash.text.*; import flash.display.Sprite; import flash.display.DisplayObjectContainer; public class DrawName extends MovieClip { private var nam; private var cont:Sprite = new Sprite(); private var timer; public function DrawName() { } public function drawNam(){ trace('Класс, анимирующий название модуля'); this.nam = new CreateButton('Кожа', 30, 0x000000, "Times New Roman", true, false, 90, 60, 100, 100, TextFieldAutoSize.CENTER, TextFormatAlign.CENTER, false, null, false, null, false, null); cont.addChild(nam); cont.alpha = 1; addChild(cont); timer = new Timer(50, 0); timer.addEventListener(TimerEvent.TIMER, timerListener); timer.start(); } public function timerListener(e:TimerEvent) { if(cont.alpha > 0) { cont.alpha -= 0.01; e.updateAfterEvent(); } else { timer.stop(); } } } } |
|
|||||
Регистрация: Feb 2012
Сообщений: 1,540
|
Лучше делать как я сказал, так и затрат на if/else будет меньше.
|
|
|||||
Регистрация: Feb 2012
Сообщений: 47
|
ок щас попробую
|
|
|||||
Регистрация: Feb 2012
Сообщений: 1,540
|
Ты имел ввиду, что у тебя не работает?
Должно работать. |
|
|||||
Регистрация: Feb 2012
Сообщений: 47
|
ничего...(((
Добавлено через 56 секунд у меня ничего не появляется хотя надпись изначально созданная сначала должна появиться а потом плавно исчезнуть |
|
|||||
Регистрация: Feb 2012
Сообщений: 1,540
|
Попробуй так:
package p { import flash.display.*; import flash.utils.*; import flash.net.*; import flash.events.*; import flash.text.*; import flash.display.Sprite; import flash.display.DisplayObjectContainer; public class DrawName extends MovieClip { private var nam:CreateButton; private var cont:Sprite = new Sprite(); private var timer:Timer; public function DrawName() { } public function drawNam(){ this.nam = new CreateButton('Кожа', 30, 0xff0000, "Times New Roman", true, false, 90, 60, 100, 100, TextFieldAutoSize.CENTER, TextFormatAlign.CENTER, false, null, false, null, false, null); this.cont.addChild(nam); this.cont.alpha = 1; addChild(cont); this.timer = new Timer(100, this.cont.alpha/0.05); this.timer.addEventListener(TimerEvent.TIMER, timerListener); this.timer.start(); } private function timerListener(e:TimerEvent) { this.cont.alpha -= 0.05; addChild(cont); } } } Написать: |
|
|||||
Регистрация: Feb 2012
Сообщений: 47
|
а может через setInterval как нибудь попробовать
Добавлено через 2 минуты после добавления сетчилдиндекс выскочила ошибка RangeError: Error #2006: The supplied index is out of bounds. Добавлено через 5 минут вот после всех изменений package p { import flash.display.*; import flash.utils.*; import flash.net.*; import flash.events.*; import flash.text.*; import flash.display.Sprite; import flash.display.DisplayObjectContainer; public class DrawName extends MovieClip { private var nam; private var cont:Sprite = new Sprite(); private var timer; public function DrawName() { } public function drawNam(){ this.nam = new CreateButton('Кожа', 30, 0xff0000, "Times New Roman", true, false, 90, 60, 100, 100, TextFieldAutoSize.CENTER, TextFormatAlign.CENTER, false, null, false, null, false, null); this.cont.addChild(nam); this.cont.alpha = 1; addChild(cont); this.timer = new Timer(100, this.cont.alpha/0.05); this.timer.addEventListener(TimerEvent.TIMER, timerListener); this.timer.start(); } private function timerListener(e:TimerEvent) { this.cont.alpha -= 0.05; addChild(cont); } } } |
Часовой пояс GMT +4, время: 22:37. |
|
« Предыдущая тема | Следующая тема » |
|
|