【问题标题】:keydown event reusable code - how can I write it once and use anywhere in my flex applicationkeydown 事件可重用代码 - 我如何编写一次并在我的 flex 应用程序中的任何地方使用
【发布时间】:2011-04-05 07:17:03
【问题描述】:

我是 flex 框架的新手。

我使用 flex 框架 4.1 创建了一个应用程序,该应用程序具有各种组件,这些组件使用<mx:TitleWindow> 以弹出窗口的形式显示给最终用户。

单击关闭按钮(显示在其标题栏中)或按键盘上的“退出键”可关闭此标题窗口。

我编写了一个功能,只要按下“退出”按钮,我就会关闭当前的 TitleWindow。 这就是我所做的。
TitleWindowkeydown 事件上我调用了这个函数

private function detectescapekeypress(event:KeyboardEvent):void
{
    if(event.charCode == Keyboard.ESCAPE)
       PopUpManager.removePopUp(this);
}

但是当我在我的应用程序的主屏幕中定义它并在keydownkeydown 事件上使用parentApplication.detectescapekeypress(event) 调用它时,这个函数不起作用@

我必须为项目中使用的每个 TitleWindow 重复此代码。

我怎样才能只编写一次上述功能并在各种 TitleWindow 和其他组件中重复使用它,以便相同的代码不会在各个组件中重复?

注意:我使用的每个 TitleWindow 都有不同的代码、脚本和布局。

谢谢

【问题讨论】:

    标签: apache-flex actionscript conventions


    【解决方案1】:

    为什么不直接扩展 TitleWindow 组件并将该功能添加到新的自定义组件中?然后在任何地方都使用它,而不是原来的 TitleWindow。

    我假设您至少使用 SDK 4.1 创建一个名为 CustomTitleWindow.mxml 的新 mxml 文件并粘贴以下内容 http://www.copypastecode.com/68211/

    然后将所有标题窗口更改为 CustomTitleWindow。

    附:请注意,为了调度关键事件,组件必须具有焦点。

    blz

    【讨论】:

    • @Anton Petrov:感谢您的建议,能否详细说明您的答案?
    • 例如,您可以将其放在 src 文件夹中名为“view”的新文件夹中。然后你应该在你想要使用它的组件中包含一个命名空间:在根标签中: xmlns:view="view.*" 然后只需使用 如果你使用的是 Flash Builder,它将自动当您尝试自动完成 时为您添加
    • 没有按我的意愿工作。我想删除相同功能的重复,而不是组件本身。在每种情况下,标题窗口都具有不同的布局、脚本和代码。怎么会实现,我怀疑。 :(
    • 您可以像使用 TitleWindow 一样使用自定义组件。只需在您的 CustomTitleWindow 中包含通用功能,然后,如果您想要更多不同的自定义功能,只需继续扩展组件即可。或者您可以尝试设置一些属性、状态等。如果我仍然不明白,请给我一个更详细和具体的解释,说明您要实现的目标。
    • 好的,就是这样。我在组件目录中创建了组件。在里面写了titlewindow的代码。然后我尝试在另一个组件中调用该自定义组件(这实际上是一个弹出窗口)。现在,在编写 之后,我应该在哪里输入用于 GUI 显示和 actionscript 代码的代码
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多