Всем привет. Я хочу сделать приложение для вк с прелоадером. И при попытке его создать, я столкнулся с проблемой. У меня есть пустой 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-ом я не тестил), но ниче не помогает. Ребят, помогите новичку с кодом, или кинте сюда свой прелоадер для вк. Я был бы очень признателен.