2010-12-20 25 views
0

私は、ユーザーが画像の上にマウスを移動したときに表示されるerrorTipを作成しています。ポップアップをの画像のに残したいのですが、toolTipを作成するために渡すことができる唯一のプロパティは "errorTipRight"、 "errorTipAbove"、 "errorTipBelow"です。ターゲットの左側にerrorTip(エラーツールヒント)を表示する方法はありますか?

どのような考えですか?

サンプルコード:あなたがToolTipManagerのに座標を与えるとき

<?xml version="1.0" encoding="utf-8"?> 
<mx:HBox xmlns:fx="http://ns.adobe.com/mxml/2009" 
     xmlns:s="library://ns.adobe.com/flex/spark" 
     xmlns:mx="library://ns.adobe.com/flex/mx"> 
    <fx:Script> 
     <![CDATA[ 
      import mx.controls.ToolTip; 
      import mx.managers.ToolTipManager; 
      [Embed(source="assets/some_image.png")] 
      [Bindable] 
      private var myIcon:Class; 

      private var myToolTip:ToolTip; 

      private function showToolTip(evt:MouseEvent, text:String):void 
      { 
       var pt:Point = new Point(evt.currentTarget.x, evt.currentTarget.y); 
       pt = evt.currentTarget.parent.contentToGlobal(pt); 

       // I WANT TO POP THE ERRORTIP UP TO THE LEFT HERE INSTEAD OF ABOVE. 
       myToolTip = ToolTipManager.createToolTip(text, pt.x, pt.y, "errorTipAbove") as ToolTip; 
       var yOffset:int = myToolTip.height + 5; 
       myToolTip.y -= yOffset; 
      } 

      // Remove the tooltip 
      private function killToolTip():void 
      { 
       ToolTipManager.destroyToolTip(myToolTip); 
      } 
     ]]> 
    </fx:Script> 
    <mx:Image source="{myIcon}" mouseOver="showToolTip(event, 'My ToolTip Message Goes Here')" mouseOut="killToolTip()" /> 
</mx:HBox> 

答えて

1

ToolTipBorderクラスの置換えを作成し、ツールチップのスキンとして割り当てる必要があります。これを行うには、ToolTipBorderソースをコピーし、updateDisplayListメソッドとborderMetricsメソッドを変更して、これらのメソッドのswitch文に新しい "errorTipLeft"スタイルを追加します。次に、スキンクラスをCSSのToolTipクラスに割り当てます。希望が役立ちます。

+0

私はそのショットを与え、それがどのように進むのかを教えてあげます。ありがとうウェイド! –

0

は、なぜあなたはpt.xからツールチップの幅を引くことができませんか?

+0

ツールチップの配置は問題ではありません。問題は、toolTipの矢印部分が描かれているところです。 「errorTipAbove」を選択すると、ツールヒントをトリガしたソースコントロールをポイントするように、ツールヒントの下部に矢印が描画されます。私は、矢印をツー​​ルヒントの右側に描いて、自分のイメージを指し示したいと思います。 –

関連する問題