Форум 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=130576)

Furinax 29.09.2009 13:20

Код для анимированного прелоадера
 
Проблема заключается в следующем:
я пишу класс прелоадера, и при загрузке каждых 10 процентов содержимого слинкованный с ним мувиклип должен переходить на следующий кадр. Однако совсем ничего не происходит, но и в Copmpiler Errors и Output никаких ошибок не пишет, поэтому самому ошибку найти не получается (в связи с малым опытом программирования).
Вот код:
Код AS3:

package {
        import flash.display.MovieClip;
        import flash.display.Loader;
        import flash.display.LoaderInfo;
        import flash.net.URLRequest;
        import flash.events.ProgressEvent;
        import flash.events.TimerEvent;
        import flash.utils.Timer;
 
        public class Preloader extends MovieClip {
                private var loader:Loader;
                private var percent:Number;
                private var timer:Timer;
 
                public function Preloader () {
                        loader = new Loader ();
                        var url:URLRequest = new URLRequest ("Main.swf");
                        loader.load (url);
                        loader.contentLoaderInfo.addEventListener (ProgressEvent.PROGRESS, handleProgress);
                        timer = new Timer (100);
                        timer.start ();
                        addEventListener (TimerEvent.TIMER, checkPreloader);
                }
 
                private function handleProgress (e:ProgressEvent):void {
                        percent = Math.round (e.bytesLoaded/e.bytesTotal*100);
 
                }
 
                private function checkPreloader (e:TimerEvent):void {
                        switch (percent) {
                                case 10:
                                gotoAndStop (2);
                                break;
                                case 20:
                                gotoAndStop (3);
                                break;
                                case 30:
                                gotoAndStop (4);
                                break;
                                case 40:
                                gotoAndStop (5);
                                break;
                                case 50:
                                gotoAndStop (6);
                                break;
                                case 60:
                                gotoAndStop (7);
                                break;
                                case 70:
                                gotoAndStop (8);
                                break;
                                case 80:
                                gotoAndStop (9);
                                break;
                                case 90:
                                gotoAndStop (10);
                                break;
                                case 100:
                                gotoAndStop (11);
                                parent.addChild (loader);
                                break;
                        }
                }
        }
}

Посмотрите пожалуйсто и расскажите че не так.

Smrad 29.09.2009 13:38

private var percent:Number; заменить на private var percent:int; не?

Kuruki 29.09.2009 13:46

Код AS3:

private function checkPreloader (e:TimerEvent):void {
                        trace(percent);
                }

Дальше думаю сами разберетесь

Furinax 29.09.2009 15:36

Только что попробовал int, не помогло. Трассирую, все равно не реагирует. Ошибок компиляции не вылазит ни одной. Но такое ощущение, что таймер почему-то не работает. Толи переменная percent не меняется.
Что именно из двух не понимаю.

Еще есть какие-нибудь варианты?

Alkaz 29.09.2009 15:43

Код AS3:

timer.addEventListener (TimerEvent.TIMER, checkPreloader);


Furinax 29.09.2009 16:07

большое спасибо, вот что значит взгляд более опытного человека.


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

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