Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    1,037

    [AS2] Estendere componente Label

    Qualcuno sa consigliarmi un tutorial?
    Devo crearere l'interfaccia grafica, come se estendessi la classe UIObject?
    Non devo estendere la classe UIObject, ma Label, che a sua volta vorrei ancora estendere.
    Grazie

  2. #2
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Cosa devi fare esattamente?

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    1,037
    In pratica avrei bisogno di un (componente o classe) che abbia le stesse caratteristiche di label, in piu aggiungendo altre proprietà definite da me, e che a sua volta dovrà essere esteso con pulsante e con un icona, e che poi a sua volta dovrà essere un pulsante con movimento. ed etc..
    Ho provato creare una classe estendo dal MovieClip, avendo dentro di sè il componente Label, l'unico problema e che se nei parametri nel componente inizializzo una variabile che fa riferimento a 1 proprietà di Label, ho notato che Label non è stato ancora disegnato.
    codice:
    import mx.controls.Label;
    class TestoComponente extends MovieClip
    {
    	private var _testo:Label;
    	function TestoComponente()
    	{
    	}
    	public function set text(testo:String):Void
    	{
    		if (testo != '')
    		{
    			_testo.text = testo;
    		}
    	}
    }
    e quando definisco le proprietà nel componente uso come variabile text, forse sbaglio qui?

  4. #4
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Il parametro lo hai creato manualmente dal pannello dei parametri del componente (tasto destro del mouse sul simbolo nella libreria)?

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    1,037
    si esatto

  6. #6
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    IN verità ti dico che io non mettere il label nel component e userei questo script:

    codice:
    import mx.controls.Label
    
    class TestoComponente extends mx.core.UIObject
    {
    
    	private var _testo:Label;
    	private var _text:String;
    	private var initializing:Boolean = true;
    
    	function TestoComponente()
    	{
    	}
    	private function createChildren(Void):Void
    	{
    		createClassObject(Label, "_testo", 1, {text:_text});
    		initializing = false;
    	}
    	[Inspectable(defaultValue="")]
    	public function set text(testo:String)
    	{
    		if (testo != '')
    		{
    			_text = testo;
    			if(!initializing)_testo.text = testo;
    		}
    	}
    	public function get text():String
    	{
    		return _text;
    	}
    }

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    1,037
    per primo grazie mille per la rsiposta
    Spero che pti possa disturbare ancora.
    Nel mio componente, quando costruisco il fla, devo inserire anche il componente Label, sul secondo frame del livello assets?

  8. #8
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Si, va benissimo, così te lo porti dietro quando sposti il component di fla in fla.

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    1,037
    possso chiedere ancora?
    Ho un altra classe in un package, e vorrei fare riferimento alu suo metodo statico. Css.getStyleSheet();
    Come posso fare?
    import com.esterno.Css;
    In questo caso devo impostare il classpath, o basta che il fla si trovi nell percorso esatto, cioe nella cartella superiore di com?
    la stessa cosa vale per un altro metodo statico
    codice:
    	public function set ID(id:String):Void
    	{
    		if (id != '')
    		{
    			_ID = id;
    			text = Testi.getID(_ID);
    			invalidate();
    		}
    	}

  10. #10
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    - nelle preferenze relative all'Actionscript (quelle generali per tutti i filmati, non quelle relative al singolo filmato nelle impostazioni di pubblicazione), crea tre soli classpath, nell'ordine

    1. la cartella nel quale c'è il filmato
    2. una cartella nella quale metti tutte le tue classi
    3. la cartella con le classi del flash

    quindi, ad esempio:
    codice:
    .
    C:\tuacartella\tueclassi
    $(LocalData)/Classes
    Nella cartella "tueclassi", crei i package con il tuo namespace, ad esempio io ho:
    codice:
    C:\miacartella\mieclassi\com\negatyve\....
    C:\miacartella\mieclassi\mx\classi_flash_modificate
    A questo punto non ti devi preoccupare di dove hai messo il filmato, in quanto sarà sempre in grado di raggiungere i classpath impostati.
    Nella tua classe, quindi, scriverai:
    codice:
    import com.esterno.Testi
    
    class tuaclasse
    {
    	public function set ID(id:String):Void
    	{
    		if (id != '')
    		{
    			_ID = id;
    			text = Testi.getID(_ID);
    			invalidate();
    		}
    	}
    }
    Dimmi se qualcosa non è chiaro, anzi chiarissimo.

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.