as3 внешне загруженный SWF из сети для управления внешне загруженным SWF из сети - PullRequest
0 голосов
/ 15 марта 2012

У меня было несколько подобных сообщений, но я не дошел до окончательного ответа, поэтому я собрал это изображение, чтобы попытаться объяснить, что я пытаюсь сделать. Я ТАК ЗАКРЫТ. если вы можете мне помочь, СПАСИБО ТАК ОЧЕНЬ. До сих пор работал над этим.

КАК КОНТРОЛИРОВАТЬ ДЕТЕЙ ВНЕ ВНЕШНЕГО НАГРУЗКА SWF ИЗ КОДА В ДРУГОГО НАРУЖНОГО НАГРУЖЕНИЯ SWF? РЕДАКТИРОВАТЬ: Ниже приведен код ТЕ, расположенный в "ONE.swf" , с которым мне нужна помощь. Просто одну или две строки, которые я знаю, но я просто не могу их получить.

function FunctionInOne()
{
var parentObj:Object = this.parent.parent as Object; //// GIVES ACCESS TO "Content.swf"
var TheStage:Object = this.parent.parent.parent as Object; //// GIVES ACCESS TO STAGE
trace(TheStage.stage.stageWidth);
trace(parentObj);  ///    [object MainTimeline]
trace(parentObj.ONE); /// [object Loader]
trace(parentObj.TWO); ///  [object Loader]

parentObj.alpha = .3; /// NOW I CONTROL THE ALPHA OF "Content.swf" from ONE.swf
var ControlTWO:Loader = parentObj.TWO; // GIVES ACCES TO LOADER TWO

ControlTWO.alpha = .3; // NOW I CONTROL THE ALPHA OF TWO.swf from ONE.swf


BUT HOW DO I GET ACCESS TO CONTROL THE CHILDREN IN "TWO.swf" from "ONE.swf"


var TWOchildren:MovieClip = MovieClip(TWO.content); // DOES NOT WORK
TWOchildren.ChildInTWO.alpha = .3;


var TWOchildren = TWO.content as MovieClip; // DOES NOT WORK
TWOchildren.ChildInTWO.alpha = .3;  // DOES NOT WORK

TWOchidren.FunctionInTWO(); /// DOES NOT WORK

}

РЕДАКТИРОВАТЬ: 16 марта 2012

Я могу получить доступ к SWF TWO.swf из ONE.swf и контролировать его альфа с помощью этой строки:

trace(MovieClip(parent.parent).ONE); 

Но мне нужно контролировать ребенка, поэтому я подумал, что следующий код будет работать, но это не так:

MovieClip(parent.parent).ONE.TheChild.alpha = .3;

КОНЕЦ РЕДАКТИРОВАНИЯ ---------------

I PUT THIS GRAPHIC TOGETHER TO HELP SHOW WHAT I AM TRYING TO DO. Вот еще одна ссылка на нее, если вы можете ее увидеть: http://mycontactcorner.com/sandbox/testing/ChildTwo.jpg

Ответы [ 3 ]

2 голосов
/ 17 марта 2012

Хорошо, я нашел это!

var InsideConent:Object = this.parent.parent as Object; //// GIVES ACCESS TO "Content.swf"
var ItWorksNow:Sprite = MovieClip(InsideConent.TWO.content).ChildInTWO;  /// 

ItWorksNow.x = 333;  /// I can control property x
ItWorksNow.alpha = .3;  /// I can control the ALPHA! :)
0 голосов
/ 16 марта 2012

MovieClip (parent.parent) .function (); наоборот ссылка на мувиклип.OtherChildmoviename.function ();

в этой структуре вы можете вызывать функцию из любого места или где-либо еще для лучшего объяснения, проверьте actionScript 2, так как он использует _root, это может сделать вышеуказанное более понятным

давайте не будем, как вы идете;

0 голосов
/ 15 марта 2012

Сложный стиль программирования:]

к вашим загрузчикам добавьте это, оно должно помочь:

import flash.system.ApplicationDomain;
import flash.system.LoaderContext;
var loader:Loader = new Loader ( urlRequest , new LoaderContext(false, ApplicationDomain.currentDomain));

Вторая вещь:

Вам следует попробовать доступ к контенту, если вы убедитесь, что он загружен. Поэтому начните загрузку второго SWF-файла с загрузкой полной функции первого SWF-файла, и вы должны отследить (TWO.content) и посмотреть, есть ли что-нибудь уже загруженное.

...