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

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

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

Регистрация: Jun 2010
Сообщений: 18
Question Принудительный старт/стоп при MovieClipLoader()

Подгружаю внешний .swf через MovieClipLoader(), всё грузится отлично, прогресс бар бежит исправно но вот чего не хватает: хочется чтобы загружаемая флешка до того как полностью загрузится не запускалась.
Вставлял уже даже в .onLoadProgress команду mc.stop(); (mc - объект созданный через createEmptyMovieClip(), куда грузится флешка) не помогает. Флешка грузится и сразу-же исполняется. Ни mc._visibility= false ни mc.stop() не делают с ней ничего. Только удаётся задать позицию загрузки флешки через mx._x и mc._y Загружаемые таким образом клипы не управляются из загружающего клипа совсем? Или есть способ? Подскажите пожалуйста!

Старый 24.06.2010, 19:50
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Флешка не запустится до полной загрузки при использовании MCL.
Как только она загрузится, с нею будет происходить все то, что предусмотрено ее сценарием.
Если в ее первом кадре стоит stop(), то она так и останется на первом кадре.
Если в ней не стоит stop() на первом кадре, то она начнет проигрываться сразу после загрузки.

Если вам нужно, чтобы она была принудительно остановлена после загрузки, даже если в ней не прописан stop() в первом кадре, сделайте это явно в коде ее загрузки:
Код AS1/AS2:
var mcl:MovieClipLoader = new MovieClipLoader();
 
mcl.addListener(this);
 
this.onLoadInit = function(target_mc:MovieClip) 
{
    target_mc.stop(); //остановили в первом кадре
} ;
 
this.createEmptyMovieClip('cont', 0);
mcl.loadClip('anim.swf', cont);


Последний раз редактировалось mooncar; 24.06.2010 в 19:58.
Старый 24.06.2010, 23:00
Бармалейкин вне форума Посмотреть профиль Отправить личное сообщение для Бармалейкин Найти все сообщения от Бармалейкин
  № 3  
Ответить с цитированием
Бармалейкин

Регистрация: Jun 2010
Сообщений: 18
Мой код немного другой:
Код AS1/AS2:
var mc:MovieClip = this.createEmptyMovieClip("mc1", this.getNextHighestDepth());
mc._x = 0; mc._y = 0;
 
var mcLoader:MovieClipLoader = new MovieClipLoader();
var mcListener:Object = new Object();
mcListener.onLoadInit = function(target:MovieClip) {
	target.stop();
}
mcListener.onLoadProgress = function(target:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void {
// тут вызывается функция меняющая прогресс-бар
	set_progress_pos( bytesLoaded / bytesTotal * 100 );
}
mcLoader.addListener(mcListener);
mcLoader.loadClip("flash.swf", mc);
Но не получилось...
Да, флешку я гружу не свою (пока что) поэтому в её код вставить в первый кадр stop() не смогу

Ещё вопрос: а что происходит с загружаемым таким образом флеш-роликом, у которого анимация не кадровая а скриптовая? Ведь скрипт по stop() не остановить. Получается он будет выполняться в любом случае? Можно-ли его тогда хотя-бы
Код AS1/AS2:
mc._visible= false;
скрыть? А то такой фокус тоже не прокатывает, хоть и странно.
----------

Всё, разобрался. Вот в итоге такой код работает как мне надо:
Код AS1/AS2:
this.createEmptyMovieClip("mc1", this.getNextHighestDepth());
 
var mcLoader:MovieClipLoader = new MovieClipLoader();
var mcListener:Object = new Object();
mcListener.onLoadStart = function(target:MovieClip) {
	target._x = 0; target._y = 0;
	target._visible= false;
}
mcListener.onLoadProgress = function(target:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void {
	set_progress_pos( bytesLoaded / bytesTotal * 100 );
}
mcListener.onLoadComplete = function(target:MovieClip) {
	wLoading1.removeMovieClip();
	target._visible= true;
}
mcLoader.addListener(mcListener);
mcLoader.loadClip(sMainFile, mc1);
Снова спасибо mooncar за подсказку!


Последний раз редактировалось Бармалейкин; 24.06.2010 в 23:07.
Старый 24.06.2010, 23:09
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 4  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Вроде все верно. Раз чужая флешка - к автору обращайтесь, как ее остановить.
Раз программная анимация в ней - никаким stop() ее не остановить, надо знать как и что там организовано и постараться предотвратить это после загрузки (действуя изнутри onLoadInit)

Всегда что-либо делайте с загруженным только изнутри onLoadInit. Попробуйте скрыть ее, как хотели:
Код AS1/AS2:
mcListener.onLoadInit = function(target:MovieClip) {
	target._visible= false ;
}
Разумеется, если где-либо внутри загруженный флешки есть обратное действие (...._visible= true) для каких-то ее элементов, то тогда уж никак.

И еще, вот это избыточно:
Код AS1/AS2:
mc._x = 0; mc._y = 0;
Пустой мувик создается и без этого в нулевых координатах.

PS. Используйте свои ролики для работы или связывайтесь с автором...


Последний раз редактировалось mooncar; 24.06.2010 в 23:13.
Создать новую тему Ответ Часовой пояс GMT +4, время: 00:28.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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