передать значения var от одного SWF к другому SWF, который загружается внутри первого в AS3 - PullRequest
1 голос
/ 02 января 2011

я использую этот метод для загрузки SWF внутри другого SWF: (этот код внутри main.swf)

function loadImage(url:String):void {
imageLoader = new Loader();
imageLoader.load(new URLRequest(url));
imageLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, imageLoading);
imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoaded);
}
loadImage("test1.swf");

function imageLoaded(e:Event):void {
MyMovieClip.addChild(imageLoader); 
} 

Думаю, что test1.swf нужно значение, которое находится в загрузчике swf (main.swf), как мне передать значение? Спасибо!

Ответы [ 2 ]

1 голос
/ 02 января 2011

Вы можете создать класс для загруженного SWF (test1.swf), который можно назначить с помощью класса Document.

В этом классе создайте установщик для значений, которые необходимо передать загруженному SWF-файлу.

   //Here the choice of Array is arbitrary & depends on what values
   //you need to pass to the SWF...
   private var _params:Array;
   public function set params( value:Array ):void
   {
      _params = value;
   }

Затем в своем основном классе вы можете сделать следующее:

  //Assuming you'd like to pass a number of values...
  function imageLoaded(e:Event):void {

      var content:MovieClip = imageLoader.content as CustomClass;
      content.params = [ value1 , value2... valueN];
      MyMovieClip.addChild(content);
  } 
0 голосов
/ 02 января 2011

Вам нужно получить доступ к содержимому загрузчика, чтобы сделать это. В вашей функции imageLoaded сделайте это.

( e.target.content as Object ).someParam = "whatever";

Существует ряд ограничений безопасности (это называется кросс-скриптингом), но если вы загружаете два swfs из одного домена, у вас не должно возникнуть проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...