首页 > 解决方案 > 从函数修改变量

问题描述

你能给我一些关于如何从函数中为变量赋值的想法吗?

我所做的是加载 txt 的内容,但我需要它而不是提供动态文本(有效),而是提供一个我可以在函数外部使用的变量。我想将 txt 的内容提供给在函数外部声明的变量“textito”。

有任何想法吗?

文本“teet1”仅用于测试,我真正需要的是为变量“textito”赋值,因为我需要在函数之外使用它。咯咯哈

override public function SetData(xmlData:XML):void 
    {           
       for each (var element:XML in xmlData.children())
       {

        if (element.@id == "f0")        
          {
            var textito:String
            var f0 = element.data.@value.toString();
            var f0A:String = f0.substr(-4);
            var loader:URLLoader = new URLLoader(new URLRequest("C:/Users/Nicolás Agüero/Desktop/Test/" + f0));
            loader.addEventListener(Event.COMPLETE, onFileLoaded);
            function onFileLoaded():void
                {
                    textito = loader.data;
                }

            teet1.text = textito;

        } 

        }

    }

标签: functionvariablesactionscript-3

解决方案


任何需要全局访问的变量都应该在任何函数之外声明。

尝试这样的设置:

public var textito :String = "";
public var loader :URLLoader;

override public function SetData(xmlData:XML) :void 
{           
    for each (var element:XML in xmlData.children())
    {
        if (element.@id == "f0")        
        {
            var f0:String = element.data.@value.toString();
            var f0A:String = f0.substr(-4);

            loader = new URLLoader();
            loader.addEventListener(Event.COMPLETE, onFileLoaded);
            loader.load( new URLRequest("C:/Users/Nicolás Agüero/Desktop/Test/" + f0) );
        }

    }
}

public function onFileLoaded(evt:Event) :void
{
    textito = loader.data; //can also try... evt.data ...since the Event gives Loader its data.
    teet1.text = textito;
}

推荐阅读