2013-02-07 16 views
-1

好目标变量。所以我有一个功能,我已经通过了一项参数通过它叫做对象名。不,我不知道如何做到这一点或解释它。所以在这里。AS3 - 使用另一个变量字符串值

public function moveObject(ObjectName):void{ 


      //objectName now holds "myName" which is an object also 

      //i would now like my variable called myNamePosition to equal 10 

      //so it would need to grab the value of objectName which is myName:Object. 
      //turn it into a string of some kind - myName:string 
      //add "Position" to the end of it so its myNamePosition 
      // make it equal to 10 

      trace(myNamePosition); 

    } 

通过的函数参数会改变,所以我实际上不能使用“myName”。而是“objectName”。

感谢

回答

1

例子:

package 
{ 
import flash.display.MovieClip; 


public class astest extends MovieClip 
{ 
    public function astest() 
    { 
     init(); 
    } 

    private var myNamePosition:int; 
    private function init():void 
    { 
     moveObject({myName:{}}) 
    } 

    public function moveObject(objectName:Object):void 
    { 
     var propName:String; 
     for(propName in objectName) 
      break; 
     trace(propName); 

     propName+="Position"; 
     trace(propName); 

     this[propName] = 10; 

     var propValue:* = this[propName]; 
     trace(propValue); 
    } 
} 
} 

输出:

myName 
myNamePosition 
10 

难道你需要什么?

+0

差不多。我认为。我收到一个错误:ReferenceError:错误#1056:无法在游戏上创建属性myNamePosition。 错误来自“this [propName] = 10” –

+0

我希望myNamePosition取值为10. –

+0

_this [propName] _是对fla文件中类实例或变量属性的引用。错误测量你没有这样的变量。 – fsbmain