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
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
Cosa devi fare esattamente?
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.
e quando definisco le proprietà nel componente uso come variabile text, forse sbaglio qui?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; } } }
Il parametro lo hai creato manualmente dal pannello dei parametri del componente (tasto destro del mouse sul simbolo nella libreria)?
si esatto
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; } }
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?
Si, va benissimo, così te lo porti dietro quando sposti il component di fla in fla.
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(); } }
- 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:
Nella cartella "tueclassi", crei i package con il tuo namespace, ad esempio io ho:codice:. C:\tuacartella\tueclassi $(LocalData)/Classes
A questo punto non ti devi preoccupare di dove hai messo il filmato, in quanto sarà sempre in grado di raggiungere i classpath impostati.codice:C:\miacartella\mieclassi\com\negatyve\.... C:\miacartella\mieclassi\mx\classi_flash_modificate
Nella tua classe, quindi, scriverai:
Dimmi se qualcosa non è chiaro, anzi chiarissimo.codice:import com.esterno.Testi class tuaclasse { public function set ID(id:String):Void { if (id != '') { _ID = id; text = Testi.getID(_ID); invalidate(); } } }