Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何制作Flash';与他人相处融洽';?_Flash_Memory Management_Cross Compiling_Multitasking_Ios4 - Fatal编程技术网

如何制作Flash';与他人相处融洽';?

如何制作Flash';与他人相处融洽';?,flash,memory-management,cross-compiling,multitasking,ios4,Flash,Memory Management,Cross Compiling,Multitasking,Ios4,怎么了,法姆。所以这不是一个关于内存管理方案的问题;对于那些可能不知道的人来说,Flash虚拟机依赖于垃圾收集,通过使用引用计数和标记和扫描(为了更好地覆盖这些主题,请查看Grant Skinner's and)。是的,Flash还提供了“delete”操作符,很遗憾,它只能用于删除动态对象的属性 我想知道的是如何使Flash程序在后台运行时不会继续消耗CPU和内存(例如,保存加载内容或远程通信)。这个问题的动机部分来自苹果对交叉编译应用程序(在其SDK 4中)的禁令,理由是它们不具备iPhon

怎么了,法姆。所以这不是一个关于内存管理方案的问题;对于那些可能不知道的人来说,Flash虚拟机依赖于垃圾收集,通过使用引用计数和标记和扫描(为了更好地覆盖这些主题,请查看Grant Skinner's and)。是的,Flash还提供了“delete”操作符,很遗憾,它只能用于删除动态对象的属性

我想知道的是如何使Flash程序在后台运行时不会继续消耗CPU和内存(例如,保存加载内容或远程通信)。这个问题的动机部分来自苹果对交叉编译应用程序(在其SDK 4中)的禁令,理由是它们不具备iPhone OS 4的核心功能。我的意图不仅是制作能够“通过”iPhone OS 4多任务处理的Flash程序,而且是简单地制作更好(性能更好)的Flash程序

换句话说,Flash应用程序如何模仿iPhoneOS4的多任务功能?FlashAPI是否为开发人员提供了在其他程序运行时将其应用程序置于“睡眠”状态,然后以同样快的速度“唤醒”它们的方法

在我们自己的程序中,我们可能会做一些粗糙的事情,比如检测用户何时空闲(没有鼠标移动或按键)四秒钟:

var idle_id:uint = setInterval(4000, pause_program);
var current_movie_clip:MovieClip;
var current_frame:uint;

...

// on Mouse move or key press...
clearInterval(idle_id);
idle_id = setInterval(4000, pause_program);

...

function pause_program():void
{
 current_movie_clip = event.target as MovieClip;
 current_frame = current_movie_clip.currentFrame;
 MovieClip(root).gotoAndStop("program_pause_screen");
}
(在程序暂停屏幕上)

如果这是正确的想法,那么检测应用程序应该被搁置的最佳方法是什么

而且,更重要的是,Flash Player是否可能检测到某些正在运行的程序处于空闲状态,并以类似方式将其搁置,直到用户执行恢复操作为止

(请随意回答我提出的许多问题中的尽可能多或尽可能少的问题。)

基本上,你可以使用并找出你的应用程序何时失去焦点

除此之外,我建议您不要将FlashIDE用于纯动画以外的任何东西,而是使用以编程为中心的actionscript IDE。FlashIDE的设计不是为了提高效率,而是为了易于使用。为了进行适当的优化,您需要以编程方式进行操作,以保持对应用程序的完全控制


至于iPhone:这没什么你应该关心的。如果adobe找到了一种在iPhone上安装flash的方法,我想他们的抽象层将被调整,以尽可能地与iPhone操作系统配合使用。本机flash player实现的内部工作原理肯定不会向您公开,因为它需要大量的API更新,甚至可能是新的操作码和非常直接的层访问,你不应该像flash播放器那样被允许在沙盒环境中访问。

好吧,我不会在短时间内为iphone操作系统上的flash屏住呼吸

resume_button.addEventListener(MouseEvent.CLICK, resume_program);

function resume_program(event:MouseEvent)
{
 current_movie_clip.gotoAndPlay(current_frame);
}