Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 17.10.2008, 17:56
asikK вне форума Посмотреть профиль Отправить личное сообщение для asikK Найти все сообщения от asikK
  № 1  
Ответить с цитированием
asikK

Регистрация: Oct 2008
Сообщений: 5
По умолчанию закрузка 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.для написания использую макромедиа флеш мх


Последний раз редактировалось asikK; 17.10.2008 в 18:22.
Старый 18.10.2008, 12:01
Mur4ik вне форума Посмотреть профиль Отправить личное сообщение для Mur4ik Найти все сообщения от Mur4ik
  № 2  
Ответить с цитированием
Mur4ik
ветеран форума

Регистрация: Sep 2008
Сообщений: 717
Записей в блоге: 4
Отправить сообщение для Mur4ik с помощью ICQ
во флеше MX еще небыло класса MovieClipLoader, если я конечно, не ошибаюсь.
Пользуйте Flash MX2004 или Flash 8 и все у Вас получится...
__________________
trace("Остановите Землю, я сойду!!!");

Старый 20.10.2008, 12:46
asikK вне форума Посмотреть профиль Отправить личное сообщение для asikK Найти все сообщения от asikK
  № 3  
Ответить с цитированием
asikK

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

Старый 20.10.2008, 16:23
MrXoT вне форума Посмотреть профиль Отправить личное сообщение для MrXoT Найти все сообщения от MrXoT
  № 4  
Ответить с цитированием
MrXoT

Регистрация: Apr 2008
Сообщений: 71
попробуй так
Код:
if(_root.cont_mc._currentframe==_root.cont_mc._totalframes){
trace("стоп")
}

Старый 20.10.2008, 18:49
asikK вне форума Посмотреть профиль Отправить личное сообщение для asikK Найти все сообщения от asikK
  № 5  
Ответить с цитированием
asikK

Регистрация: Oct 2008
Сообщений: 5
Спасибо! Выкладываю общий скрипт, может кому пригодится
Код:
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, время: 15:17.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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