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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 22.03.2015, 23:58
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 1  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
По умолчанию Не отрабатывают события внутреннего контейнера

Парни странная тема творится , не могу понять в чем мистика :
Имеем флешка A , которая грузит флешку B
Из флешки B послыается событие типа new Event("mnogoBukav")
Во флешке А подписывается флешка B - ждем события.

Ранее был такой косяк, что не летело событие текстовое его название было "ierror" . Однако сменив его на ixerror например - стало летать....

Сейчас такая же петрушка с названием например waslogged - но в данной ситцуации на что не меняй название событие не летит.
А вот теперь по делу : события пркрасно отрабатывают тестируй я локально, но в сети - нет.

В чем может быть трабла? ( P.s. пробовал по разному, как с создание кастома, так и просто текстом - все одно не летит )
__________________
Марк Tween

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

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
в "чистом виде" трабл не воспроизводится
стало быть, есть еще какие-то "отягчающие" обстоятельства

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

Регистрация: Oct 2006
Сообщений: 2,281
проверь ApplicationDomain.

Старый 23.03.2015, 15:02
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 4  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
silin - да если бы я не мог диагностировать косяк в коде - грошь мне цена была бы, если ты об этом. Тут именно какой специфический флешовый типа аля ApplicationDomain как undefined - пишет.
Вот полный пример
А - cont.addEventListener(ExternalEvent.NAME, some);
B - Main - > controller - > host.dispatchEvent(new Event("name"))
Флешка А и B - документ Main.
Заявляю авторитетно , что было прям именно так, что вначале событие звалось ierror не приходило, кроме как изменив название на ixerror ничего не делал - стало приходить. Есть мнения почему такое было возможно?
Как мне кажется вплоне возможно что такое имя евента есть в стандарте поэтому оно как то игнорилось

Добавлено через 48 секунд
P.s/.
Опять же, как уже сказал - локально пашет на ура - не работает только в сети
__________________
Марк Tween

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

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
речь не о косяке в коде, а о том, что описанная тобой ситуация в голом виде не дает такого косяка
вот тест трабла, который работает
добавь сюда свои нюансы (если что-то не соответствует), чтоб перестало и что-то, возможно, прояснится, а иначе это гадания на кофейной гуще..

Код AS3:
private var loaader:Loader;
public function Main():void 
{
	loaader = new Loader();
	loaader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaader_complete);
	addChild(loaader);
	loaader.load(new URLRequest("test.swf"));
	Console.register(stage, 500, 200);
	Console.log("click quadrate to dispatchEvent");
	Console.visible = true;
	Console.x = 150;
 
}
 
private function loaader_complete(e:Event):void 
{
 
	var test:Sprite = loaader.content as Sprite;
	test.addEventListener("mnogoBukav", test_mnogoBukav);
 
}
 
private function test_mnogoBukav(e:Event):void 
{
	Console.log( "Main.test_test > e : " + e );
 
}
Код AS3:
public class Test extends Sprite 
{
 
	public function Test():void 
	{
		var body:Sprite = new Sprite();
		body.graphics.beginFill(0);
		body.graphics.drawRect(0, 0, 100, 100);
		body.addEventListener(MouseEvent.CLICK, body_click);
		addChild(body);
		buttonMode = true;
	}
 
	private function body_click(e:MouseEvent):void 
	{
		dispatchEvent(new Event("mnogoBukav"));
	}
 
}

Старый 23.03.2015, 15:21
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 6  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
silin - обе флешки должны быть Main или это не имеет значения?
__________________
Марк Tween

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

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
обе флешки не могут быть Main или же это должны быть одинаковые флешки, нельзя иметь два разных Main в одном ApplicationDomain (нельзя загрузить Main в флешку, где уже есть такой класс)


Последний раз редактировалось silin; 23.03.2015 в 15:54.
Старый 23.03.2015, 19:25
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 8  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Цитата:
обе флешки не могут быть Main или же это должны быть одинаковые флешки, нельзя иметь два разных Main в одном ApplicationDomain (нельзя загрузить Main в флешку, где уже есть такой класс)
ммм. Почему это нельзя? Мне можно всю жизнь так грузил и работал, или ты имеешь ввиду, что могут быть проблемы из за этого как раз?
__________________
Марк Tween

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

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Полагаю, что ты всю жизнь не знал, в какой ApplicationDomain ты загружаешь свои флешки. Потому что при попытке загрузить в ApplicationDomain класс с именем, которое в этом ApplicationDomain уже зарегистрировано, ты получишь что класс не будет заменен. Загруженной флешкой будет использоваться класс, который был в ApplicationDomain до ее загрузки. Да-да, именно так =)
__________________
...вселенская грусть

Старый 23.03.2015, 20:17
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 10  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
gloomyBrain - вот хз что то. Структура такая
A - someNameDocumentNotMain
B - Main
C- Main
а грузит б, б - грузит с. Коннект событий между б и с соответсвенно.
Загрузка происходит как раз таки в new AppDomain
Код AS3:
const context:LoaderContext = new LoaderContext(false, new ApplicationDomain());
__________________
Марк Tween

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

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

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


 


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


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