AS3从根时间轴获取变量

时间:2015-12-04 21:45:04

标签: actionscript-3 flash movieclip moviecliploader

我的主swf上有这段代码:

var btnLingua : Array = new Array(ITA,DE,LAT,EL);
var lingua:String = "ITA";

for(var i:int=0;i<btnLingua.length;i++){
    btnLingua[i].addEventListener(MouseEvent.CLICK,settaLingua);
}

function settaLingua(event:MouseEvent){
    trace("la lingua selezionata è : " + event.target.name);
    lingua=event.target.name;
    caricamento("scenaProva.swf");
}


var fl_Loader:Loader;

function caricamento(myURL:String):void {
    if(fl_Loader != null){
        contenitore.removeChild(fl_Loader);
        fl_Loader.unloadAndStop();
        fl_Loader = null;
    }
    fl_Loader = new Loader();
    fl_Loader.load(new URLRequest(myURL));
    fl_Loader.contentLoaderInfo.addEventListener(Event.COMPLETE, caricamentoCompleto);
}

function caricamentoCompleto(e:Event):void {
    contenitore.addChild(fl_Loader);
    fl_Loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, caricamentoCompleto);
}

,这在movieClip上:

trace("numero di elementi nella pagina : "+numChildren);
trace(MovieClip(root).lingua);
var lingua : String = MovieClip(root).lingua;

for(var i:int = 0; i<numChildren; i++)
{
    var e:Object = getChildAt(i);

    if(e.name.indexOf("$"+lingua) >= 0){
        e.visible = true;
        trace(e.name + " contiene il carattere di linguaggio");
    }
    else if(e.name.indexOf("$")  >= 0){
        e.visible = false;
    }

}

当我尝试从我的根影片剪辑中获取变量lingua时,我认为“未完成” 请有人帮帮我吗?我正在尝试2天...... 抱歉英语不好,我是意大利人

2 个答案:

答案 0 :(得分:0)

您的主时间轴中没有变量lingua,您有btnLingualing

答案 1 :(得分:0)

我不认为你的孩子SWF你可以使用这条线:
var lingua : String = MovieClip(root).lingua;
因为该代码将在Child SWF添加到舞台之前运行(Flash必须执行第一个代码才能知道要向您展示的内容)。

所以试试像......

var lingua : String = "";

addEventListener(Event.ADDED_TO_STAGE, onReady);

function onReady (evt : Event) : void
{
    trace("numero di elementi nella pagina : " + numChildren);
    //trace(MovieClip(root).lingua);

    lingua = this.parent.parent.lingua; //update string

    for(var i:int = 0; i<numChildren; i++)
    {
        var e:Object = getChildAt(i);

        if(e.name.indexOf("$"+lingua) >= 0)
        {
            e.visible = true;
            trace(e.name + " contiene il carattere di linguaggio");
        }
        else if(e.name.indexOf("$")  >= 0)
        { e.visible = false; }

    }
}