Florian が指摘するように、getDefinitionByName
特に Class 参照を取得するためのものです。たとえば、「flash.net.URLLoader」のようなものは、URLLoader クラスへの参照を提供します。名前で通常の変数を取得するためには使用されません (したがって、「N」が のプロパティであっても、「evt.target.data.N」は何も返しませんdata
)。
「 A=tileA&B=tileB&C=tileCevt.target.data
」の行に沿った長い文字列のように聞こえます。その場合は、最初にその文字列を解析して変数を分離する必要があります。そのデータ形式 (flash.net.URLVariables) で URLVariables を使用できるはずです。その後、 [ ] 配列アクセス演算子を使用して、解析された変数を読み取ることができます。したがって、次のようなことができます。urlVariablesObject["variableName"]
import flash.events.Event;
import flash.net.URLVariables;
import flash.net.URLLoader;
import flash.net.URLRequest;
var loader:URLLoader = new URLLoader();
var parsedData:URLVariables;
var mapData:Array = [["A", "B", "C"], ["D", "E", "F"]];
loader.addEventListener(Event.COMPLETE, externalFileLoaded);
loader.load(new URLRequest("externalFile.txt"));
// externalFile.txt contains "A=tileA&B=tileB&C=tileC&D=tileD&E=tileE&F=tileF".
function externalFileLoaded(evt:Event):void {
parsedData = new URLVariables(evt.target.data);
var tileID:String = readMap(0, 1);
trace(tileID); // "tileB".
}
function readMap(i:uint, j:uint):String {
var mapValue:String = mapData[i] [j];
var tileID:String = parsedData[mapValue];
return tileID;
}