mx.flex.container中使用鼠标输入的contentPane问题

时间:2013-03-16 22:06:18

标签: actionscript-3 flex

我正在开发一款使用mx画布(每个都在自己的mxml文件中)来包装应用程序的不同方面的游戏。因此UI包含在一个画布中,主游戏屏幕包含在另一个画布中,依此类推。我有一个问题,鼠标输入(特别是MouseEvent.CLICK,但它似乎适用于所有鼠标输入),我想转到GameScreen.mxml中的movieClip被{{1}抓住名为“mx.core.FlexSprite”的对象,它是contentPane的子级。

GameUI.mxml对象被实例化时,这个contentPane精灵不存在,并且实际上在我设置GameUI所包含的textFields的文本之前似乎不存在{1}}。这些GameUI与我想要接收鼠标输入的textFields重叠,但movieClip本身设置为textFields,并且没有捕获鼠标输入。

我的所有代码都没有直接创建这个mouseEnabled = false精灵,而一些基本的Google搜索告诉我这个contentPane精灵是由contentPane内部创建的。但是,我似乎无法找到任何关于它如何实际工作的文档,以及导致这个精灵被创建的原因。

此功能以前有效,我所知道的唯一重要的近期变化是将加载到mx.flex.container的swfs移动到他们自己的应用程序域中以修复命名空间冲突。我完全准备相信这就是问题所在。

理想情况下,我想知道为什么GameUI突然捕获鼠标输入。如果做不到这一点,我至少想找到一些关于contentPane如何工作的文档,我如何操作它,以及导致它实例化的原因。

提前感谢您的帮助。

编辑:

我已经做了一些额外的挖掘,并想分享我所学到的东西:

contentPane变量在contentPane个对象中实例化,用于滚动和剪切目的。如果mx.core.container对象的内容超过该对象的大小,容器将创建mx.core.container并将其内容移动到该窗格中。但是,如果禁用滚动(contentPane& verticalScrollPolicy="off")并禁用剪裁(horizontalScrollPolicy="off"),则容器将不会实例化clipContent="false"。这解决了我的具体问题,因为我不需要在此容器中滚动或剪切行为。

我仍然想知道是否有办法禁用contentPane mx.core.container的鼠标输入。好像应该有。

0 个答案:

没有答案