【问题标题】:Dynamic variables in ActionScript 3.0ActionScript 3.0 中的动态变量
【发布时间】:2009-06-20 17:23:59
【问题描述】:

so.... eval() 不可能,有什么想法吗?我也不知道如何在 actionscript 3 中使用“this”表达式或 set()(我似乎找不到任何完整的参考),只是通过 php 文件说一个多变量(test1、test2、test3、. ..) 由“echo”发送,flash 应用程序如何收到它?我试图不在 mysql 上使用 xml 到 php 来闪存应用程序。简单地说,如何将字符串更改为变量?

例子

(在 as3-actions 框架面板中)

function datagridfill(event:MouseEvent):void{
   var varfill:URLVariables = new URLVariables();
   varfill.tell = "do it";
   var filler:URLRequest = new URLRequest();
   filler.url = "http://127.0.0.1/flashdbas3/sendin.php";
   filler.data = varfill;
   var filling:URLLoader = new URLLoader();
   filling.dataFormat = URLLoaderDataFormat.VARIABLES;
   filling.load(filler);
   filling.addEventListener(Event.COMPLETE, datain);

   function datain(evt:Event){
      var arraygrid:Array = new Array();
      testing.text = evt.target.Name2 // worked
      // just say i = 1
      i=1;
      arraygrid.push({Name:this["evt.target.Name"+i],
                      Test:this.["evt.target.Test"+i]}); // error
      //or
      arraygrid.push({Name:this["Name"+i],
                      Test:this.["Test"+i]}); // error too
      // eval() noexistent, set() didn't worked on actions frame panel
      //?????
   }   
};

我希望它很清楚。

【问题讨论】:

  • 我发布了一个答案,但您的问题没有明确表述。为清楚起见进行修改,并添加更详细的说明来说明您正在尝试执行的操作,您将获得更好的结果。

标签: actionscript-3


【解决方案1】:

如果我理解您的问题,您可以使用 this[varName]。

因此,如果 varName 是一个包含字符串的变量,该字符串应该是一个变量名,您可以像这样设置和读取该变量:

this[varName] = "someValue";
trace(this[varName]);

更新:

在您的示例中,您可以尝试:evt.target["Test"+i] 而不是 Test:this.["evt.target.Test"+i]

【讨论】:

    【解决方案2】:

    如果您想将一组字符串与值关联起来,标准的 AS3 方法是将对象用作哈希表:

    var o = {}
    o["test1"] = 7
    o["test2"] = "fish"
    print(o["test1"])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-25
      • 1970-01-01
      • 2013-05-28
      • 1970-01-01
      • 2011-02-25
      • 1970-01-01
      相关资源
      最近更新 更多