【发布时间】:2009-10-15 22:10:10
【问题描述】:
任何碰巧知道如何做到这一点的人都会真正帮助我。
也许它很简单,我不知道,但它涉及嵌入式 SWF,所以我想它可能需要与嵌入式 SWF 中的事件处理程序或方法进行交互。
但无论如何,这里是:
我在画布上嵌入了几个 SWF(在 SWFLoaders 中),当其中一个在视觉上发生变化时,我需要知道哪一个发生了变化。
“渲染”事件仅提供部分解决方案:
如果 SWFLoader 包含视频显示,则在该视频显示运行时,父应用程序中会持续生成渲染事件。如果 SWFLoader 仅包含一些静态输入控件 otoh,则父应用程序中没有渲染消息,直到有人与该控件交互并在视觉上更改它,然后在父应用程序中广播渲染事件。所以,这显然是我的要求的一部分。
然而,渲染事件的问题在于它不告诉你哪个嵌入的 SWF 实际改变了(在目标或 currentTarget 中。)
但我需要知道哪一个发生了变化。
(例如,是否有单独的渲染消息在在嵌入式应用程序中生成(与父应用程序中的那些分开),这可以被检测到。)
【问题讨论】:
-
是渲染状态的变化唯一能告诉你哪个是活动的吗?还是渲染的变化总是由用户交互激活?
-
渲染事件是我所知道的唯一事情,它甚至大致近似于我所需要的。但正如我所说,它不会告诉我需要哪个嵌入项目发生了变化,它只检测到它发生了变化。但它不是由用户交互本身触发的,而是由控件的视觉更改触发的。我认为实际上它是由调用 stage.invalidate() 的控件引起的。但无论如何,我想出了一个对我有用的解决方案,所以我将它作为答案发布在下面并关闭它,因为没有人知道我在说什么。
标签: apache-flex actionscript-3