当其父级在 Flex 中生成事件时查找目标的 id

发布于 2024-11-28 14:07:37 字数 661 浏览 1 评论 0原文

这里我试图在 showMe() 中获取目标的 id。例如,当我单击按钮或图像面板的 showMe() 函数时,首先执行。在这里我想捕获按钮/图像的 id。

private function init():void
            {
                pnl.addEventListener(MouseEvent.MOUSE_DOWN,showMe);
            }

            private function showMe(eve:MouseEvent):void
            {
                Alert.show("Hello");
            }

    <s:Panel id="pnl" height="400" width="700" creationComplete="init()">
                <s:Button id="btn1" label="showParents"/>
                <mx:Image id="img1" source="markupIndicator.png"  buttonMode="true"/>

    </s:Panel>

任何帮助表示赞赏。

Here I'm trying to get the id of the target in showMe(). For example, when I click button or image panel's showMe() function executes first. Here I want to capture the button/image's id.

private function init():void
            {
                pnl.addEventListener(MouseEvent.MOUSE_DOWN,showMe);
            }

            private function showMe(eve:MouseEvent):void
            {
                Alert.show("Hello");
            }

    <s:Panel id="pnl" height="400" width="700" creationComplete="init()">
                <s:Button id="btn1" label="showParents"/>
                <mx:Image id="img1" source="markupIndicator.png"  buttonMode="true"/>

    </s:Panel>

Any help is appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

许久 2024-12-05 14:07:38

目前还不清楚为什么您需要捕获面板的 mouseDown 并尝试获取内部控件的 id,但您可以这样更改代码:

private function init():void
            {
                pnl.addEventListener(MouseEvent.MOUSE_DOWN,showMe);
            }

            private function showMe(eve:MouseEvent):void
            {
                Alert.show("Hello " + eve.currentTarget.id);
            }

            private function showMyID(eve:MouseEvent):void
            {
                showMe(eve);
            }

    <s:Panel id="pnl" height="400" width="700" >
                <s:Button id="btn1" label="showParents" click="showMyID(event)"/>
                <mx:Image id="img1" source="markupIndicator.png" click="showMyID(event)" buttonMode="true"/>

    </s:Panel>

It is not very clear why you need to catch panel's mouseDown and try to get inner control's ids but you can change your code this way:

private function init():void
            {
                pnl.addEventListener(MouseEvent.MOUSE_DOWN,showMe);
            }

            private function showMe(eve:MouseEvent):void
            {
                Alert.show("Hello " + eve.currentTarget.id);
            }

            private function showMyID(eve:MouseEvent):void
            {
                showMe(eve);
            }

    <s:Panel id="pnl" height="400" width="700" >
                <s:Button id="btn1" label="showParents" click="showMyID(event)"/>
                <mx:Image id="img1" source="markupIndicator.png" click="showMyID(event)" buttonMode="true"/>

    </s:Panel>
渔村楼浪 2024-12-05 14:07:38

我认为这应该有效:

private function init():void
    {
        pn1background.addEventListener(MouseEvent.MOUSE_DOWN,showMe);
            btn1.addEventListener(MouseEvent.MOUSE_DOWN,showMe);
            img1.addEventListener(MouseEvent.MOUSE_DOWN,showMe);
    }

    private function showMe(eve:MouseEvent):void
    {
        trace(eve.currentTarget.id);
    }

    <s:Panel id="pnl" height="400" width="700" >
                <s:Button id="btn1" label="showParents"/>
                <mx:Image id="img1" source="markupIndicator.png"  buttonMode="true"/>
                <s:Panel id="pn1background" height="400" width="700" / >
    </s:Panel>

I think that should work:

private function init():void
    {
        pn1background.addEventListener(MouseEvent.MOUSE_DOWN,showMe);
            btn1.addEventListener(MouseEvent.MOUSE_DOWN,showMe);
            img1.addEventListener(MouseEvent.MOUSE_DOWN,showMe);
    }

    private function showMe(eve:MouseEvent):void
    {
        trace(eve.currentTarget.id);
    }

    <s:Panel id="pnl" height="400" width="700" >
                <s:Button id="btn1" label="showParents"/>
                <mx:Image id="img1" source="markupIndicator.png"  buttonMode="true"/>
                <s:Panel id="pn1background" height="400" width="700" / >
    </s:Panel>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文