Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [AS3] ToolTip Class, mi da errori.......

    Questa e' una Classe trovata su WEB:

    codice:
    /**
    * Singleton Tool Tip class AS3 Style
    * @author Devon O. Wolfgang
    */
    
    package com.onebyonedesign.utils {
    
        import flash.display.DisplayObjectContainer;
        import flash.display.Sprite;
        import flash.events.*;
        import flash.filters.DropShadowFilter;
        import flash.text.AntiAliasType;
        import flash.text.Font;
        import flash.text.TextField;
        import flash.text.TextFieldAutoSize;
        import flash.text.TextFormat;
    
        public class OBO_ToolTip extends Sprite {
            
            public static const ROUND_TIP:String = "roundTip";
            public static const SQUARE_TIP:String = "squareTip";
            
            private static var OBO_TT:OBO_ToolTip;
            
            private var _adv:Boolean;
            private var _tipText:TextField;
            private var _tipColor:uint;
            private var _tipAlpha:Number;
            private var _format:TextFormat;
            private var _ds:DropShadowFilter;
            private var _root:DisplayObjectContainer;
            private var _userTip:String;
            private var _orgX:int;
            private var _orgY:int;
            
            /**
            * singleton class - use static createToolTip() method for instantiation
            * @private
            */
            
            public function OBO_ToolTip(tc:TipCreator, myRoot:DisplayObjectContainer, font:Font, tipColor:uint = 0xFFFFFF, tipAlpha:Number = 1, tipShape:String = "roundTip", fontColor:uint = 0x000000, fontSize:int = 11, advRendering:Boolean = true) {
                if (!tc is TipCreator) throw new Error("OBO_ToolTip class must be instantiated with static method OBO_ToolTip.createToolTip() method.");
                
                _root = myRoot;
                _tipColor = tipColor;
                _tipAlpha = tipAlpha;
                _userTip = tipShape;
                _adv = advRendering;
                _format = new TextFormat(font.fontName, fontSize, fontColor);
                _ds = new DropShadowFilter(3, 45, 0x000000, .7, 2, 2, 1, 3);
                
                this.mouseEnabled = false;
            }
            
            /**
            * The OBO_ToolTip is a Singleton class which is instantiated using the the static method createToolTip(). It allows you to easily add tool tip items to DisplayObject instances.
            * 
            * @example The following example creates a simple red square Sprite instance then instantiates a tool tip instance which displays when the mouse rolls over the square:
            * <listing version="3.0">
            *  package {
            *
            *     import flash.display.Sprite;
            *     import com.onebyonedesign.utils.OBO_ToolTip;
            *     import flash.events.MouseEvent;
            *
            *         public class ToolTipExample extends Sprite {
            * 
            *         private var _toolTip:OBO_ToolTip;
            *         private var _mySprite:Sprite;
            *
            *         public function ToolTipExample() {
            *             _mySprite = drawSprite();
            *             _mySprite.x = 100;
            *             _mySprite.y = 100;
            *             addChild(_mySprite);
            *
            *             _toolTip = OBO_ToolTip.createToolTip(this, new LibraryFont(), 0x000000, .8, OBO_ToolTip.ROUND_TIP, 0xFFFFFF, 8, false);
            *          
            *             _mySprite.addEventListener(MouseEvent.ROLL_OVER, displayToolTip);
            *             _mySprite.addEventListener(MouseEvent.ROLL_OUT, removeToolTip);
            *         }
            * 
            *         private function displayToolTip(me:MouseEvent):void {
            *             _toolTip.addTip("This is a tool tip example.");
            *         }
            * 
            *         private function removeToolTip(me:MouseEvent):void {
            *             _toolTip.removeTip();
            *         }
            * 
            *         private function drawSprite():Sprite {
            *             var s:Sprite = new Sprite();
            *             s.graphics.beginFill(0xFF0000);
            *             s.graphics.drawRect(0, 0, 50, 50);
            *             s.graphics.endFill();
            *             return s;
            *         }
            *     }
            * }
            * </listing>
            * 
            * 
            * @param    myRoot      The "root" display object which will parent the tool tip.
            * @param    font            An instance of the embedded font class to use for the tool tip text.
            * @param    tipColor        The hexadecimal color of the tool tip.
            * @param    tipAlpha        The alpha of the tool tip (0 - 1).
            * @param    tipShape        The shape of the tool tip. Either <code>OBO_ToolTip.ROUND_TIP</code> or <code>OBO_ToolTip.SQUARE_TIP</code>.
            * @param    fontColor      The hexadecimal color of the tool tip's text.
            * @param    fontSize        The size of the tool tip text.
            * @param    advRendering    Recommend <code>false</code> for pixel fonts and <code>true</code> for others.
            * @return               A single instance of the OBO_ToolTip class.
            */
            public static function createToolTip(myRoot:DisplayObjectContainer, font:Font, tipColor:uint = 0xFFFFFF, tipAlpha:Number = 1, tipShape:String = "roundTip", fontColor:uint = 0x000000, fontSize:int = 11, advRendering:Boolean = true):OBO_ToolTip {
                if (OBO_TT == null) OBO_TT = new OBO_ToolTip(new TipCreator(), myRoot, font, tipColor, tipAlpha, tipShape, fontColor, fontSize, advRendering);
                return OBO_TT;
            }
            
            /**
            * Use this method to display the tool tip.
            * 
            * @param    words         The message the tool tip should display.
            * @return
            */
            public function addTip(words:String):void {
                _root.addChild(this);
                _tipText = new TextField();
                _tipText.mouseEnabled = false;
                _tipText.selectable = false;
                _tipText.defaultTextFormat = _format;
                _tipText.antiAliasType = _adv ? AntiAliasType.ADVANCED : AntiAliasType.NORMAL;
                _tipText.width = 1;
                _tipText.height = 1;
                _tipText.autoSize = TextFieldAutoSize.LEFT;
                _tipText.embedFonts = true;
                _tipText.multiline = true;
                _tipText.text = words;
    
                var w:Number = _tipText.textWidth;
                var h:Number = _tipText.textHeight;
                
                var tipShape:Array;
        
                switch (_userTip) {
                    case ROUND_TIP :
                        tipShape = [[0, -13.42], [0, -2], [10.52, -15.7], [13.02, -18.01, 13.02, -22.65], [13.02, -16-h], [13.23, -25.23-h, 3.1, -25.23-h], [-w , -25.23-h], [-w -7, -25.23-h, -w - 7, -16-h], [-w - 7, -22.65], [-w - 7, -13.42, -w, -13.42]];
                        break;
                    case SQUARE_TIP :
                        tipShape = [[-((w / 2) + 5), -16], [-((w / 2) + 5), -((18 + h) + 4)], [((w / 2) + 5), -((18 + h) + 4)], [((w / 2) + 5), -16], [6, -16], [0, 0], [-6, -16], [-((w / 2) + 5), -16]];
                        break;
                    default :
                        throw new Error("Undefined tool tip shape in OBO_ToolTip!");
                        break;
                }
            
                var len:int = tipShape.length;
                this.graphics.beginFill(_tipColor, _tipAlpha);  
                for (var i:int = 0; i < len; i++) {
                    if (i == 0) {
                        this.graphics.moveTo(tipShape[i][0], tipShape[i][1]);
                    } else if (tipShape[i].length == 2) {
                        this.graphics.lineTo(tipShape[i][0], tipShape[i][1]);
                    } else if (tipShape[i].length == 4) {
                        this.graphics.curveTo(tipShape[i][0], tipShape[i][1], tipShape[i][2], tipShape[i][3]);
                    }
                }
                this.graphics.endFill();
                
                this.x = stage.mouseX;
                this.y = stage.mouseY;
                this.filters = [_ds];
                _tipText.x = (_userTip == ROUND_TIP) ? Math.round(-w) : Math.round(-(w / 2)) - 2;
                _orgX = _tipText.x;
                _tipText.y = Math.round(-21 - h);
                _orgY = _tipText.y;
                this.addChild(_tipText);
                
                stage.addEventListener(MouseEvent.MOUSE_MOVE, onTipMove);
            }
            
            private function onTipMove(me:MouseEvent):void {
                this.x = Math.round(me.stageX);
                this.y = Math.round(me.stageY - 2);
                
                if (this.y - this.height < 0) {
                    this.scaleY = _tipText.scaleY = - 1;
                    _tipText.y = (_userTip == ROUND_TIP) ? - 18 : -16;
                    this.y = Math.round(me.stageY  + 5);
                 } else {
                    this.scaleY = _tipText.scaleY = 1;
                    _tipText.y = _orgY;
                }
    
                if (this.x - (this.width - 18) < 0) {
                    if (_userTip == ROUND_TIP) {
                        this.scaleX = _tipText.scaleX  = - 1;
                        _tipText.x = 5;
                    }
                } else {
                    this.scaleX = _tipText.scaleX = 1;
                    _tipText.x = _orgX;
                }
                
                me.updateAfterEvent();
            }
            
            /**
            * Use this method to remove the tool tip.
            * 
            * @return
            */
            public function removeTip():void {
                stage.removeEventListener(MouseEvent.MOUSE_MOVE, onTipMove);
                this.removeChild(_tipText);
                this.graphics.clear();
                _root.removeChild(this);
            }
            
            /**
            * Sets the shape of the tool tip. Valid arguments are the strings <code>OBO_ToolTip.ROUND_TIP</code> (or "roundTip") and <code>OBO_ToolTip.SQUARE_TIP</code> (or "squareTip"). Anything else will throw an error.
            *       
            * @return
            */
            public function set tipShape(shape:String):void {
                if (shape != ROUND_TIP && shape != SQUARE_TIP) throw new Error("Invalid tip shape \""+ shape + "\" specified at OBO_ToolTip.tipShape.");
                _userTip = shape;
            }
        }
        
    }
    
    internal class TipCreator {};


    la mia chiamata dalla root:

    codice:
    import classes.ActionScript3.OBO_ToolTip;
    
    var ToolTipClass:OBO_ToolTip = new OBO_ToolTip(); 
    
    
    // al passaggio nel mio MovieClip ---
    mcMioMovieClip.addEventListener(MouseEvent.ROLL_OVER, toolTipShow);
    function toolTipShow(e:MouseEvent):void
    {
    	ToolTipClass.addTip("pippo");
    }
    
    mcMioMovieClip.addEventListener(MouseEvent.ROLL_OUT, toolTipRemove);
    function toolTipRemove(e:MouseEvent):void
    {
    	ToolTipClass.removeTip();
    }

    Problema: Che parametri passo al Costruttore ???

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    la parte sotto, commentata, è un esempio di applicazione, fatto tramite una classe "ToolTipExample", in cui il richiamo alla classe "OBO_ToolTip" viene fatto in questa riga

    codice:
    OBO_TT = new OBO_ToolTip(new TipCreator(), myRoot, font, tipColor, tipAlpha, tipShape, fontColor, fontSize, advRendering);

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.