Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Анимация исчезновения (http://www.flasher.ru/forum/showthread.php?t=176377)

КорДум 08.03.2012 21:25

Не могу получить Вашей проблемы, меняя прозрачность у контейнера или у самого текстового поля. Покажите код CreateButton (почему класс назван как метод, кстати?)

MikroAcse 08.03.2012 21:25

Цитата:

Эта ошибка индекса дитя в контейнере. При чем тут stage?!
Если stage не будет доступным, то и numChildren будет null/NaN.

Михаил Свинцов 08.03.2012 21:25

Код AS3:

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 buttonText:CreateButton;
                private var container:Sprite=new Sprite  ;
                private var timer:Timer;
 
                public function DrawName():void {
                        if(stage){
                                init(null);
                        } else {
                                addEventListener(Event.ADDED_TO_STAGE, this.init);
                        }
                }
                public function init(e:Event):void {
                        drawNam();
                }
                public function drawNam():void {
 
                        buttonText = new CreateButton('Кожа',30,0x000000,"Times New Roman",true,false,
                                                                90,60,100,100,TextFieldAutoSize.CENTER,TextFormatAlign.CENTER,
                                                                false,null,false,null,false,null);
                        addChild(container);
                        container.addChild(buttonText);
                        container.alpha = 1;
                        timer = new Timer(51);
                        timer.start();
                        timer.addEventListener(TimerEvent.TIMER,timerListener);
                }
                private function timerListener(e:TimerEvent):void {
                        if (container.alpha == 0) {
                                timer.stop();
                        } else {
                                addChild(container);
                                container.alpha -= 1 / timer.delay;
                        }
                }
        }
}


для вашего удобства переписал под Вас но все равно надпись появляется но не исчезает

MikroAcse 08.03.2012 21:27

Цитата:

Мозг тимлидера это напрягает, а не "флешку".
Да знаю я.
Я был неправ, и меня уже поправили.
А вы повторили тоже самое, что и КорДум, чтобы сделать вид "такого умного".

Михаил Свинцов 08.03.2012 21:28

спасибо помогли!!!!!!!!!!!!!!!!!!!!! но Wolsh что это такое??

MikroAcse 08.03.2012 21:29

Цитата:

для вашего удобства переписал под Вас но все равно надпись появляется но не исчезает
Диагноз ясен (с).
Проблема в надписи.
Попробуйте добавить обычный TextField.

Михаил Свинцов 08.03.2012 21:29

и хватит вам из-за звездочек ругаться

MikroAcse 08.03.2012 21:29

Цитата:

спасибо помогли!!!!!!!!!!!!!!!!!!!!! но Wolsh что это такое??
Это фильтр.
Не надо его использовать просто так.
Найди и реши проблему.

Добавлено через 46 секунд
Цитата:

и хватит вам из-за звездочек ругаться
Да это dimarik все время начинает со мной спорить...
нормально ответить не в силу...

КорДум 08.03.2012 21:31

Цитата:

Если stage не будет доступным, то и numChildren будет null/NaN.
Будет ошибка обращения к неопределенному свойству stage. А тут:
Код AS3:

setChildIndex(cont, numChildren-1);

Ни о каком stage речи и нет. Это так, к слову.

Михаил Свинцов 08.03.2012 21:32

Цитата:

Сообщение от MikroAcse (Сообщение 1067921)
Это фильтр.
Не надо его использовать просто так.
Найди и реши проблему.

а какой смысл если это и являлось проблемой, и почему нельзя использовать фильтры?

Добавлено через 1 минуту
и из-за stage numChildren тоже хватит, лучше ответьте почему нельзя использовать фильтры

MikroAcse 08.03.2012 21:33

Цитата:

а какой смысл если это и являлось проблемой, и почему нельзя использовать фильтры?
Можно, можно. Но не стоит.
По-моему проблема в CreateButton.

Цитата:

Будет ошибка обращения к неопределенному свойству stage
Ой, ну да.

Цитата:

Ни о каком stage речи и нет. Это так, к слову.
Странно, без stage у меня numChildren вызвать нельзя...
Ну разве что, если я наследуюсь Sprite и используюсь this.numChildren

Wolsh 08.03.2012 21:36

Это говорит как раз о том, что системный шрифт не может менять прозрачность.
Это зависит от версии плеера. Когда-то надо было непременно внедрять шрифт или кешировать текст в битмап (что и делает фильтр).
Под какой плеер Вы компилите проект и в каком плеере (номер версии) смотрите?

dimarik 08.03.2012 21:41

Цитата:

Если stage не будет доступным, то и numChildren будет null/NaN.
Ты начинаешь меня раздражать. Если не будет stage, то словишь NPE.

Wolsh 08.03.2012 21:42

В принципе можно просто поставить cont.cacheAsBitmap = true; - должно хватить и это "легче" чем фильтр, но слегка замедляет работу и вообще избыточно в современных плеерах.

MikroAcse 08.03.2012 21:43

Цитата:

Ты начинаешь меня раздражать. Если не будет stage, то словишь NPE.
Я не знал.

Михаил Свинцов 08.03.2012 21:45

проигрыватель 9. а смотрю в cs3.

У меня опять другая проблема возникла.
Теперь мне надо после исчезания этой надписи чтоб появлялось другое содержимое. я вот набросал код, та первая надпись исчезает а другие не появляются. вот что я написал
Код AS3:

if(drawn.container.alpha == 0) {
                                init();
                        }


Wolsh 08.03.2012 21:45

MikroAcse, хорош засорять эфир? Вы печатаете гораздо быстрее, чем думаете. И никогда не проверяете свои мысли ни практикой, ни документацией. Попробуйте сменить количество сообщений на качество.

dimarik 08.03.2012 21:45

И int и uint никогда не бывают null или NaN. RTFM, наконец сделайте.

Wolsh 08.03.2012 21:48

Цитата:

проигрыватель 9
Тогда кешируйте или внедряйте шрифт. Иначе никак. Только с 10 плеера системный текст может менять прозрачность (вроде это уже сказал dimarik).

Михаил Свинцов 08.03.2012 21:50

дак ну ладно приложение не сильно большое будет, перегружать его сильно фильтр не будет. У меня другая проблема сейчас

Wolsh 08.03.2012 22:33

Просмотрел Ваши примеры кода и не нашел в них никакого init()
Как же тут ответить?
Просто задавайте новый text текстфилду, ну и, наверное, альфу то вернуть надо будет к 1.


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

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