Показать сообщение отдельно
Старый 15.08.2011, 15:22
kaploson вне форума Посмотреть профиль Отправить личное сообщение для kaploson Найти все сообщения от kaploson
  № 1  
Ответить с цитированием
kaploson

Регистрация: Aug 2011
Сообщений: 52
По умолчанию Прелоадер подгрузка основной SWF

После долгих гуглений и форумов на данную тему начал делать сам)
И вот получил вот это:

Загрузка идет, но основная флешка не грузится.
В основной флешке соответственно все функции приложения. CS5 выдает ошибку :

TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
at Main()


Гуглил, говорят, что это связано со stage в основной флешке.

код основной флешки, которая подгружается флешкой прелоадера такой :
Код AS3:
public function Main():void
        {
 
            // получаем данные из flashVars
            // id просматривающего приложение
            flashVars = stage.loaderInfo.parameters as Object;
            viewer_id = flashVars['viewer_id'];
            // secret для генерации сигнатуры
            secret = flashVars['secret'];
            // id сессии
            sid = flashVars['sid'];
            // адрес API-сервиса
            api_url = flashVars['api_url'];
 
            auth_key = flashVars['auth_key'];
 
            VK = new APIConnection(flashVars);
 
            VK.api('getProfiles',{ uids: viewer_id,fields:'photo_big,sex,bdate,city,country,education'},onComplete, onError);
Код флешки прелоадера:

Код AS3:
package {
    import flash.display.*;
    import flash.events.*;
    import flash.text.TextField;
    import flash.net.URLRequest;
 
    public class Preloader extends Sprite {
        public function Preloader():void {
            var url='1.swf';// ссылка на загружаемый swf
            // создание и размещение поля с прогрессом загрузки
            var progress_tf:TextField = new TextField();
            progress_tf.x=530/2;
            progress_tf.y=380/2;
            addChild(progress_tf);
 
            var loadURL:URLRequest=new URLRequest(url);
            var loader:Loader = new Loader();
            loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,onLoadProgress);// прогресс загрузки
            loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onLoadComplete);// загружено
            loader.load(loadURL);
 
            function onLoadProgress(evt:ProgressEvent):void {
                progress_tf.text = String(Math.round(100*(evt.bytesLoaded/evt.bytesTotal)))+"%";
            }
 
            function onLoadComplete(evt:Event):void {//окончание загрузки
                // удаляем поле с прогрессом загрузки
                removeChild(progress_tf);
                // отображаем то что загрузилось
                addChild(loader);
            }
        }
    }
}