Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Alpha для String (http://www.flasher.ru/forum/showthread.php?t=168790)

Isaac 24.09.2011 16:44

Alpha для String
 
Всем здравсвуйте.
Пытаюсь сделать анимацию, в которой строка текста будет плавно появляться по одной букве образую все предложение целиком. Анимация заключается в изменеии альфа канала с помощью твинмакса
Вот код
Код AS3:

private function addText():void
                {
                        txtFrt = new TextFormat();
                        txtFrt.font = "Arial";
                        txtFrt.bold = true;
                        txtFrt.size = 20;
 
                        txt1 = new TextField();
                        txt1.x = 200;
                        txt1.y = 50;
                        txt1.width = 300;                       
                        txt1.alpha = 0;
                        txt1.text = "Hello World !!!"//message;
                        txt1.setTextFormat(txtFrt);
                        addChild(txt1);                                               
 
                        textArray.push(txt1);
 
                        timer = new Timer(500);
                        timer.addEventListener(TimerEvent.TIMER, animationText, false, 0, true);
                        timer.start();                       
                }
 
                private function animationText(event:TimerEvent):void
                {
                        if(timer.currentCount != txt1.text.length)
                        {
                                TweenMax.to(txt1.text.charAt(count), 1, {autoAlpha:1});
                                count ++;                               
 
                        }else
                        {
                                timer.stop();
                        }
                }

Но как я уже понял - проблема заключается в том, что у строки нет свойства альфа и флеш выдает следующую ошибку
Код AS3:

ReferenceError: Error #1069: Не удалось найти свойство alpha в String; отсутствует значение по умолчанию.
        at com.greensock.plugins::AutoAlphaPlugin/onInitTween()
        at com.greensock::TweenLite/init()
        at com.greensock::TweenMax/init()
        at com.greensock::TweenMax/renderTime()
        at com.greensock.core::SimpleTimeline/renderTime()
        at com.greensock::TweenLite$/updateAll()

Подскажите, как быть в данном случае?
Как можно реальзивоть этот эффект?
Можно сделать, что-то типа такого?
Код AS3:

(txt1.text as MovieClip);

Чтоб строка приняла свойства мувиклипа ?

willis83 24.09.2011 17:08

переведите sprite c textfield в bitmap(метод draw вроде) и вперёд. А может вообще просто у спрайта с текстфилдом менять альфу, у него такое свойство есть, но это вряд ли сработает, скорее всего первое

Isaac 24.09.2011 17:21

Цитата:

Сообщение от willis83 (Сообщение 1034379)
переведите sprite c textfield в bitmap(метод draw вроде) и вперёд. А может вообще просто у спрайта с текстфилдом менять альфу, у него такое свойство есть, но это вряд ли сработает, скорее всего первое

Простите, что вы в данном случае подразумеваете под спрайтом? Я его вроде не объявлял

Obi 24.09.2011 17:22

Тип String не является отображаемым объектом. String – тип данных, а TextField отображает эти данные на экране, являясь визуальным объектом.

Isaac 24.09.2011 17:24

Цитата:

Сообщение от Obi (Сообщение 1034385)
Тип String не является отображаемым объектом. String – тип данных, а TextField отображает эти данные на экране, являясь визуальным объектом.

Это хорошо, я это понимаю, но какой мне сделать вывод из того что вы написали? Что альфа я не могу добавить в строке? Я уже это понял?
Пожалуйста, подскажите лучше, как выйти из данной ситуации

willis83 24.09.2011 17:31

я про контейнер для текстфилда, если не спрайт, то мувиклип, или что там у вас. Спрайт оптимально наверное в данном случае

Vishapakahr 24.09.2011 18:11

Ну в одном textfield е некак не получится если не ошибаюсь .. можно скажем строку превратить в массив .split("") и создать textfield и , и для отдельного использовать твинмакс.

kackbip 24.09.2011 19:01

Придется изощряться с разбиением текста на символы, пихать символы в разные текстовые поля и эти поля анимировать.

goodguy 24.09.2011 19:03

А что там изощряться-то? Задача на десять минут. Один цикл решит всю проблему.
Сначала бьем строку на массив, потом пробегаемся по нему, создаем для каждой буквы текстфилд с нужными настройками, и сразу же добавляем твин с временем, зависящим от текущей итерации.

Isaac 24.09.2011 19:09

Цитата:

Сообщение от goodguy (Сообщение 1034435)
А что там изощряться-то? Задача на десять минут. Один цикл решит всю проблему.
Сначала бьем строку на массив, потом пробегаемся по нему, создаем для каждой буквы текстфилд с нужными настройками, и сразу же добавляем твин с временем, зависящим от текущей итерации.

А как быть, если мне нужно будет некоторые слова в предложении выводить другим цветом?


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

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