2012-05-31 56 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