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

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

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

Регистрация: Oct 2007
Сообщений: 9
Question не работают евенты MovieClipLoader (as2) когда он подгружен в в as3

Итак у меня есть приложение на AS2 которое подгружает внешние файлы при помощи MovieClipLoader

Код AS1/AS2:
var loader:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
var mcContainer:MovieClip = this.createEmptyMovieClip("mcContainer",this.getNextHighestDepth());
mcContainer._alpha = 0;
trace("loader");
 
listener.onLoadStart = function(movie){
	trace("onLoadStart");
}
 
listener.onLoadInit = function(movie){
	trace("onLoadInit");
	mcContainer._alpha = 100;
}
 
loader.addListener(listener);
loader.loadClip("powered_by.jpg",mcContainer);
Все работает нормально, но если компилированный клип подгрузить в AS3 приложение, перестают работать евенты внутри AS2 клипа.

Вот код AS3 на всякий случай:
Код AS3:
var loader:Loader = new Loader();
var urlRequest:URLRequest = new URLRequest("as2Loader.swf");
loader.addEventListener(Event.COMPLETE, _onLoad);
loader.load(urlRequest);
function _onLoad(event:Event):void{
	addChild(loader);
}
Во вложенном вы сможете найти смоделированную ситуацию.

Может кто сталкивался с подобным.
Вложения
Тип файла: rar loader test.rar (32.3 Кб, 43 просмотров)

Старый 16.06.2010, 14:09
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 2  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
есть подозрение, что это очередной косяк IDE-шного компилятора
тоже самое, скомпиленное mxmlc, выдает все как положено
Код AS3:
public class Test extends Sprite
{
	private var loader:Loader;
 
	public function Test():void
	{
		loader = new Loader();
		var urlRequest:URLRequest = new URLRequest("as2Loader.swf");
		loader.load(urlRequest);
 
	}
}
//////////////////
//loader
//onLoadStart
//onLoadInit
ps лишний повод подумать, стоит ли компилить что-то в CS кроме графики

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

Регистрация: Oct 2007
Сообщений: 9
silin,
Спасибо за ответ, сейчас будем пробовать.

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

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

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

Регистрация: Oct 2007
Сообщений: 9
dimarik,
Спасибо за ответ, проблема близка к прояснению но есть другая беда. В общем если смотреть на эту ситуацию не через компилятор а в уже скомпилированных флешках проблема поворачивается другим боком:

Первый раз все срабатывает нормально, картинка подгружается и евент срабатывает, но вот второй раз уже нет.

Вот слепил наглядный пример: http://tontri.com/demos/loader_problem/

Верхняя флешка это AS2 файл, он работает нормально, а вот нижняя флешка это тот же файл только подгруженный в AS3 контейнер, попробуйте покликать кнопку "Load" и там и там.

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
в loadImage сделайте
Код AS1/AS2:
mcContainer.removeMovieClip();
mcContainer = this.createEmptyMovieClip("mcContainer", this.getNextHighestDepth());
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 16.06.2010, 19:47
kolandi вне форума Посмотреть профиль Отправить личное сообщение для kolandi Найти все сообщения от kolandi
  № 7  
Ответить с цитированием
kolandi
 
Аватар для kolandi

Регистрация: Oct 2007
Сообщений: 9
dimarik,
Спасибо огромное, проблема решилась, я в принципе пробовал похожую конструкцию только вместо "removeMovieClip" использовал "unloadMovie" но не работало, а ваш вариант то что доктор прописал, спасибо.

Ф тем кто столкнется с подобной проблемой вод рабочий код:
Код AS1/AS2:
var step:Number = 0;
btnLoad.onPress = function() {
	loadImage();
	step++;	
	if(step == 2)step = 0;
}
var loader:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
var mcContainer:MovieClip;
var imgURL:Array = new Array("images/firstImage.jpg","images/secondImage.jpg")
 
listener.onLoadStart = function(movie){
	trace("onLoadStart");
	log.htmlText = log.htmlText+"onLoadStart"+"<br/>";
}
 
listener.onLoadInit = function(movie){
	trace("onLoadInit");
	log.htmlText = log.htmlText+"onLoadInit";
	mcContainer._y = log._y+log._height;
}
 
loader.addListener(listener);
 
function loadImage():Void{
	trace("loader");
	if(mcContainer)mcContainer.removeMovieClip();
	mcContainer = this.createEmptyMovieClip("mcContainer",this.getNextHighestDepth());
	log.htmlText = "Load image: "+imgURL[step]+"<br/>";
	loader.loadClip(imgURL[step],mcContainer);
}

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

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

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


 


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


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