2012-05-31 59 views
0

我在flex中設計一個頁面,我有一個圖像。當用戶將鼠標懸停在圖像上時,應該顯示特定的文本。下面是我寫我的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"/>  

任何幫助/洞察力將不勝感激。

感謝。

+0

首先應該創建新的'有'ID ='helpText'' – mgraph

+0

text'元素我已經做到了::::私人變種HELPTEXT :String =「一些文字」。 – javaIQ

回答

0

它認爲你的代碼應該是更喜歡這一點,但我不習慣彎曲,從而容忍我,如果我錯了。

private function foo(e:MouseEvent):void { 
if(e.type == MouseEvent.ROLL_OVER) 
     //Do stuff... 
} 
+0

感謝您迅速回復。我也嘗試過,但沒有區別:( – javaIQ

+0

順便說一下,幫助文本應該顯示在哪裏?在代碼中,你只有一個定義helptext的變量,但是你永遠不會把它放在「場景」上,據我瞭解。使用trace();以確保您的事件正常觸發? –

2

有幾個問題:

  • 你是不是在正確的監聽器添加鼠標。實際上,您添加了兩個事件偵聽器,一個在MXML中,然後在發生此事件時添加第二個事件偵聽器。只需使用MXML偵聽器(見下文)。

  • 在發生鼠標懸停時運行的函數中,您試圖設置字符串對象的visible屬性。一個字符串本身不會顯示任何東西。您可以使用Label對象,工具提示或其他一些GUI對象來顯示字符串。您需要找出正確的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> 
+0

蘇尼爾你好。非常感謝你。很好的幫助。我的代碼現在正在工作。也非常感謝噸響應我! – javaIQ