Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   не работает Событие Complete в ScrollPane (http://www.flasher.ru/forum/showthread.php?t=156516)

kaizer131 23.05.2011 10:34

не работает Событие Complete в ScrollPane
 
Делаю ScrollPane, в качестве соурса для него идёт динамический спрайт
в который загружаются битмапы.
На событие Complete данного ScrollPane вешаю событие
Код AS3:

scroll.addEventListener(Event.COMPLETE, completeHandler);

В котором делаю апдейт
Код AS3:

function completeHandler(event:Event):void 
        {
        scroll.update();
        }

но прокрутка не появляется.
Но, если событие повесить на MOUSE_DOWN
Код AS3:

 scroll.addEventListener(MouseEvent.MOUSE_DOWN, completeHandler);

То при нажатии на ScrollPane прокрутка появляется.
Вопрос - почему не срабатывает событие COMPLETE ?

Вот полный код
Код AS3:

package  
{
        import fl.containers.ScrollPane;
        import fl.controls.ScrollPolicy;
        import flash.display.MovieClip;
        import flash.display.Loader;
        import fl.containers.UILoader;
        import flash.display.Sprite;
        import flash.events.MouseEvent;
        import flash.events.Event;
        import flash.geom.*;
 
 
        /**
        * ...
        * @author Kaizer
        */

        public class uil extends MovieClip
        {
          public var  UIL:UILoader;
          public var scroll:ScrollPane;
          public var Spr:Sprite;
          public var Arr:Array =
          [ Элементы массива  ];
 
                public function uil()
                {
 
                UIL = getChildByName("mc_UIL") as UILoader;
 
                        Spr = new Sprite();
 
                        var x:int = 0;
                        var c_x:int = 0;
                        var c_y:int = 0;
                        trace (Arr);
 
                          for (var a:int = 0; a < Arr.length; a++)
                        {
                        UIL = new UILoader();
                          UIL.source = Arr[a];
                        UIL.x = c_x * (UIL.width + 10) + 10;
                        UIL.y = c_y * (UIL.height + 10) + 10;
 
                        c_x++;
 
                        if ( c_x > 1 )
                        {
                        c_x = 0;
                        c_y++;
                        }
                        Spr.addChild(UIL);
                        };
 
                        scroll = getChildByName("scroll") as ScrollPane;
// scroll.addEventListener(Event.COMPLETE, completeHandler);
                        scroll.addEventListener(MouseEvent.MOUSE_DOWN, completeHandler);
                        scroll.width = 230;
                        scroll.height = 300;
                        scroll.move(100, 0);
                        scroll.source = Spr;
 
                }
 
                function completeHandler(event:Event):void
                {
                        scroll.update();
                  }
 
        }


dimarik 23.05.2011 10:48

Видимо, ScrollPane не распространяет событие COMPLETE.

kaizer131 23.05.2011 10:51

судя по докам должен
http://help.adobe.com/ru_RU/AS3LCR/F...event:complete

alatar 23.05.2011 11:20

Цитата:

судя по докам должен
У ScrollPane есть собственный метод load(). При запихивании в него спрайта с UILoader внутри, он никому ничего не должен.

kaizer131 23.05.2011 11:42

хм, а как быть в этом случае ?

alatar 23.05.2011 12:46

Ну, как минимум, подумать. Или грузить с помощью ScrollPane или подписаться на COMPLETE у UILoader.


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

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