我已经开发了一个带有 2AxShockwaveFlash
和textBlock
.In的应用程序。AxShockwaveFlash
有 2 个不同的Flash文件,它们有自己的动画,在表单的底部有一个文本块滚动一些文本(Ticker)。在加载 Flash 时,我的 Ticker 卡住了,当 Flash 有一些过渡然后我的股票也卡住了。我不知道为什么我的应用程序在播放或转换 Flash 文件时响应缓慢。如何准确跟踪问题所在?
1 回答
简单的答案:为什么 AxShockwaveFlash 在转换时占用如此多的内存或进程?仅仅是因为有人不知道如何在不杀死 CPU 的情况下编写过渡代码。
公平地说,您的问题没有提供足够有用的信息(导致下面漫无边际的答案)。许多人会称其为“Flash 动画”,从简单的文本淡入/淡出.. 到完整的 3D 引擎游戏演示,再到.. 一些密集的实时视频像素效果。恰好是在 Flash 中完成的,所以它是一个 Flash 动画,对吧?
A)如果您可以改进 C# 代码...考虑改进您的 WPF/Textblock 代码
因为如果您的 Textblock 因某些多媒体元素(照片、声音、Flash 等)的额外加载而变慢,那么您只需改进该 Textblock 代码即可。
B)如果您可以改进 AS3 代码...寻找任何 CPU 密集的像素活动。如果转换代码使用 bitmapData ,则使用bitmapData.lock
and 。.unlock
如果 Flash 是由其他人在外部创建的,那么可能存在一些低效的编码?通过仅加载 SWF(无文本块)来检查 CPU 使用情况。还要考虑您的 Flash 动画的性质,例如,我从来不知道 SWF 的广告横幅和弹出式广告不会增加 CPU 使用率。我不知道那些人用他们的“简单”广告做什么。本质上,如果其他人做到了,请找到替代方案。否则,如果您有源代码,请首先改进转换功能。