繁体   English   中英

了解Flex应用程序和框架

[英]Understand Flex Application and Frames

在好奇心驱使下,我试图了解Flex应用程序使用的生命周期。

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

  • SWF框架:它是包含图形代码和as代码的逻辑单元
  • Flash Player帧:这是Flash运行时用来更新屏幕并由frameRate属性定义的时间间隔

如果是这样,您能在这两个概念之间解释我的关系吗? 尤其是,它们是否与长笛配对?

主要规则是:Flash Player以swf流式传输; 在读取完整的SWF帧之前,Flash Player无法渲染它。

我将尝试解释我需要了解的内容。 为简单起见,假设您有两个框架应用程序:SWF FR 1和SWF FR 2。

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

  • 标头// frameRate在此处定义
  • 符号,类等…//这是FR1 === ShowFrame ===
  • 符号,类等…//这是FR2 === ShowFrame ===结束

如果有两帧FR1和FR2,则Flash开始执行FR1,然后转到下一帧(FR2)。 如果不停止执行,播放器将通过无限循环执行并渲染FR1和FR2中包含的代码。 相反,例如在FR2中停止执行时,Flash Player会循环执行FR2中包含的代码。

那么,每个SWF框架能否多次播放Flash Player框架?

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

考虑以下简单顺序:

  1. FR1正在下载
  2. FR1已完全下载
  3. FR1调用stop()方法,与此同时FR2正在下载
  4. FR2已完全下载
  5. 转到FR2
  6. FR2调用stop()方法
  7. 等等

Flash Player enterFrame事件发生时,您能为我强调一下吗?

感谢您的时间。 最好的问候,Flex_Addicted。

尽管您似乎肯定已经在研究事物,但是您的某些假设是不正确的。 Flex是将Flash代码编写到一个漂亮的框架中。 因此,一切都归结为帧,这些帧是代码执行以及该代码执行,呈现的结果的混合体。 当所有必需的代码都已执行并且渲染过程完成时,该框架就完成了,Flash Player继续进行下一个框架。

因此,您的enterFrame被调用。

现在,作为Flex开发人员来侦听enterFrame事件已经不是通常的事了。

要了解Flex Apps,您只需要认为它们是Flash应用程序,第一帧是加载框架,第二帧是该应用程序。 其余各部分都是由子部分及其各自的时间线组成的。 这个概念肯定使人感到困惑,因为然后他们认为enterFrame应该只被调用两次,事实并非如此。

许多人的下一个错误假设是,仅由于“没有代码在执行”,所以仍未调用框架。 事实并非如此。 仅仅因为某些事情没有改变并不意味着就不会调用帧,而且-如果没有适当的检查-不会进行大量处理。

高温超导

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM