johnhey 0 Denunciar post Postado Outubro 9, 2012 Ola pessoal, achei um exemplo de tooltip só que infelizmente dá um erro e não sei como resolver. a Classe é: package { import flash.display.DisplayObject; import flash.display.MovieClip; import flash.errors.IllegalOperationError; import flash.events.MouseEvent; import flash.text.StyleSheet; import flash.text.TextField; import flash.text.TextFieldAutoSize; public class Tooltip extends MovieClip { private static var _tooltip:MovieClip; private static var _styleSheet:StyleSheet; private static var _label:TextField; private static var _currentObject:DisplayObject; private static var _margin:uint=10; private static var allowInstance:Boolean = false; public function Tooltip(text:String="") { if (!allowInstance) { throw(new IllegalOperationError("This is a singleton class, no instance allowed, use Tooltip.subscribe()")); return; } } public static function subscribe(object:DisplayObject):void { object.addEventListener(MouseEvent.MOUSE_OVER,doTooltip); } public static function unsubscribe(object:DisplayObject):void { if(object.hasEventListener(MouseEvent.MOUSE_OVER)) object.removeEventListener(MouseEvent.MOUSE_OVER,doTooltip); } private static function doTooltip(e:MouseEvent):void { _currentObject = DisplayObject(e.currentTarget); _currentObject.addEventListener(MouseEvent.MOUSE_OUT,hideTooltip); _currentObject.addEventListener(MouseEvent.MOUSE_DOWN,hideTooltip); if(_tooltip==null && _label==null) { _tooltip = new MovieClip(); _label = new TextField(); _label.antiAliasType=flash.text.AntiAliasType.ADVANCED; _label.selectable=false; _label.embedFonts=false; _label.styleSheet = getStyleSheet(); _label.htmlText="<p>"+Object(_currentObject).tooltipLabel+"</p>"; _label.autoSize=TextFieldAutoSize.LEFT; _tooltip.graphics.beginFill(0x111111,0.75); _tooltip.graphics.drawRoundRect(0,0,_label.width+15,_label.height+3,5,5); _tooltip.graphics.endFill(); _label.x=15/2; _label.y=2; _tooltip.addChild(_label); _currentObject.stage.addChild(_tooltip); _currentObject.stage.addEventListener(MouseEvent.MOUSE_MOVE,updateTooltipPos); _tooltip.x=e.stageX+_margin; _tooltip.y=e.stageY+_margin; } else { _label.htmlText="<p>"+Object(_currentObject).tooltipLabel+"</p>"; _tooltip.graphics.clear(); _tooltip.graphics.beginFill(0x111111,0.75); _tooltip.graphics.drawRoundRect(0,0,_label.width+15,_label.height+3,5,5); _tooltip.graphics.endFill(); _tooltip.visible=true; } } private static function hideTooltip(e:MouseEvent):void { _tooltip.visible=false; DisplayObject(e.currentTarget).removeEventListener(MouseEvent.MOUSE_OUT,hideTooltip); DisplayObject(e.currentTarget).removeEventListener(MouseEvent.MOUSE_DOWN,hideTooltip); } private static function updateTooltipPos(e:MouseEvent):void { _tooltip.x=e.stageX+_margin; _tooltip.y=e.stageY+_margin; } private static function getStyleSheet():StyleSheet { var css:StyleSheet; if(_styleSheet==null) { css = new StyleSheet(); css.parseCSS("p{color:#FFFFFF;}"); } else css=_styleSheet; return css; } public static function setStyleSheet(css:StyleSheet):void { _label.styleSheet = _styleSheet = css; } } } e no frame criei um layer com o nome de acoes e coloquei: Tooltip.subscribe(btnfatima); public var _tooltipLabel: String= "Fátima"; E da o seguinte erro: 1114: The public attribute can only be used inside a package. public var _tooltipLabel: String= "Fátima"; Compartilhar este post Link para o post Compartilhar em outros sites
Eder Fortunato 15 Denunciar post Postado Outubro 10, 2012 a mensagem de erro já disse o que estava errado, você só pode colocar "public" se o codigo está dentro numa classe, na timeline deixe assim: Tooltip.subscribe(btnfatima); var _tooltipLabel: String= "Fátima"; []´s Compartilhar este post Link para o post Compartilhar em outros sites
johnhey 0 Denunciar post Postado Outubro 15, 2012 coloquei como disse, só que nao aparece a legenda, aparece o quadro sem a palavra fatima. aparece um quadro com undefined Compartilhar este post Link para o post Compartilhar em outros sites
Elektra 102 Denunciar post Postado Outubro 18, 2012 Há outros tutoriais com code na timeline (sem tempo pra pesquisar os links), mas este é bastante completo. Tem o fla pra baixar, vê se ajuda. http://active.tutsplus.com/tutorials/effects/create-a-customizable-tooltip-in-actionscript-3-0/ ps: pelo que observei rapidamente seu arquivo utiliza htmlText + css, daí o tooltip exibir 'undefined', deve estar faltando algum trecho do código Abraços Compartilhar este post Link para o post Compartilhar em outros sites
johnhey 0 Denunciar post Postado Novembro 14, 2012 ok. obrigado deu certo. Compartilhar este post Link para o post Compartilhar em outros sites