Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   закрузка swf и прелоадер (http://www.flasher.ru/forum/showthread.php?t=117059)

asikK 17.10.2008 17:56

закрузка swf и прелоадер
 
Добрый день!
Подскажите начинающему
сделал всё как написано сдесь: Создаём Preloader с помощью Movie Clip Loader

вот код:

Код:

var my_mcl:MovieClipLoader = new MovieClipLoader();
var my_lst:Object = new Object();
my_mcl.addListener(my_lst);


my_lst.onLoadStart = function(target_mc:MovieClip)
{
        trace("Началась загрузка в "+target_mc);
        varTarget = _root.preload_mc;
        varTarget.varTween = new Tween(varTarget, "_alpha", Regular.easeOut, varTarget._alpha, 100, 0.25, true);
};
//Создаём событие, которое будет срабатывать каждый раз ,при поступлении новых
//данных. Грубо говоря любой внешний файл закачивается “порционно”, т.е. за
//определённый промежуток времени загружается определённое количество байтов,
//так вот когда загрузилась очередная порция байтов,будет срабатывать событие
//onLoadProgress
//
//target_mc - это клип-контейнер, в который подгружается внешний файл
//loaded - это количество уже загруженных данных (в байтах)
//total - общий размер загружаемого файла в байтах

my_lst.onLoadProgress = function(target_mc:MovieClip, loaded:Number, total:Number)
{
        trace("Процент загрузки в "+target_mc+" составляет "+varPercent+"%");
        //Вычисляем процентное отношение загруженных данных к общему размеру файла
        varPercent = loaded/total*100;
        //Показываем процент загрузки в текстовых полях
        _root.preload_mc.preload_txt.text = _root.preload_mc.duplicate_txt.text=Math.round(varPercent)+"%";
};

//Создаём событие, которое будет срабатывать по завершению загрузки
my_lst.onLoadComplete = function(target_mc:MovieClip)
{
        trace("Загрузка в "+target_mc+" закончена");
        //Когда закончена загрузка скрываем клип preload_mc, в котором показывался
        //процент загрузки.
        varTarget = _root.preload_mc;
        varTarget.varTween = new Tween(varTarget, "_alpha", Regular.easeOut, varTarget._alpha, 0, 0.5, true);
};

//очень важно отличать событие onLoad Init от события onLoadComplete:
//onLoadComplete срабатывает, когда файл полностью загружен, но не смотря на это,
//с файлом пока нельзя работать.
//Событие же onLoadInit возникает именно когда с загруженном файлом можно
//непосредственно начинать работу.
//На самом деле это событие является самым трудным в понимании, т.к. иногда
//все присущие ему (этому событию) действия можно выполнять сразу после загрузки,
//то есть при событии onLoadComplete. Тем не менее, воизбежании ошибок и
//трудностей, которые могут возникнуть, и которые потом очень трудно будет
//вычислить, советую вам вешать все действия с подгружаемым объектом именно на
//событие onLoadInit

my_lst.onLoadInit = function(target_mc:MovieClip)
{
        trace("Загруженный объект в "+target_mc+" начинает действовать");
        //Как только срабатывает событие onLoadInit показываем клип cont_mc,
        //в который и грузилось содержимое
        varTarget = target_mc;
        varTarget.varTween = new Tween(varTarget, "_alpha", Regular.easeIn, 0, 100, 1, true);
};

_root.my_mcl.loadClip("c://temp//1.swf", _root.cont_mc);

файл: c:\temp\1.swf есть и он рабочий.
НО!!!
при запуске ничего не происходит!
помогите, я так понимаю что нужно что-то сделать с
Код:

_root.cont_mc
спасибо!

p.s.для написания использую макромедиа флеш мх

Mur4ik 18.10.2008 12:01

во флеше MX еще небыло класса MovieClipLoader, если я конечно, не ошибаюсь.
Пользуйте Flash MX2004 или Flash 8 и все у Вас получится...

asikK 20.10.2008 12:46

О! спасибо заработало! теперь ещё вопросик, если можно.
У меня подгружается другаю флешка, к примеру
Код:

_root.my_mcl.loadClip("c://temp//1.swf", _root.cont_mc);
как определить, что подгружаемая флешка закончила проигывание, т.е. доиграла до конца и остановилась?
Спасибо!

MrXoT 20.10.2008 16:23

попробуй так
Код:

if(_root.cont_mc._currentframe==_root.cont_mc._totalframes){
trace("стоп")
}


asikK 20.10.2008 18:49

Спасибо! Выкладываю общий скрипт, может кому пригодится
Код:

a=0;
LoadComplete=false;
LoadData=false;

url  = "";
type = "";
wait = "";

var my_mcl:MovieClipLoader = new MovieClipLoader();
var my_lst:Object = new Object();
my_mcl.addListener(my_lst);


my_lst.onLoadStart = function(target_mc:MovieClip)
{
        varTarget = _root.preload_mc;
        varTarget.varTween = new Tween(varTarget, "_alpha", Regular.easeOut, varTarget._alpha, 100, 0.25, true);
};


my_lst.onLoadComplete = function(target_mc:MovieClip)
{
  if ((type=="jpeg")and(LoadData))
  {
        a = getTimer();
        LoadComplete=true;
  };

  if (type=="swf")
  {
          LoadComplete=true;
  };
};
my_lst.onLoadInit = function(target_mc:MovieClip)
{
        varTarget = target_mc;
        varTarget.varTween = new Tween(varTarget, "_alpha", Regular.easeIn, 0, 100, 1, true);
};

_root.onEnterFrame = function()
{
  trace(url);
  if(LoadData==false)
  {
    if((url<>"")and(type<>""))
        {
                if (wait=="")
                {
                        wait="0";
                };
                _root.my_mcl.loadClip(url, _root.cont_mc);
                LoadData=true;
          };
  };
        if ((type=="jpeg")and(LoadComplete)and(LoadData))
        {
                if((getTimer()-a)>wait*1000)
                {
                        trace('доиграли');
                        fscommand("quit");
                        _root.cont_mc.stop();
                        _root.my_mcl.unloadClip(_root.cont_mc);
                        _root.unloadMovie();
                       
                };
        };
        if ((type=="swf")and(LoadComplete)and(LoadData))
        {
                if(_root.cont_mc._currentframe==_root.cont_mc._totalframes)
                {
                        trace('доиграли');
                        fscommand("quit");
                        _root.cont_mc.stop();
                        _root.my_mcl.unloadClip(_root.cont_mc);
                        _root.unloadMovie();
                };
        };
};
fscommand("fullscreen","true");
fscommand("allowscale",true);

_root.loadVariables("./data.txt");



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

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