Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   обмен переменными (http://www.flasher.ru/forum/showthread.php?t=130236)

zombig 21.09.2009 15:52

обмен переменными
 
Добрый день!

Возможно вопрос прозвучит туповато, но...

есть флешка hint.swf, в которой присутствует TexField (type = "DYNAMIC"). Эта флешка грузиться во внешней флешке main.swf

Код AS3:

 
var tRequest:URLRequest = new URLRequest("./hint.swf");
var tLoader:Loader = new Loader();
tLoader.load(tRequest);
addChild(tLoader);

Вопрос: как из main.swf можно изменить hint.swf. На AS2 просто делал значения изменяемых "объектов" с параметром _global, а как сделать на AS3.0 - не могу сообразить. Через
Код AS3:

var tVars:URLVariables = new URLVariables("hText = test");
tRequest.data = tVars;

Не работает. Пишет, что фаил не найден. А надо грузить вложенный мувик как локально, так и с сервака (в зависимости от различных ситуаций).

ladon 21.09.2009 16:47

заведи в классе флешки hint.swf метод типа
Код AS3:

public function SetTextValue(text:String):void{
  myTextField.text = text;
}

когда заканчиваеim загружать hint доставай из него содержимое, используй этот метод

zombig 21.09.2009 17:01

Цитата:

когда заканчиваеim загружать hint доставай из него содержимое, используй этот метод
Простите, а как "достать" из него содержимое?

Добавлено через 4 часа 11 минут
Что-то я не могу вкурить, дайте хоть направление где почитать. Сделал метод

Код AS3:

                public function setTitleText(t:String = "[HINT]"):void {
                        win.hintTitle.text = t;
                }

А как после подгрузки флешки вызвать этот метод?

Felicast 21.09.2009 22:45

можно использовать интерфейсы (hint реализует интерфейс, main его использует)

ladon 22.09.2009 11:45

Код AS3:

private  var tRequest:URLRequest
private var tLoader:Loader;
 
public function LoadSwf():void {
  tRequest = new URLRequest("./hint.swf");
  tLoader = new Loader();
  tLoader.load(tRequest);
  //addChild(tLoader);
  tLoader.addEventListener(Event.COMPLETE, LoadingCompleteHandler);
    /// обработчики ошибок надо завести
  tLoader.addEventListener(IOErrorEvent.IO_ERROR, ErrorHandler);
  tLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, ErrorHandler);
 
}
 
public function LoadingCompleteHandler(event:Event):void{
  var content : * = tLoader.content;
  // контент это твой класс hint.swf, дергай из него чего хочешь
  addChild(content);
  content.setTitleText("test");
}


kackbip 22.09.2009 12:23

Цитата:

надо грузить вложенный мувик как локально, так и с сервака (в зависимости от различных ситуаций).
Политика безопасности fp такое не позволит.

zombig 22.09.2009 13:47

Почему не позволит? Если в SecurityPanel разрешить флешу подгружать локальные данные, то все нормально будет (только это уже придеться делать каждому юзверю в отдельности) :) а с сервака грузить буду по crossdomain.xml разрешениям.

Добавлено через 37 минут
ladon Спасибо, только опытным путём, по средствам курения доков есть поправка в ваш топ.

Вот это:
Код AS3:

tLoader.addEventListener(Event.COMPLETE, LoadingCompleteHandler);

надо менять вот на это.

Код AS3:

tLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,complateHandler);

т.к. класс Loader не передёт в поток событий информации о загружаемом контенте. Информация содержится в классе contentLoaderInfo.

Добавлено через 3 часа 50 минут
И ещё, можно по подробнее про интерфейсы, а то я с ними ни разу не работал. т.е. у меня есть:

IHint.as
Код AS3:

package{
  public interface IHint {
  {
  function setTitleText(s:String = ""):void;
  }
}

есть hint.as
Код AS3:

package{
  public class hint implements IHint {
    // some methods
  public function setTitleText(s:String = ""):void {}
  }
}

И теперь через этот интерфейс я могу обратиться к классу hint? Разве при этом елемент класса будет взаимодействовать с интерфейсом? и как вообще потом обратиться к интерфейсу?


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

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