问题标签 [enterframeevent]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
3555 浏览

apache-flex - Flex 分析 - [enterFrameEvent] 在做什么?

我的任务是发现(并可能修复)交付给我们的 Flex 应用程序的一些严重性能问题。当应用程序只是空闲并且不应该做任何事情时,它会持续占用 50% 到 100% 的 CPU。

我的第一步是运行 FlexBuilder 附带的分析器。我希望找到一些占用大部分时间的方法,告诉我瓶颈在哪里。然而,我得到了一些意想不到的东西。

排名前 4 位的方法是:

  • [enterFrameEvent] - 84% 累积,32% 自我时间
  • [reap] - 20% 累积和自我时间
  • [tincan] - 8% 累计和自拍时间
  • global.isNaN - 4% 累积时间和自时间

所有其他方法的累积时间和自身时间都小于 1%。

根据我在网上找到的内容,[括号中的方法] 是分析器在没有实际 Flex 方法要显示时列出的内容。我看到有人声称 [tincan] 是 RTMP 请求的处理,我假设 [reap] 是垃圾收集器。

有谁知道 [enterFrameEvent] 实际上在做什么?我认为它本质上是事件循环的“主要”功能,因此预计会有很高的累积时间。但是为什么自拍时间这么高呢?究竟发生了什么?我没想到播放器内部会占用这么多时间,尤其是因为应用程序中实际上没有发生任何事情(并且没有进行 UI 更新)。

有什么好方法可以深入了解正在发生的事情吗?我知道发生了一些不应该发生的事情(看起来一定有某种繁忙的等待或其他失控的循环),但是分析器没有给我任何我期望的结果。我的下一步将是开始在各个地方添加调试跟踪语句,以尝试跟踪实际发生的情况,但我觉得必须有更好的方法。

0 投票
2 回答
416 浏览

actionscript-3 - 嵌入 FLV 还是将 FLV 编译到 SWF 并动态加载哪个更有效?

最近,我承担了一项相当艰巨的任务,即为流行节目 Ghost Whisperer 制作交互式音乐视频。我是在项目后期加入的,遇到了一个巨大的创作文件(大约 5000 多帧长)。之前的程序员(在 AS2 中做了所有事情)基本上在时间主时间线上嵌入了一个两分半钟的 FLV,并且在某些帧点将添加剪辑以与基本的鼠标单击功能进行交互,从而触发这些剪辑播放其他剪辑带有一些flash元素和一些视频元素。

