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

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

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

Регистрация: May 2011
Сообщений: 72
По умолчанию вызов методов из загруженной swf

Пытаюсь разобраться в этом примере.
Научите заставить видеть главный класс метод setMovie()

Код AS3:
public class Unit extends MovieClip {
	public function Unit(){
		nMovie = 0;
		curMovie = -1;
		curFrame = 0;
		addEventListener(Event.ENTER_FRAME,onEnterFrameFunc);
		stop();
	}
 
	public function setMovie(i:int){
		trace(i);
		nMovie = i;
	}
}
Код AS3:
public class Main extends MovieClip {
 
	public var unit:Object;                //пробовал и так  unit:Unit          import Unit.as
	public var unitReq:URLRequest;
	public var unitLoader:Loader;
 
        unitReq = new URLRequest(host+'/Unit.swf?'+Math.random());
        unitLoader = new Loader();
        unitLoader.load(unitReq);
        unitLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,unitLoaded);
 
 
	public function unitLoaded(e:Event){
		unitLoader.contentLoaderInfo.removeEventListener(Event.COMPLETE,unitLoaded);
		unitLoader.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS,unitLoadProgress);
		unit = unitLoader.content;
                unit.setMovie(1);
        }

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
http://flasher.ru/forum/showpost.php...4&postcount=10
__________________
Reality.getBounds(this);

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

Регистрация: Feb 2010
Адрес: Город суеты
Сообщений: 191
Что бы была возможность определить unit как unit:Unit, необходимо флешку загрузить в текущем домене.
__________________
FlashPress.ru | Blog

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

Регистрация: May 2011
Сообщений: 72
знакомое слово интерфейс
Спасибо. Пороюсь, отпишусь.

Добавлено через 1 час 43 минуты
я на столько криворукий, что не умею копи-пастить?
Код AS3:
			public var unit:UnitInterface;
			...
			trace(unitLoader.content);
			unit = unitLoader.content as UnitInterface;
			trace(unit);
Выводит:
[object Unit]
null

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

Регистрация: Feb 2010
Адрес: Город суеты
Сообщений: 191
Загружайте в текущем(!) домене:
Код AS3:
var loader:Loader = new Loader();
var context:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain);
loader.load(new URLRequest('...'), context);
__________________
FlashPress.ru | Blog

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

Регистрация: Jan 2006
Адрес: Москва (Нижний Новгород)
Сообщений: 229
Записей в блоге: 1
Отправить сообщение для KBAC с помощью Skype™
у вас Unit не имплементит UnitInterface, а должен, чтобы после
Код AS3:
unit = unitLoader.content as UnitInterface;
не null было
__________________
Будь проще.

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

Регистрация: May 2011
Сообщений: 72
Цитата:
Сообщение от KBAC Посмотреть сообщение
у вас Unit не имплементит UnitInterface, а должен, чтобы после не null было
Вот код Unit.as. Поэтому и смущает меня, что нельзя просто написать unit = e.currentTarget.content;

Код AS3:
package as3 {
 
  import flash.display.MovieClip;
  import flash.events.*;
  import as3.UnitInterface;
 
  public class Unit extends MovieClip implements UnitInterface {
p.s.: про домен не понял, гуглю что это такое.

Старый 03.06.2013, 18:15
maincode вне форума Посмотреть профиль Отправить личное сообщение для maincode Посетить домашнюю страницу maincode Найти все сообщения от maincode
  № 8  
Ответить с цитированием
maincode

Регистрация: Feb 2010
Адрес: Город суеты
Сообщений: 191
Цитата:
Сообщение от warsem Посмотреть сообщение
p.s.: про домен не понял, гуглю что это такое.
Читайте здесь
__________________
FlashPress.ru | Blog

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Класс Main тоже в пакете as3? Домен интерфейсу не важен, но имя должно совпадать полностью.
__________________
Reality.getBounds(this);

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

Регистрация: May 2011
Сообщений: 72
Цитата:
Сообщение от Wolsh Посмотреть сообщение
Класс Main тоже в пакете as3?
все *.as в папке аs3(там и классы и интерфейс)

Цитата:
Сообщение от Wolsh Посмотреть сообщение
Домен интерфейсу не важен, но имя должно совпадать полностью.
т.е. я где то опечатался и не правильно указал имя интерфейса?


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

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

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


 


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


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