johnhey 0 Denunciar post Postado Setembro 22, 2012 Ola pessoal, eu não sei bem o nome do que preciso. Gostaria do seguinte: Tenho um site com várias imagens e gostaria de quando passar o mouse sobre elas aparecer uma legenda com o nome da imagem. teria que ser em action script 3 obrigado pela ajuda Compartilhar este post Link para o post Compartilhar em outros sites
Elektra 102 Denunciar post Postado Setembro 23, 2012 Pesquise por 'tooltip' AS3. Encontra templates para baixar. Outra alternativa é usar um TextField e carregar a descrição via xml. Abs. Compartilhar este post Link para o post Compartilhar em outros sites
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