检查已加载的数据

向 SWF 文件加载数据的每个函数或方法(除了 XMLSocket.send() 之外)都是异步的:动作结果返回的时间不确定。

在 SWF 文件中使用已加载数据之前,必须检查它是否已被加载。例如,您不能在同一脚本中加载变量并操作它们的值。在下面的脚本中,只有确保已从文件 myData.txt 加载了变量
lastFrameVisited,才能使用该变量:

loadVariables("myData.txt", 0);
gotoAndPlay(lastFrameVisited);

每个函数或方法都有一种特定的技术,您可以使用该技术检查数据是否已被加载。如果使用 loadVariables()loadMovie(),则可以向影片剪辑目标中加载信息,并使用 onClipEvent() 处理函数的 data 事件来执行脚本。如果使用 loadVariables() 加载数据,则在最后一个变量加载后将执行 onClipEvent(data) 处理函数。如果使用 loadMovie() 加载数据,则每次 SWF 文件的片断进入 Flash Player 时都会执行 onClipEvent(data) 处理函数。

例如,下面的按钮动作从文件 myData.txt 中向影片剪辑 loadTargetMC 加载变量:

on (release) {
  loadVariables("myData.txt", _root.loadTargetMC);
}

loadTargetMC 实例指定的 onClipEvent() 处理函数使用变量 lastFrameVisited,它是从文件 myData.txt 中加载的。下面的处理函数只有在加载了所有变量(包括 lastFrameVisited)之后才执行:

onClipEvent(data) {
  goToAndPlay(lastFrameVisited);
}

如果使用 XML.load()XML.sendAndLoad()XMLSocket.connect() 方法,则应该定义一个在数据到达时对其进行处理的处理函数。这个处理函数是 XML 或 XMLSocket 对象的一个属性,您要为该对象指定一个已定义的函数。当接收到信息时自动调用这些处理函数。对于 XML 对象,使用 XML.onLoad()XML.onData()。对于 XMLSocket 对象,使
用 XMLSocket.onConnect()

有关更多信息,请参见使用 XML 类使用 XMLSocket 类