(我创建的最终版本可以在这里查看http://www.gwghostmagic.com);

作为一个整洁的怪胎,我决定在 AS3 中重建整个东西,完全放弃时间线,而是在运行时加载我的元素,这样我就有一帧而不是 5000 帧,并添加了一个 Event.ENTER_FRAME 事件侦听器来触发动作当加载的 .swf 到达某些帧时触发交互性。从程序员的角度来看,它使操作某些操作变得更加清晰和容易。问题是,事情像垃圾一样运行。

5000+ 帧版本比我的 AS3 版本加载更快,运行更​​流畅。这让我想到了一个问题,什么时候嵌入和运行时间线比运行事件侦听器更好?闪存是否更适合时间线功能?

最初,我决定构建并运行流式 .flv,但将动作同步到 .flv 是不可能的,因为 .flv 以 23.975 fps 运行,而我的 flash 电影以 24 fps 运行。唉,我被迫编译一个嵌入了 flv 的 .swf。然后将该 .swf 加载到我的主 .swf 中,其中包含将根据加载的 .swf 帧位置播放的所有功能和额外剪辑。

我注意到的一件事是 Event.ENTER_FRAME 似乎会减慢整个该死的应用程序的速度,因为在每一帧它都必须运行 200 行代码长的 if 语句列表。其中,如果整个内容被嵌入,我可能只需要插入一个关键帧,其中将实例化交互式剪辑,然后立即知道要做什么,而不是循环遍历 if else 语句。

我是不是把事情弄得又好又整洁而搞砸了?让flash成为flash更好吗?我应该寻找另一个职业吗?非常感谢任何输入。

0 投票
3 回答
5053 浏览

flash - 在 AS3 中不使用 KeyboardEvent 检查键盘状态

是否可以在不使用 KeyboardEvent 的情况下检查按下的键?

我有一个名为 enterFrameHandler 的 ENTER_FRAME 事件设置,我想在函数 enterFrameHandler 中检查是否按下了任何键。

通常在使用 KeyboardEvent 时,我可以使用检查事件 KeyCode 的开关轻松检查键,但在 ENTER_FRAME 事件中,这对我来说是不可能的。

是否有任何其他方法可以在 ENTER_FRAME 事件中检查键盘的状态?

更新:我发现了这个 AS2 脚本:

这似乎正在做我想要的,但它在 AS2 中,有谁知道如何将它“翻译”成 AS3?

0 投票
1 回答
820 浏览

actionscript-3 - 补间时 Enter Frame 无法准确检测 hitTestObject

我有一个运行 Enter_Frame 的函数,并在函数期间对其进行补间。我知道你可以使用 object.y=object.y + 1 而不是我现在使用的 TweenLite。但是 TweenLite 提供了我想要的最佳效果。我现在的问题是,当它不相互冲突时,我想删除 enter_frame 函数。但是当我跟踪hitTestObject 时,它就像一瞬间hitTestObject 结果返回'false'。所以补间不能真正完成第一次,并在对象仍在碰撞时提前删除 enter_frame 运行。

0 投票
2 回答
1016 浏览

c# - Expression Blend/WPF 中是否有等效的 EnterFrame 事件,如果没有,我们如何绕过它?

我正在从AS3和 Java 迁移到Expression Blend/WPF,但似乎无法弄清楚如何在C#EnterFrame中复制事件,是否有or函数。update()frameUpdate()

0 投票
1 回答
2725 浏览

actionscript-3 - AS3:延迟进入帧动画

我有一个使用 ENTER_FRAME 的淡出动画。我希望淡出在 2-3 秒后开始。我怎样才能造成这种延迟?

0 投票
3 回答
4051 浏览

actionscript-3 - enterframe 中的循环?

我在 AS3 中为一堆单词制作动画。因为我将在移动设备上使用它,所以我想使用位图而不是 Sprites。所以我创建了 WordObjects,它有一个可以访问的 .bitmap 属性。

我有以下代码,它触发 click 事件并循环遍历 enterframe 事件中的数组。这可能是一个坏主意,但我不确定如何做得更好。(令人惊讶的是它在 Flashbuilder 中运行良好,但在 Flash CS5 中运行缓慢。)

有没有更好的方法来做到这一点?我只想要一种有效的方式来为位图数组设置动画。

0 投票
3 回答
1827 浏览

flash - AS3 让敌人向鼠标移动

敌人类已嵌入位图。我正在使用 FlashDevelop 进行编程。当我做像enemy.x+=1 这样的事情时,它可以工作,但是当我尝试使用我的补间脚本时,无论鼠标的位置如何,敌人都会静止不动。谢谢你,布洛布斯塔

0 投票
1 回答
718 浏览

flash - 如何为视差创建自动滚动然后切换到鼠标控制事件?

这就是启动 Parallax 事件运行的所有代码。我正在使用 Lee Brimelow 的 layersmagazine.com 的代码。

当您将鼠标向左或向右移动时,视差效果很好地滚动,但我希望它在加载时自动启动视差效果,滚动一段时间然后停止并切换到由鼠标控制.

MouseOver 事件并不是真正有效的,因为滚动不能很好地处理它。

0 投票
1 回答
876 浏览

actionscript-3 - 如何指定 ENTER_FRAME 以便对象每 4 帧进入一次?

因此 ENTER_FRAME 属性将在游戏运行的每一帧上向舞台添加一个对象。如果游戏是 24 fps,每秒创建 24 个对象。我该如何限制它,使其每 4 帧生成一个对象?