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

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

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

Регистрация: Apr 2009
Сообщений: 17
По умолчанию Странно срабатывает Event.COMPLETE

Хочу загрузить внешнюю swf-ку и вызвать из нее нужный мне метод. Раньше все получалось, несколько дней назад возникли странные глюки...
Компилил во FlashDevelop 3.0/RC1/RC2 c flex sdk 3.3/4.0 beta разные, плеер последний с сайта, на разных компах даже...
Имеем код 1:
Код AS3:
package
{
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.net.URLRequest;
import flash.display.Loader;
import flash.events.*;
 
public class Main extends MovieClip {
 
	public function Main()
{
var mLoader:Loader = new Loader();
var mRequest:URLRequest = new URLRequest("test.swf");
//mLoader.contentLoaderInfo.addEventListener(Event.INIT, onCompleteHandler);
mLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteHandler);
//mLoader.contentLoaderInfo.addEventListener(Event.OPEN, onCompleteHandler);
mLoader.contentLoaderInfo.addEventListener(Event.ACTIVATE, onCompleteHandler);
//mLoader.contentLoaderInfo.addEventListener(HTTPStatusEvent.HTTP_STATUS, onCompleteHandler);
//mLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onCompleteHandler);
mLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onCompleteHandler);
mLoader.load(mRequest);
}
 
private function onCompleteHandler(loadEvent:Event): void
{
	trace(loadEvent);
	trace(loadEvent.currentTarget.content);
	if (loadEvent.currentTarget.content != null) {
	var mc:MovieClip = loadEvent.currentTarget.content;
	addChild(mc);
	mc.init();
	}
}
}
}
и код файла test.swf:
Код AS3:
package 
{
	import flash.display.Sprite;
	import flash.events.Event;
 
	public class Main extends Sprite 
	{
 
		public function Main():void 
		{
			trace("I am main");
		}
 
		public function init():void 
		{
			trace("I am public");
		}
 
	}
 
}
При запуске основной флэшки срабатывает только ACTIVATE и PROGRESS, в трейсе:
Цитата:
[Event type="activate" bubbles=false cancelable=false eventPhase=2]
null
[ProgressEvent type="progress" bubbles=false cancelable=false eventPhase=2 bytesLoaded=0 bytesTotal=813]
null
[ProgressEvent type="progress" bubbles=false cancelable=false eventPhase=2 bytesLoaded=813 bytesTotal=813]
null
Если свернуть и развернуть флэшплеер, срабатывает COMPLETE и INIT.
Цитата:
[Event type="activate" bubbles=false cancelable=false eventPhase=2]
null
[Event type="complete" bubbles=false cancelable=false eventPhase=2]
[object Main]
[Fault] exception, information=ReferenceError: Error #1069: Property init not found on Main and there is no default value.
Fault, onCompleteHandler() at Main.as:32
Метод init() из test.swf не вызывается, хотя объявлен как public.
Если не ставить слушателя на ACTIVATE, то COMPLETE не сработает никогда вообще...
В чем может быть проблема? Куда ковырять?


Последний раз редактировалось HraD; 06.04.2009 в 17:24.
Старый 06.04.2009, 17:36
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 2  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
http://www.flasher.ru/forum/showthread.php?t=120974
Короче одинаковое имя главного класса создает проблему.

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

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

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


 


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


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