0

フレックスでページをデザインしていますが、画像が 1 つあります。ユーザーがマウスを画像に合わせたときに特定のテキストを表示する必要があります。これが私が書いたactionScriptコードですが、機能していません(mouseOverイベントでテキストが表示されていません:(

  <?xml version="1.0" encoding="utf-8"?>
 <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
           xmlns:s="library://ns.adobe.com/flex/spark" 
           xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="100" minHeight="100">
<fx:Script>
    private var helpText:String = "Some Text."      
    private function helpIconEvent(e:MouseEvent):void{              
        if(e.type == "mouseOver"){
            e.currentTarget.helpText.visible = true;                            
        }
    }       
    private function addEventToHelpIcon():void {
        helpIcon.addEventListener(MouseEvent.MOUSE_OVER, helpIconEvent);
    }
</fx:Script>        

<mx:Image id="helpIcon" x="270" y="187" width="50" height="50" mouseOver="addEventToHelpIcon"
          source="source_path"/>    

どんな助け/洞察も高く評価されます。

ありがとう。

4

2 に答える 2

2

いくつかの問題があります。

  • マウスオーバーリスナーを正しく追加していません。実際には 2 つのイベント リスナーを追加しています。1 つは MXML にあり、そのイベントが発生したときに 2 つ目のリスナーを追加します。MXML リスナーを使用するだけです (以下を参照)。

  • マウスオーバーが発生したときに実行される関数でvisible、String オブジェクトにプロパティを設定しようとしています。String 自体は何も表示しません。ツールチップまたはその他の GUI オブジェクトで、Label オブジェクトを使用して文字列を表示できます。使用する適切な GUI オブジェクトを見つけ出し、そのオブジェクトにテキストを渡す必要があります。

非常に簡単な例を次に示します。

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
           xmlns:s="library://ns.adobe.com/flex/spark" 
           xmlns:mx="library://ns.adobe.com/flex/mx"
           minWidth="100" minHeight="100">
<fx:Script>

    private function onMouseOver():void {
        helpLabel.visible=true;
    }

    private function onMouseOut():void {
        helpLabel.visible=false;
    }

</fx:Script>        

<s:Image id="helpIcon" x="270" y="187"
         width="50" height="50"
         mouseOver="onMouseOver()" mouseOut="onMouseOut()"
         source="source_path"/>

<!-- note the mouse event handlers are so simple in this case, you can also do them in line -->

<s:Image id="alternateMethod" mouseOver="helpLabel.visible=true;"
         mouseOut="helpLabel.visible=false;" />

<s:Label id="helpLabel" x="100" y="100" visible="false" text="Some Text."/>

</s:Application>
于 2012-05-31T21:10:18.767 に答える
0

あなたのコードはもっとこのようにすべきだと思いますが、私はフレックスに慣れていないので、間違っていてもご容赦ください。

private function foo(e:MouseEvent):void {
if(e.type == MouseEvent.ROLL_OVER)
       //Do stuff...
}
于 2012-05-31T20:58:04.137 に答える