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

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

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

Регистрация: Oct 2008
Сообщений: 60
Отправить сообщение для tanyakora с помощью ICQ Отправить сообщение для tanyakora с помощью Skype™
По умолчанию как отследить окончание загружаемого клипа?

Подскажите, пожалуйста, вроде бы вопрос не из самых сложных, но что-то я на этом застопорилась Подгружаю swf файл:
Код AS3:
var context:LoaderContext = new LoaderContext();
if (Security.sandboxType!='localTrusted'){
	context.securityDomain = SecurityDomain.currentDomain;
}
context.applicationDomain = ApplicationDomain.currentDomain;
var loader1 = new Loader();
var url1=new URLRequest(stringURL);
loader1.load(url1, context);
loader1.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaded);
loader1.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
 
private function onLoaded(e:Event):void {
      mc = new MovieClip();
 
     //mc=e.target.content as MovieClip;не работает - пишет, что объект null
 
     mc.addChild(e.target.content as DisplayObject);				
}
Каким образом можно отследить окончание проигрывания этого клипа? (для удаления его из памяти).


Последний раз редактировалось udaaff; 27.05.2010 в 12:46.
Старый 27.05.2010, 15:22
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 2  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Вот это Вам зачем?

Код AS3:
mc = new MovieClip();
Код AS3:
private function onLoaded(e:Event):void {
	var content:DisplayObject = e.target.content;
 
	if (content is MovieClip) {
		var mc:MovieClip = content as MovieClip;
 
		mc.addFrameScript(
			mc.totalFrames - 1, 
			function(mc:MovieClip):Function {
				return function():void {
					mc.stop();
					if (mc.parent) {
						mc.parent.removeChild(mc);
					}
					mc.addFrameScript(mc.currentFrame - 1, null);
				}
			}(mc)
		);
 
		super.addChild(mc);// Ну или куда вы там его добавить собирались
		mc.play();
	} else {
		trace(describeType(content));// шо за чудо?
	}
}
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 27.05.2010, 15:52
tanyakora вне форума Посмотреть профиль Отправить личное сообщение для tanyakora Найти все сообщения от tanyakora
  № 3  
Ответить с цитированием
tanyakora
 
Аватар для tanyakora

Регистрация: Oct 2008
Сообщений: 60
Отправить сообщение для tanyakora с помощью ICQ Отправить сообщение для tanyakora с помощью Skype™
Так в том то и дело, что "as MovieClip" не работает:
невозможно преобразовать flash.display::AVM1Movie@892a551 в flash.display.MovieClip.
Причина может скрываться в том, что подгружаемая флешка на AS2?

Старый 27.05.2010, 18:35
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 4  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Именно так.

Используйте LocalConnection для обмена данными с AVM1Movie.

Также есть недокументированные методы AVM1Movie#call и AVM1Movie#addCallback. По сигнатуре аналогичны статическим методам класса ExternalInterface. В принципе, можно попытаться использовать и их.

Однако в перечисленных способах необходимо модифицировать подгружаемую swf.

Если это невозможно, то можно попытаться, например, зная заранее количество кадров в загружаемой swf, по счетчику кадров удалять (выгружать) swf на заданном кадре.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 27.05.2010, 19:12
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 5  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
dimarik, расскажи, пожалуйста, поподробнее про AVM1Movie#call и AVM1Movie#addCallback

Старый 28.05.2010, 12:01
tanyakora вне форума Посмотреть профиль Отправить личное сообщение для tanyakora Найти все сообщения от tanyakora
  № 6  
Ответить с цитированием
tanyakora
 
Аватар для tanyakora

Регистрация: Oct 2008
Сообщений: 60
Отправить сообщение для tanyakora с помощью ICQ Отправить сообщение для tanyakora с помощью Skype™
Цитата:
Если это невозможно, то можно попытаться, например, зная заранее количество кадров в загружаемой swf, по счетчику кадров удалять (выгружать) swf на заданном кадре.
Да, я думаю, это подойдет. Спасибо большое.
P.S. не подскажете, где можно почитать про AVM1Movie?

Старый 28.05.2010, 12:11
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 7  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
http://help.adobe.com/ru_RU/AS3LCR/F...AVM1Movie.html

Старый 29.05.2010, 10:19
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 8  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Сообщение от i.o. Посмотреть сообщение
dimarik, расскажи, пожалуйста, поподробнее про AVM1Movie#call и AVM1Movie#addCallback
Не ковырял еще ) Мне вот интересно, со стороны AVM1 мувика какое кун-фу нужно применять, чтобы зарегистрировать callback и сделать call?
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 29.05.2010, 13:36
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 9  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
я сразу подумал про ExternalInterface. Надо попробовать...

Добавлено через 2 часа 7 минут
нда, пока что облом со стороны AS3 в виде:
Цитата:
Error: Error #2014: Feature is not available at this time.
at Error$/throwError()
at flash.display::AVM1Movie/call()
at AS3Container/_onFullComplete()
at Function/http://adobe.com/AS3/2006/builtin::apply()
at SetIntervalTimer/onTimer()
at flash.utils::Timer/_timerDispatch()
at flash.utils::Timer/tick()
для addCallback тоже самое: Error: Error #2014: Feature is not available at this time.

Создать новую тему Ответ Часовой пояс GMT +4, время: 02:48.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

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

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


 


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


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