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

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

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

Регистрация: Mar 2006
Адрес: Ростов-на-Дону
Сообщений: 80
По умолчанию stage в загруженном мувике

Здравствуйте, у мну такая проблема, есть фаил 1.swf в нем используюется:

Код AS3:
stage.addEventListener (KeyboardEvent.KEY_DOWN,keyPressed);
private function keyPressed(e) {
trace('hello');
}
я его загружаю в другой свф файл, функция уже не работает. stage'а нету( как можно заставить слушать нажатие кнопки и загруженном свфе?)
спасиба)

Добавлено через 1 час 23 минуты
если оба свфа на 1 домене, тогда работает... странно)

Добавлено через 2 часа 36 минут
Разобрался, можно тереть тему. не работало по соображениям безопасности. файлы были на разных доменах


Последний раз редактировалось nuToH; 02.10.2009 в 02:47.
Старый 10.10.2009, 17:29
Sleepwalker вне форума Посмотреть профиль Отправить личное сообщение для Sleepwalker Найти все сообщения от Sleepwalker
  № 2  
Ответить с цитированием
Sleepwalker
 
Аватар для Sleepwalker

Регистрация: Jul 2006
Сообщений: 26
Погодьте тему закрывать! Что ж мне теперь новую тему создавать? У меня схожая проблема. И не решается. Я уже свой лоб о клавиатуру разбил!

Загружаемый свф - простейший с документ-классом "simple", в котором у меня:
Код AS3:
stage.addEventListener(KeyboardEvent.KEY_DOWN, onkdn);...
В загрузчике:
Код AS3:
var ldr:Loader = new Loader();
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, done);
var req:URLRequest=new URLRequest("Simple.swf")
ldr.load(req);
 
function done(e:Event):void {
	removeChildAt(0);
	percent = null;
	addChild(ldr);
 
/*var programClass:Class = ldr.loaderInfo.applicationDomain.getDefinition("simple") as Class;
	var program: DisplayObject = new programClass();
	addChild(program);*/
}
Ну и ошибка: ссылка на null объект (stage)
Все файлы расположены в одной папке, никаких разных доменов.
Закомментированная чать этого кода - попытка получить класс "simple" не работает, пишет нет такой переменной "simple".

Пробовал еще поюзать:
Код AS3:
var context:LoaderContext = new LoaderContext();
//context.applicationDomain = ApplicationDomain.currentDomain;
ldr.load(req,context);
Так тут плейер (v 9.045) ваще слетает.
Короче не знаю, как же мне передать клавишное событие в загрузчик.

Уже обчитался форумов и здесь тем по этому поводу, ну скажите в чем ошибка, что не так, ведь упростил пример до безобразия, все плоско и понятно, но почему не работает нихрена!? ХЭЛП!

Старый 10.10.2009, 17:52
murz вне форума Посмотреть профиль Отправить личное сообщение для murz Найти все сообщения от murz
  № 3  
Ответить с цитированием
murz
[+1 10.12.10]

Регистрация: Feb 2006
Сообщений: 148
Отправить сообщение для murz с помощью ICQ
кхе-кхе. Стэйдж доступен после получения события Event.ADDED_TO_STAGE.
все просто. В загружаемой флешке, Слушайте выше упомянутое, события, после его получения делайте подписку на KeyboardEvent.KEY_DOWN.

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

Регистрация: Jul 2006
Сообщений: 26
Понял. Стейдж доступен. Спасибище.

А все же интересно, что не так с вышеупомянутым кодом:
Код AS3:
var programClass:Class = loaderInfo.applicationDomain.getDefinition("simple") as Class;
	var program: DisplayObject = new programClass();
	addChild(program);
ReferenceError: Error #1065: Variable simple is not defined.

Тоже, наверное, вызывать в определенный момент? Или вообще такого не писать никогда?

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

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
Код AS3:
var programClass:Class = ldr.contentLoaderInfo.applicationDomain.getDefinition("simple") as Class;
у лоадера ссылка на loaderInfo загружаемого контента это contentLoaderInfo
а у тебя ссылка на loaderInfo загружающей флешки, в которой походу нет simple


Последний раз редактировалось silin; 10.10.2009 в 19:09.
Старый 10.10.2009, 21:14
Sleepwalker вне форума Посмотреть профиль Отправить личное сообщение для Sleepwalker Найти все сообщения от Sleepwalker
  № 6  
Ответить с цитированием
Sleepwalker
 
Аватар для Sleepwalker

Регистрация: Jul 2006
Сообщений: 26
2: silin
Я подозревал, что именно так должно быть и даже пробовал, НО при такой записи флеш-плеер слетает, приложение закрывается!
Что-то софтец у меня кривоватый CS3 или нет?

Да, собсно, так и есть - кривой. Слетает в тестовом режиме, но если публиковать, то потом плеер нормально открывает swf.
Спасибо за помощь.


Последний раз редактировалось Sleepwalker; 10.10.2009 в 21:53.
Создать новую тему Ответ Часовой пояс GMT +4, время: 23:37.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

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

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


 


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


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