Flash Player如何加载主SWF文件?

Exp*_*Exc 5 flash actionscript load lazy-loading

更新:

似乎每个人都没有彻底阅读我的问题,所有答案都建议我预加载或使用外部资产.所以任何愿意回答的人,请在这篇文章中注意大胆的问题.谢谢!


我正在开发一个只有一个SWF文件的简单Flash应用程序.我希望SWF电影尽快开始播放,所以我没有为它构建预加载器.如果我的动作脚本代码引用了尚未加载的资源,会发生什么?

例如,当电影刚加载1到帧20时,代码会导致播放头从一帧跳到另一帧10.在那种情况下,flash播放器会吗?

  • 阻止脚本执行,停止播放,继续从帧加载1120(不执行脚本),跳转到帧20并在加载时调用该帧的脚本?
  • 阻止脚本执行,停止播放,忽略装载架1119,负载框架20,跳转到框架20,并在此框架调用脚本?
  • 忽略跳转到帧20,在转到帧20语句后继续执行下一个语句?
  • 还是其他什么?

如果flash player没有忽略跳转到帧20,那么event当帧20完全加载时会触发任何一个吗?

注意:第一个问题的答案应该集中在我的例子上,涵盖所有情况(例如从库中附加电影......)更好,但不是必需的.

谢谢!

Exp*_*Exc 0

我使用 Adob​​e Flash Professional 进行了一些测试,以便找到我的问题的答案。有兴趣的每个人都可以通过在 Adob​​e Flash 中执行以下步骤来重现测试:

  1. 例如,创建具有某些帧的电影,每个帧包含一个图像和一些动作脚本代码。
  2. 在 Flash Professional 中选择菜单Control -> Test Movie ->:将显示调试播放器
  3. 在调试播放器中,选择菜单“查看”->“下载设置”,然后选择您所需的下载速度
  4. 另外,在调试播放器中,确保选中“视图”菜单下的“带宽分析器”“模拟下载” 。

如果脚本不更改播放头,Flash 播放器将:

  1. 加载第 1 帧并等待其完全加载
  2. 转到第 1 帧
  3. 在第 1 帧上执行脚本
  4. 展示架1
  5. 对第 2 帧执行上述步骤,依此类推...(停留在第 1 帧直到第 2 帧完全加载,然后转到第 2 帧,执行脚本,显示...)

如果脚本更改播放头,例如从第 1 帧跳到第 20 帧,Flash 播放器将:

  1. 继续执行第 1 帧中的所有脚本语句(即使这些语句位于跳转语句之后)并显示第 1 帧。
  2. 如果加载了第 20 帧,则跳转到第 20 帧,在其上执行脚本并显示它。如果未加载,则跳转到最近的加载帧(在我的示例中,问题是帧 10),但不要在该帧上执行脚本。