-1

我的主 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);
}

这在电影剪辑上:

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 天...抱歉英语不好,我是意大利人

4

2 回答 2

0

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

于 2015-12-04T21:48:34.217 回答
0

我不认为在您的子 SWF 中您可以使用该行:
var lingua : String = MovieClip(root).lingua;
因为该代码将在子 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; }

    }
}
于 2015-12-06T15:13:25.367 回答