Apache flex 了解Flex应用程序和框架

Apache flex 了解Flex应用程序和框架,apache-flex,frame,lifecycle,frame-rate,Apache Flex,Frame,Lifecycle,Frame Rate,出于好奇,我试图理解Flex应用程序使用的生命周期 所以,我对这个论点做了一些研究;FlashPlayer中使用的两个关键概念是: SWF框架:它是包含图形代码和as代码的逻辑单元 Flash Player帧:Flash运行时用于更新屏幕的时间间隔,由frameRate属性定义 如果是这样,你能解释一下这两个概念之间的关系吗?特别是,它们是否配对 主要规则是:Flash播放器在swf中播放流;在读取完整的SWF帧之前,Flash播放器无法渲染它 我会尽力解释我需要理解的东西。为了简单起见,假

出于好奇,我试图理解Flex应用程序使用的生命周期

所以,我对这个论点做了一些研究;FlashPlayer中使用的两个关键概念是:

  • SWF框架:它是包含图形代码和as代码的逻辑单元
  • Flash Player帧:Flash运行时用于更新屏幕的时间间隔,由frameRate属性定义
如果是这样,你能解释一下这两个概念之间的关系吗?特别是,它们是否配对

主要规则是:Flash播放器在swf中播放流;在读取完整的SWF帧之前,Flash播放器无法渲染它

我会尽力解释我需要理解的东西。为了简单起见,假设您有一个两帧应用程序:SWF FR 1和SWF FR 2

通常(例如在CS4中),帧被视为逻辑单元(由ShowFrame标记分隔),您可以在其中附加as3代码。作为swf文件的简化版本,我认为:

  • Header//frameRate在这里定义
  • 符号、类等。//这是FR1 ==显示帧===
  • 符号、类等。//这是FR2 ==显示帧=== 结束
如果有两个帧,FR1和FR2,Flash开始执行FR1并转到下一个帧(FR2)。如果不停止执行,播放器将通过无限循环执行并渲染包含在FR1和FR2中的代码。相反,当您停止执行时,例如在FR2中,flash player循环执行FR2中包含的代码

那么,每个SWF帧是否可以发生多次Flash播放器帧

下载FR1时(FR1未完全加载),是否存在任何enterFrame事件?第一个frameEvent是否在FR1完全加载时发生?FR1在哪段时间内提供? 另一种情况是,如果在FR1中调用了stop命令,则将以指定的速率获取enterFrame(当前帧为FR1)。同时FR2正在下载。完成后,转到下一帧(FR2)。FR2在哪段时间内提供?Flash Player是否尝试将FR2渲染到下一个时间间隔

考虑以下简单顺序:

  • FR1正在下载
  • FR1已完全下载
  • FR1调用stop()方法,同时FR2正在下载
  • FR2已完全下载
  • 转到FR2
  • FR2调用stop()方法
  • 等等
  • 当Flash Player enterFrame事件发生时,您能给我加下划线吗


    谢谢你抽出时间。致以最良好的祝愿,Flex_上瘾了。

    尽管看起来你肯定一直在调查事情,但你的一些假设是不正确的。 Flex是编写在一个漂亮框架中的Flash代码。所以一切都归结为帧,它是代码执行和代码执行、渲染结果的混合体。当所有必需的代码都已执行且渲染过程已完成时,该帧即完成,flash player将移动到下一帧

    因此,您的enterFrame被调用

    现在,作为Flex开发人员,监听enterFrame事件并不常见

    要理解Flex应用程序,您只需将它们视为Flash应用程序,第一帧是加载帧,第二帧是应用程序。这是子部分和它们各自的时间线,构成了所有其余的框架。这个概念肯定会让人困惑,因为他们认为enterFrame应该只调用两次,事实并非如此

    许多人的下一个错误假设是,仅仅因为“没有代码在执行”,帧就不会被调用。事实并非如此。仅仅因为某些东西没有改变,并不意味着帧没有被调用,并且在没有适当检查的情况下,大量的处理不会发生


    HTH

    谢谢您的回复,jonbcampos!!!你能更详细地解释一下这些概念吗?你说框架是什么意思?我真的很感兴趣,我会理解你描述的这个机制。再次感谢你。致以最良好的祝愿,新年快乐如果您已经看过Flash开发环境,那么框架就是时间线上的一个点。最后,一切都只是一部大电影。