Visualizzazione dei risultati da 1 a 8 su 8

Discussione: [AS2.0] Classe ToolTip

  1. #1

    [AS2.0] Classe ToolTip

    il vostro inutile sborone fagiano ha creato e testato di persona una classe per creare semplici ToolTips personalizzabili nel carattere e nei colori.

    Parametri al costruttore:
    • path di utilizzo ( this, _root, _parent, MovieClip, etc. )
    • latenza 0-100 ( ritardo di comparsa scritta )
    • colore testo ( opzionale, DEFAULT: 0x000000 )
    • colore sfondo ( opzionale, DEFAULT: no sfondo )
    • colore bordo ( opzionale, DEFAULT: no bordo )


    Parametri al font:
    • font o nome linkage font esportato ( opzional, DEFAULT: Verdana )
    • size della font ( opzional, DEFAULT: 10 )
    • embedFont ( opzional, default: false ) *

      * se il font viene esportato e l' embed e' true l' effetto entra ed esce in dissolvenza, altrimenti entra ed esce di stacco





    ESEMPIO:
    /**
    * Create 2 bottoni, uno con istanza testMovie1 e uno con istanza testMovie2
    * Esportate un font con nome linkage "myAliasLinkage"
    * scrivete nel keyframe dedicato delle Actions quanto segue
    * ( assicuratevi di avere settato il classpath o di avere
    * il file ToolTip.as nella stessa dir )
    */
    var myTT:ToolTip = new ToolTip( this, 30, 0x000000, 0xFAFADB, 0x000000 );
    myTT.setFont( "myAliasLinkage", 10, true );
    myTT.setLabel( testMovie1, "label button 1" );
    myTT.setLabel( testMovie2, "label button 2" );
    /**
    * Testate il filmato, se tutto e' OK dopo una permanenza
    * di 600 millesimi ( 30 * 20 <-- intervallo interno di controllo )
    * dovreste vedere la vostra ToolTip con la relativa info
    */




    ToolTip.as
    codice:
    /**
     * Class ToolTip :: ToolTip.as :: by [ andr3a ]
     * Create one or more tooltips for your MovieClips, Buttons and other object
     * without modify or implement Button's statements such onPress, OnRelease
     * or other events.
     * .
     * EXAMPLE:
     * var myTT:ToolTip = new ToolTip( this, 30, 0x000000, 0xFAFADB, 0x000000 );
     * myTT.setFont( "myAliasLinkage", 10, true );
     * myTT.setLabel( testMovie1, "my label" );
     * myTT.setLabel( testMovie2, "mytest2" );
     *
     * @version	ActionScript 2.0 class file
     * @author	Andrea Giammarchi
     * @date	05/01/2004
     * @lastMod	17/02/2004 02:50
     * @site	http://www.3site.it/
     */
    class ToolTip {
    	private var TT_textFormat:TextFormat;
    	private var TT_graphic:Object;
    	private var TT_absolutePath:Object;
    	private var TT_embed:Boolean;
    	private var TT_fontColor:Number, TT_borderColor:Number, TT_backgroundColor:Number, TT_showCounter:Number;
    	/**
    	 * Public constructor
    	 * var myToolTip:ToolTip = new ToolTip( path [ latency, [ fontColor, [ backgroundColor, [ borderColor ]]]] );
    	 *
    	 * @param	Object	path where tooltip will be created
    	 *					Example: _root, this, MovieClip, etc.
    	 * @param	Number	latency before show ToolTip( 0 - 100 ) DEFAULT: 0
    	 * @param	Number	font color ( DEFAULT: 0x000000 )
    	 * @param	Number	background color
    	 * @param	Number	border color
    	 */
    	function ToolTip( TT_absolutePath:Object, TT_showCounter:Number, TT_fontColor:Number, TT_backgroundColor:Number, TT_borderColor:Number ) {
    		this.TT_absolutePath = TT_absolutePath;
    		this.TT_fontColor = TT_fontColor;
    		this.TT_borderColor = TT_borderColor;
    		this.TT_backgroundColor = TT_backgroundColor;
    		this.TT_showCounter = Math.abs( TT_showCounter );
    		TT_embed = new Boolean( false );
    		TT_textFormat = new TextFormat();
    		TT_textFormat.font = "Verdana";
    		TT_textFormat.size = 10;
    		TT_textFormat.leftMargin = 2;
    		TT_textFormat.rightMargin = 2;
    		var maxDepht:Number = new Number( TT_absolutePath.getNextHighestDepth() );
    		var remName:String = new String( "TT_object_" + maxDepht );
    		TT_absolutePath.createEmptyMovieClip( remName, maxDepht );
    		TT_graphic = new Object( _root[remName] );
    		TT_graphic.createTextField( "TT_label" , TT_absolutePath.getNextHighestDepth() , 0 , 0 , 1 , 1 );
    		labelSetup( TT_graphic["TT_label"], TT_fontColor, TT_backgroundColor, TT_borderColor );
    		TT_graphic._visible = false;
    	}
    	/**
    	 * Public method
    	 * myToolTip.setLabel( TT_movie:Object, TT_label:String );
    	 *
    	 * @param	Object	MovieClip, Button or other to apply ToolTip
    	 * @param	String	String to show on ToolTip
    	 * @return	Void
    	 */
    	public function setLabel( TT_movie:Object, TT_label:String ):Void {
    		var maxDepht:Number = new Number( TT_absolutePath.getNextHighestDepth() );
    		var remName:String = new String( "TT_object_" + maxDepht );
    		TT_graphic.duplicateMovieClip( remName, maxDepht );
    		TT_absolutePath[remName].createTextField( "TT_label" , TT_absolutePath.getNextHighestDepth() , 0 , 0 , 1 , 1 );
    		labelSetup( TT_absolutePath[remName]["TT_label"], TT_fontColor, TT_backgroundColor, TT_borderColor );
    		TT_absolutePath[remName].TT_label.htmlText = TT_label + " ";
    		TT_absolutePath[remName].TT_label.setTextFormat( TT_textFormat );
    		TT_absolutePath[remName]._alpha = 0;
    		TT_absolutePath[remName].__ToolTipInterval = setInterval( this.manageLabel, 20, TT_movie, TT_absolutePath[remName], TT_absolutePath, TT_showCounter );
    	}
    	/**
    	 * Public method
    	 * myToolTip.setFont( TT_textFormat:String[, TT_fontsize:Number[, TT_embed:Boolean ]] );
    	 *
    	 * @param	String	font's linkage or font name
    	 * @param	Number	font size ( DEFAULT: default flash choice )
    	 * @param	Boolean	embedFont ( DEFAULT: false )
    	 * @return	Void
    	 */
    	public function setFont( TT_textFormat:String, TT_fontsize:Number, TT_embed:Boolean ):Void {
    		this.TT_textFormat.font = TT_textFormat;
    		if( TT_fontsize != undefined ) {
    			this.TT_textFormat.size = TT_fontsize;
    		}
    		if( TT_embed == true ) {
    			this.TT_embed = true;
    		}
    		else {
    			this.TT_embed = false;
    		}
    		TT_graphic.TT_label.setTextFormat( this.TT_textFormat );
    	}
    	private function labelSetup( myLabel:Object, TT_fontColor:Number, TT_backgroundColor:Number, TT_borderColor:Number ):Void {
    		if( TT_fontColor == undefined ) {
    			TT_fontColor = 0x000000;
    		}
    		if( TT_backgroundColor != undefined ) {
    			myLabel.background = true;
    			myLabel.backgroundColor = TT_backgroundColor;
    		}
    		if( TT_borderColor != undefined ) {
    			myLabel.border = true;
    			myLabel.borderColor = TT_borderColor;
    		}
    		myLabel.autoSize = true;
    		myLabel.multiline = true;
    		myLabel.selectable = false;
    		myLabel.textColor = TT_fontColor;
    		myLabel.embedFonts = TT_embed;
    	}
    	private function manageLabel( TT_movie:Object, TT_graphic:Object, TT_absolutePath:Object, TT_showCounter:Number ):Void {
    		if( TT_movie.hitTest( _root._xmouse, _root._ymouse ) ) {
    			var maxDepth:Number = new Number( TT_absolutePath.getNextHighestDepth() );
    			if( TT_graphic.getDepth() != ( maxDepth - 1 ) ) {
    				TT_graphic.swapDepths( ( maxDepth - 1 ) );
    			}
    			if( TT_graphic.restarted == TT_showCounter ) {
    				if( TT_graphic._visible == false ) {
    					TT_graphic._visible = true;
    				}
    				if( TT_graphic._alpha < 100 ) {
    					TT_graphic._alpha += 10;
    				}
    				else if( TT_graphic._alpha != 100 ){
    					TT_graphic._alpha = 100;
    				}
    			}
    			else {
    				if( TT_graphic.restarted == undefined ) {
    					TT_graphic.restarted = 0;
    				}
    				TT_graphic.restarted++;
    			}
    			var maxWidth:Number = new Number( _root._xmouse + 20 + TT_graphic._width );
    			var maxHeight:Number = new Number( _root._ymouse + 20 + TT_graphic._height );
    			if( ( maxWidth > Stage.width ) || ( maxHeight > Stage.height ) ) {
    				if( maxWidth > Stage.width && maxHeight > Stage.height ) {
    					TT_graphic._x = Stage.width - TT_graphic._width;
    					TT_graphic._y = Stage.height - TT_graphic._height;
    				}
    				else if( maxWidth > Stage.width && maxHeight < Stage.height ) {
    					TT_graphic._x = Stage.width - TT_graphic._width;
    					TT_graphic._y = _root._ymouse + 20;
    				}
    				else if( maxWidth < Stage.width && maxHeight > Stage.height ) {
    					TT_graphic._y = Stage.height - TT_graphic._height;
    					TT_graphic._x = _root._xmouse + 20;
    				}
    			}
    			else {
    				TT_graphic._x = _root._xmouse + 20;
    				TT_graphic._y = _root._ymouse + 20;
    			}
    		}
    		else {
    			if( TT_graphic._alpha <= 0 ) {
    				if( TT_graphic._visible == true ) {
    					TT_graphic._visible = false;
    					TT_graphic._alpha = 0;
    					TT_graphic.restarted = 0;
    				}
    			}
    			else {
    				TT_graphic._alpha -= 10;
    			}
    		}
    	}
    }
    Pareri, critiche e consigli sono bene accetti



    [editato]
    credo che a flash-mx.it manchi una sezione dedicata alla raccolta classi in AS1/2
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  2. #2
    ciao,
    ho fatto come hai detto ma non vedo nessun tip, nanche usando un font non embed
    Free ActionScript Editor

    Y en silencio y sin cruzar una palabra
    solamente una mirada es suficiente para hablar

  3. #3
    Originariamente inviato da flash_mx2
    ciao,
    ho fatto come hai detto ma non vedo nessun tip, nanche usando un font non embed
    nel senso che sono talmente fagiano che ho scambiato l' ALT o TITLE per una ToolTip o nel senso che non accade proprio niente ???


    cmq qua' c'e' uno zip con swf, fla e classe .as funzionante e fatto ricopiando il codice dal forum

    http://www.3site.it/varie/ToolTip.zip


    P.S. fermati sopra uno dei bottoni per almeno 2 secondi ... qualcosa deve accadere :master:


    P.S. 2 [editato]
    ho appena aggiunto la voce multiline per il testo, me ne ero completamente scordato
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  4. #4
    ah, ok..
    io avevo fatto come avevi detto:
    Create 2 bottoni, uno con istanza testMovie1 e uno con istanza testMovie2
    ma con i bottoni non va
    Free ActionScript Editor

    Y en silencio y sin cruzar una palabra
    solamente una mirada es suficiente para hablar

  5. #5
    Originariamente inviato da flash_mx2
    ma con i bottoni non va
    azzo ... e pensare che passavo solo MovieClip e poi c'ho messo Object proprio perche' pensavo di renderlo compatibile anche coi bottoni .... :master:

    coi bottoni non va nemmeno il testo dinamico , mi sa che e' veramente troppo che non li uso piu' i bottoni


    ok, per ora fate dei movie


    ( consigli ? )
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  6. #6

    soluzione di emergenza ...

    per ora ho schiaffato un metodo alternativo dando per scontato che chi usa i bottoni mette la gestione rollover e rollout sulla timeline del bottone stesso ... quindi al massimo gestira' i soliti eventi onPress o onRelease senza creare confusione con le proprieta' della classe.

    Altra differenza e' che se utilizzata con bottoni i riferimenti saranno gestiti in onEnterFrame dalle tooltips , quindi l' attesa per l'entrata e la lunghezza eventuale del fade saranno accettabili con framerates abbastanza elevati ( diciamo da 30 in su vanno bene, anche sotto ma ci mette un po' ... )


    codice:
    /**
     * Class ToolTip :: ToolTip.as :: by [ andr3a ]
     * Create one or more tooltips for your MovieClips, Buttons and other object
     * without modify or implement Button's statements such onPress, OnRelease
     * or other events.
     * .
     * EXAMPLE:
     * var myTT:ToolTip = new ToolTip( this, 30, 0x000000, 0xFAFADB, 0x000000 );
     * myTT.setFont( "myAliasLinkage", 10, true );
     * myTT.setLabel( testMovie1, "my label" );
     * myTT.setLabel( testMovie2, "mytest2" );
     *
     * @version	ActionScript 2.0 class file
     * @author	Andrea Giammarchi
     * @date	05/01/2004
     * @lastMod	17/02/2004 14:50
     * @site	http://www.3site.it/
     */
    class ToolTip {
    	private var TT_textFormat:TextFormat;
    	private var TT_graphic:Object;
    	private var TT_absolutePath:Object;
    	private var TT_embed:Boolean;
    	private var TT_fontColor:Number, TT_borderColor:Number, TT_backgroundColor:Number, TT_showCounter:Number;
    	/**
    	 * Public constructor
    	 * var myToolTip:ToolTip = new ToolTip( path [ latency, [ fontColor, [ backgroundColor, [ borderColor ]]]] );
    	 *
    	 * @param	Object	path where tooltip will be created
    	 *					Example: _root, this, MovieClip, etc.
    	 * @param	Number	latency before show ToolTip( 0 - 100 ) DEFAULT: 0
    	 * @param	Number	font color ( DEFAULT: 0x000000 )
    	 * @param	Number	background color
    	 * @param	Number	border color
    	 */
    	function ToolTip( TT_absolutePath:Object, TT_showCounter:Number, TT_fontColor:Number, TT_backgroundColor:Number, TT_borderColor:Number ) {
    		this.TT_absolutePath = TT_absolutePath;
    		this.TT_fontColor = TT_fontColor;
    		this.TT_borderColor = TT_borderColor;
    		this.TT_backgroundColor = TT_backgroundColor;
    		this.TT_showCounter = Math.abs( TT_showCounter );
    		TT_embed = new Boolean( false );
    		TT_textFormat = new TextFormat();
    		TT_textFormat.font = "Verdana";
    		TT_textFormat.size = 10;
    		TT_textFormat.leftMargin = 2;
    		TT_textFormat.rightMargin = 2;
    		var maxDepht:Number = new Number( TT_absolutePath.getNextHighestDepth() );
    		var remName:String = new String( "TT_object_" + maxDepht );
    		TT_absolutePath.createEmptyMovieClip( remName, maxDepht );
    		TT_graphic = new Object( _root[remName] );
    		TT_graphic.createTextField( "TT_label" , TT_absolutePath.getNextHighestDepth() , 0 , 0 , 1 , 1 );
    		labelSetup( TT_graphic["TT_label"], TT_fontColor, TT_backgroundColor, TT_borderColor );
    		TT_graphic._visible = false;
    	}
    	/**
    	 * Public method
    	 * myToolTip.setLabel( TT_movie:Object, TT_label:String );
    	 *
    	 * @param	Object	MovieClip, Button or other to apply ToolTip
    	 * @param	String	String to show on ToolTip
    	 * @return	Void
    	 */
    	public function setLabel( TT_movie:Object, TT_label:String ):Void {
    		var maxDepht:Number = new Number( TT_absolutePath.getNextHighestDepth() );
    		var remName:String = new String( "TT_object_" + maxDepht );
    		TT_graphic.duplicateMovieClip( remName, maxDepht );
    		TT_absolutePath[remName].createTextField( "TT_label" , TT_absolutePath.getNextHighestDepth() , 0 , 0 , 1 , 1 );
    		labelSetup( TT_absolutePath[remName]["TT_label"], TT_fontColor, TT_backgroundColor, TT_borderColor );
    		TT_absolutePath[remName].TT_label.htmlText = TT_label + " ";
    		TT_absolutePath[remName].TT_label.setTextFormat( TT_textFormat );
    		TT_absolutePath[remName]._alpha = 0;
    		TT_absolutePath[remName].__ToolTipInterval = setInterval( manageLabel, 20, TT_movie, TT_absolutePath[remName], TT_absolutePath, TT_showCounter );
    	}
    	/**
    	 * Public method
    	 * myToolTip.setFont( TT_textFormat:String[, TT_fontsize:Number[, TT_embed:Boolean ]] );
    	 *
    	 * @param	String	font's linkage or font name
    	 * @param	Number	font size ( DEFAULT: default flash choice )
    	 * @param	Boolean	embedFont ( DEFAULT: false )
    	 * @return	Void
    	 */
    	public function setFont( TT_textFormat:String, TT_fontsize:Number, TT_embed:Boolean ):Void {
    		this.TT_textFormat.font = TT_textFormat;
    		if( TT_fontsize != undefined ) {
    			this.TT_textFormat.size = TT_fontsize;
    		}
    		if( TT_embed == true ) {
    			this.TT_embed = true;
    		}
    		else {
    			this.TT_embed = false;
    		}
    		TT_graphic.TT_label.setTextFormat( this.TT_textFormat );
    	}
    	private function labelSetup( myLabel:Object, TT_fontColor:Number, TT_backgroundColor:Number, TT_borderColor:Number ):Void {
    		if( TT_fontColor == undefined ) {
    			TT_fontColor = 0x000000;
    		}
    		if( TT_backgroundColor != undefined ) {
    			myLabel.background = true;
    			myLabel.backgroundColor = TT_backgroundColor;
    		}
    		if( TT_borderColor != undefined ) {
    			myLabel.border = true;
    			myLabel.borderColor = TT_borderColor;
    		}
    		myLabel.autoSize = true;
    		myLabel.multiline = true;
    		myLabel.selectable = false;
    		myLabel.textColor = TT_fontColor;
    		myLabel.embedFonts = TT_embed;
    	}
    	private function manageLabel( TT_movie:Object, TT_graphic:Object, TT_absolutePath:Object, TT_showCounter:Number ):Void {
    		if( TT_movie instanceof Button ) {
    			clearInterval( TT_graphic.__ToolTipInterval );
    			TT_movie.TT_graphic = TT_graphic;
    			TT_movie.TT_showCounter = TT_showCounter;
    			TT_movie.TT_absolutePath = TT_absolutePath;
    			TT_movie.onRollOver = function() {
    				this.TT_graphic.TT_showCounter = this.TT_showCounter;
    				this.TT_graphic.TT_absolutePath = this.TT_absolutePath;
    				this.TT_graphic.onEnterFrame = function() {
    					var maxDepth:Number = new Number( this.TT_absolutePath.getNextHighestDepth() );
    					if( this.getDepth() != ( maxDepth - 1 ) ) {
    						this.swapDepths( ( maxDepth - 1 ) );
    					}
    					if( this.restarted == this.TT_showCounter ) {
    						if( this._visible == false ) {
    							this._visible = true;
    						}
    						if( this._alpha < 100 ) {
    							this._alpha += 10;
    						}
    						else if( this._alpha != 100 ){
    							this._alpha = 100;
    						}
    					}
    					else {
    						if( this.restarted == undefined ) {
    							this.restarted = 0;
    						}
    						this.restarted++;
    					}
    					if( this.neverOpened == true || this.neverOpened == undefined ) {
    						this.neverOpened = false;
    						var maxWidth:Number = new Number( _root._xmouse + 20 + this._width );
    						var maxHeight:Number = new Number( _root._ymouse + 20 + this._height );
    						if( ( maxWidth > Stage.width ) || ( maxHeight > Stage.height ) ) {
    							if( maxWidth > Stage.width && maxHeight > Stage.height ) {
    								this._x = Stage.width - this._width;
    								this._y = Stage.height - this._height;
    							}
    							else if( maxWidth > Stage.width && maxHeight < Stage.height ) {
    								this._x = Stage.width - this._width;
    								this._y = _root._ymouse + 20;
    							}
    							else if( maxWidth < Stage.width && maxHeight > Stage.height ) {
    								this._y = Stage.height - this._height;
    								this._x = _root._xmouse + 20;
    							}
    						}
    						else {
    							this._x = _root._xmouse + 20;
    							this._y = _root._ymouse + 20;
    						}
    					}
    				}
    			}
    			TT_movie.onRollOut = TT_movie.onReleaseOutside = function() {
    				this.TT_graphic.onEnterFrame = function() {
    					if( this._alpha <= 0 ) {
    						if( this._visible == true ) {
    							this._visible = false;
    							this._alpha = 0;
    							this.restarted = 0;
    							delete this.onEnterFrame;
    							this.neverOpened = true;
    						}
    					}
    					else {
    						this._alpha -= 10;
    					}
    				}
    			}
    		}
    		else if( TT_movie instanceof MovieClip && TT_movie.hitTest( _root._xmouse, _root._ymouse ) ) {
    			var maxDepth:Number = new Number( TT_absolutePath.getNextHighestDepth() );
    			if( TT_graphic.getDepth() != ( maxDepth - 1 ) ) {
    				TT_graphic.swapDepths( ( maxDepth - 1 ) );
    			}
    			if( TT_graphic.restarted == TT_showCounter ) {
    				if( TT_graphic._visible == false ) {
    					TT_graphic._visible = true;
    				}
    				if( TT_graphic._alpha < 100 ) {
    					TT_graphic._alpha += 10;
    				}
    				else if( TT_graphic._alpha != 100 ){
    					TT_graphic._alpha = 100;
    				}
    			}
    			else {
    				if( TT_graphic.restarted == undefined ) {
    					TT_graphic.restarted = 0;
    				}
    				TT_graphic.restarted++;
    			}
    			if( TT_graphic.neverOpened == true || TT_graphic.neverOpened == undefined ) {
    				TT_graphic.neverOpened = false;
    				var maxWidth:Number = new Number( _root._xmouse + 20 + TT_graphic._width );
    				var maxHeight:Number = new Number( _root._ymouse + 20 + TT_graphic._height );
    				if( ( maxWidth > Stage.width ) || ( maxHeight > Stage.height ) ) {
    					if( maxWidth > Stage.width && maxHeight > Stage.height ) {
    						TT_graphic._x = Stage.width - TT_graphic._width;
    						TT_graphic._y = Stage.height - TT_graphic._height;
    					}
    					else if( maxWidth > Stage.width && maxHeight < Stage.height ) {
    						TT_graphic._x = Stage.width - TT_graphic._width;
    						TT_graphic._y = _root._ymouse + 20;
    					}
    					else if( maxWidth < Stage.width && maxHeight > Stage.height ) {
    						TT_graphic._y = Stage.height - TT_graphic._height;
    						TT_graphic._x = _root._xmouse + 20;
    					}
    				}
    				else {
    					TT_graphic._x = _root._xmouse + 20;
    					TT_graphic._y = _root._ymouse + 20;
    				}
    			}
    		}
    		else {
    			if( TT_graphic._alpha <= 0 ) {
    				if( TT_graphic._visible == true ) {
    					TT_graphic._visible = false;
    					TT_graphic._alpha = 0;
    					TT_graphic.restarted = 0;
    					TT_graphic.neverOpened = true;
    				}
    			}
    			else {
    				TT_graphic._alpha -= 10;
    			}
    		}
    	}
    }
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  7. #7
    a parte quello è carino, anche se io avrei fatto un component a parte, perchè questo crea un movieclip cmq nello stage.

    ps. questo è solo un mio parere, ma non mi piace che l'alt segua il movimento del mouse.. imho dovrebbe rimanere fermo quando appare
    Free ActionScript Editor

    Y en silencio y sin cruzar una palabra
    solamente una mirada es suficiente para hablar

  8. #8
    Originariamente inviato da flash_mx2
    a parte quello è carino, anche se io avrei fatto un component a parte, perchè questo crea un movieclip cmq nello stage.
    anche il component crea un movie .. no ? :master:



    Originariamente inviato da flash_mx2
    ps. questo è solo un mio parere, ma non mi piace che l'alt segua il movimento del mouse.. imho dovrebbe rimanere fermo quando appare
    ... l'ho rieditata ora .. la accendiamo ???
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

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.