Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   ADDED_TO_STAGE (http://www.flasher.ru/forum/showthread.php?t=136725)

Dr_Bra 24.02.2010 14:05

ADDED_TO_STAGE
 
Привет, ребята не получается добавить событие для сцены
Код AS3:

stage.addEventListener(Event.ENTER_FRAME ...

для этого необходимо воспользоваться ADDED_TO_STAGE, но у меня не получается правильно это дело применить. Посмотрите, на код, плиз., подскажите, как его поправить??
Код AS3:

package
{
        import flash.text.TextField;
        import flash.display.Sprite;
        import flash.events.Event;
        import flash.events.MouseEvent;
        import flash.geom.Rectangle;
        import flash.display.Stage;
        import flash.display.StageScaleMode;
        import flash.display.StageAlign;
 
 
        public class TextScrolling extends Sprite
        {
                var dragging:Boolean = false;
                var speech:String = "НАЧАЛО, как следует из вышесказанного, экономит ребрендинг, невзирая на действия конкурентов. Медиа, на первый взгляд, концентрирует портрет потребителя, оптимизируя бюджеты. Общество потребления уравновешивает эксклюзивный имидж, осознавая социальную ответственность бизнеса. Маркетинг, анализируя результаты рекламной кампании, специфицирует популярный как следует из вышесказанного, экономит ребрендинг, невзирая на действия конкурентов. Медиа, на первый взгляд, концентрирует портрет потребителя, оптимизируя бюджеты. Общество потребления уравновешивает эксклюзивный имидж, осознавая социальную ответственность бизнеса. Маркетинг, анализируя результаты рекламной кампании, специфицирует популярный как следует из вышесказанного, экономит ребрендинг, невзирая на действия конкурентов. Медиа, на первый взгляд, концентрирует портрет потребителя, оптимизируя бюджеты. Общество потребления уравновешивает эксклюзивный имидж, осознавая социальную ответственность бизнеса. Маркетинг, анализируя результаты рекламной кампании, специфицирует популярный как следует из вышесказанного, экономит ребрендинг, невзирая на действия конкурентов. Медиа, на первый взгляд, концентрирует портрет потребителя, оптимизируя бюджеты. Общество потребления уравновешивает эксклюзивный имидж, осознавая социальную ответственность бизнеса. Маркетинг, анализируя результаты рекламной кампании, специфицирует популярный как следует из вышесказанного, экономит ребрендинг, невзирая на действия конкурентов. Медиа, на первый взгляд, концентрирует портрет потребителя, оптимизируя бюджеты. Общество потребления уравновешивает эксклюзивный имидж, осознавая социальную ответственность бизнеса. Маркетинг, анализируя результаты рекламной кампании, специфицирует популярный ВСЕ!!!.";
 
 
                public function TextScrolling(tSpeech:TextField, bScrollUp:Sprite, bScrollDown:Sprite, dScrollDrag:Sprite, skrollHeight:Sprite)
                {
                        tSpeech.text = speech; // Передаешь параметр из кадра в клас
                        tSpeech.multiline = true;
                        tSpeech.wordWrap = true;
 
                        bScrollUp.addEventListener(MouseEvent.CLICK, upScrollText);
                        function upScrollText(evt:MouseEvent):void
                        {
                                trace(tSpeech.scrollV);
                                tSpeech.scrollV -= 1;
                        }
 
                        bScrollDown.addEventListener(MouseEvent.CLICK, downScrollText);
                        function downScrollText(evt:MouseEvent):void
                        {
                                trace(tSpeech.scrollV);
                                tSpeech.scrollV += 1;
                        }
 
                        var bounds:Rectangle = new Rectangle(dScrollDrag.x, dScrollDrag.y, 0, skrollHeight.height); //260 - это длинна skrollHeight
 
                        dScrollDrag.addEventListener(MouseEvent.MOUSE_DOWN, dragScroll);
                        function dragScroll(evt:MouseEvent):void
                        {
                                dScrollDrag.startDrag(false, bounds);
                                dragging = true;
                        }
 
                        stage.addEventListener(MouseEvent.MOUSE_UP, dropScroll);
                        function dropScroll(evt:MouseEvent):void
                        {
                                dScrollDrag.stopDrag();
                                dragging = false;
                        }
 
                        stage.addEventListener(Event.ENTER_FRAME, chackSlider);
                        function chackSlider(evt:Event):void
                        {
                                if(dragging)
                                {
                                        //trace("scroll");
                                        tSpeech.scrollV = Math.round((dScrollDrag.y - bounds.y)*tSpeech.maxScrollV/90);
                                }
                        }
                        tSpeech.addEventListener(Event.SCROLL, speechScrolled);
                        function speechScrolled(evt:Event):void
                        {
                                dScrollDrag.y = bounds.y + (tSpeech.scrollV*skrollHeight.height/tSpeech.maxScrollV);
                        }
                        tSpeech.mouseWheelEnabled = true;
                }
 
//-------------------------------------------------------------------------------
 
                public function addStage():void
                {
                if (stage) init();
                else addEventListener(Event.ADDED_TO_STAGE, init);
                }
 
                private function init(e:Event = null):void
                {
                        removeEventListener(Event.ADDED_TO_STAGE, init);
                        stage.align = StageAlign.TOP_LEFT;
                  stage.scaleMode = StageScaleMode.NO_SCALE;
                }
 
//-------------------------------------------------------------------------------
        }
}


dimarik 24.02.2010 14:27

Код AS3:

package
{
import flash.display.Sprite;
import flash.events.Event;
 
public class TextScrolling extends Sprite
{
 
        public function TextScrolling()
        {
                if (stage) init();
                else addEventListener(Event.ADDED_TO_STAGE, init);
        }
 
        private function init(e:Event = null):void
        {
                removeEventListener(Event.ADDED_TO_STAGE, init);
                stage.align = StageAlign.TOP_LEFT;
              stage.scaleMode = StageScaleMode.NO_SCALE;
        }
 
}
}


Dr_Bra 24.02.2010 14:55

а весь остальной код можно вписать в функцию TextScrolling? Просто самая проблема - то и была, в том, что не смог правильно расположить этот кусок скрипта, заключенный в //--------------------- эти рамки

Wolsh 24.02.2010 14:59

НЕ НАДО в конструктор засовывать хендлеры! Все функции должны находиться в теле класса. А вот листенер ADDED_TO_STAGE надо вешать в конструкторе, а не во внешней ф-ии, которая никогда не будет вызвана. Т.е. то что у тебя в теле public function addStage() - должно быть в конструкторе))

Dr_Bra 24.02.2010 15:14

Цитата:

Сообщение от Wolsh (Сообщение 888908)
НЕ НАДО в конструктор засовывать хендлеры! Все функции должны находиться в теле класса. А вот листенер ADDED_TO_STAGE надо вешать в конструкторе, а не во внешней ф-ии, которая никогда не будет вызвана. Т.е. то что у тебя в теле public function addStage() - должно быть в конструкторе))

значит вункцию addStage() помещаем внутрь конструктора TextScrolling(), а те функции что сейчас содержит TextScrolling() выносим ??


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

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