Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Прелоадер для вконтакте. AS 3.0 (http://www.flasher.ru/forum/showthread.php?t=169709)

thirst 10.10.2011 19:53

Прелоадер для вконтакте. AS 3.0
 
Всем привет. Я хочу сделать приложение для вк с прелоадером. И при попытке его создать, я столкнулся с проблемой. У меня есть пустой fla-файл и в нем класс:
Код AS3:

package 
{
        //импорт нужных классов
        import flash.display.MovieClip;
        import flash.text.TextField;
        import flash.display.Loader;
        import flash.text.TextFormat;
        import flash.text.TextFieldAutoSize;
        import flash.net.URLRequest;
        import flash.events.Event;
        import flash.events.ProgressEvent;
 
        //сам класс
        public class Preloader extends MovieClip
        {
                //объявление переменных
                private var loadbar:Loadbar_mc;
                private var loaderSWF:Loader;
                private var tf:TextField;
 
                //конструктор класса
                public function Preloader():void
                {
                        //создаем текстовое поле, лоадбар и подключаем прелоадер
                        createTF();
                        createLB();
                        createPreloader();
                }
                private function createTF():void
                {
                        // создаем текстовое поле и применяем свойста
                        tf = new TextField();
                        tf.autoSize = TextFieldAutoSize.LEFT;
                        tf.selectable = false;
                        tf.x = 150;
                        tf.y = 225;
                        tf.visible = true;
 
                        //устанавливаем формат текстового поля
                        var format:TextFormat = new TextFormat();
                        format.font = "Verdana";
                        format.size = 30;
                        format.color = 0xF0D13F;
                        format.bold = true;
                        tf.defaultTextFormat = format;
                        tf.text = "ЗАГРУЗКА... 0%";
                        //добовляем его
                        addChild(tf);
 
                }
                private function createLB():void
                {
                        //добавляем лоадбар
                        loadbar = new Loadbar_mc();
                        loadbar.x = 285;
                        loadbar.y = 285;
                        addChild(loadbar);
                }
                private function createPreloader():void
                {
                        //создаем лоадер и регистрируем в нем нужные события.
                        var req:URLRequest = new URLRequest("путь до флешки");
                        loaderSWF = new Loader();
                        //событие конца загрузки
                        loaderSWF.contentLoaderInfo.addEventListener(Event.COMPLETE, end);
                        //событие, которое обновляется при поступлении данных
                        loaderSWF.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, update);
                        loaderSWF.load(req);
                        //добавляем прелоадер, чтобы не было ошибки. Он не будет выводится до конца загрузки
                        addChild(loaderSWF);
                }
                private function update(e:ProgressEvent)
                {
                        //обновляем лоадбар и текстовое поле при каждом новом поступлении данных
                        var loaded:Number = e.bytesLoaded;  //загружено
                        var total:Number = e.bytesTotal;        //всего грузить
                        var percent:Number = Math.round(loaded / total * 100)//вычисляем проценты
                        tf.text = "ЗАГРУЗКА... " + percent + "%";      //обновляем текстовое поле
                        //у меня символ со 100-кадровой анимацией, обновляем относительно процентов
                        loadbar.gotoAndStop(percent);
                }
                private function end(e:Event)
                {
                        //удаляем лоадбар и текстовое поле
                        removeChild(tf);
                        tf = null;
                        removeChild(loadbar);
                        loadbar = null;
                        //переходим на 2 кадр, где нет контента прелоадера
                        gotoAndStop(2);
                }
        }
}

Здесь у меня имеется символ лоадбара со 100 кадровой анимацией, чтобы переносить лоадбар, относительно процентов, остальное все програмное. Сама флешка лежит на народе.ру . Дело в том, что локально, скрипт работает идеально, но когда я кидаю его в вк, то не все идет по плану. Я тестил в разных браузерах (IE8, opera11 - грузят до конца, но не отображают флешку; google chrome - вообще не грузит; firefox-ом я не тестил), но ниче не помогает. Ребят, помогите новичку с кодом, или кинте сюда свой прелоадер для вк. Я был бы очень признателен.

goodguy 10.10.2011 20:03

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

Security.allowDomain("vkontakte.ru");

или для всех доменов
Код AS3:

Security.allowDomain("*");



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

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