передача данных от родителя к ребенку в actionScript3? - PullRequest
0 голосов
/ 10 ноября 2011

У меня есть два swf, A.swf и B.swf: B.swf - потомок A.swf. Я хочу получить доступ к переменной a.swf в b.swf. Возможно ли это? Как я могу это сделать?этот?объясните пожалуйста с примером.Заранее спасибо

loader.load(new URLrequest"b.swf"));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, swfLoaded)
function swfLoaded(e:Event):void
{
 data= e.target.content;    //data is the String  i declared outside                
 mainContainer.addChild(loader);In this Loader i want to dispaly the data
}

Ответы [ 3 ]

0 голосов
/ 10 ноября 2011

Предположим, что это класс документа в b.swf:

public Class B extends MovieClip {
   protected var _theVar:String;
   public function get theVar():String {
      return _theVar;
   }
   public function set theVar(value:String):void {
      if (value != _theVar) {
         _theVar=value;
         //do something here with the new value
      }
   }
   public function B () {
      super();
   }
}

в документе класса а:

//this will be inside a function that detects that the content has been loaded
var bContent = yourLoader.loaderInfo.content as B;
bContent.theVar = 'some value';
0 голосов
/ 10 ноября 2011

Если вы просто хотите передать значение загруженному SWF, вы можете использовать объект параметров, см. AS3 Передача FlashVars загруженному SWF

0 голосов
/ 10 ноября 2011

ДА, возможно.

var myObj:Object = new Object();
var swfLoader:Loader = new Loader();

var swfFile:URLRequest=new URLRequest("b.swf");
swfLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, swfLoadedHandler);
swfLoader.load(swfFile);

private function swfLoadedHandler(e:Event):void {
    myObj = e.target.content;
    //trace(myObj.mcBanner.prevImage);
}

Теперь myObj var содержит загруженное содержимое SWF. U может легко получить доступ.

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