Flash: come inizializzare componenti nel costruttore di una classe

Martedì 6 Novembre, 2007

Quando si estente una classe da un MovieClip che continene altri oggetti (MovieClip, TextField, etc...) questi ultimi potrebbero non essere "pronti" all'interno del costruttore. Questo accade soprattutto quando si utilizzano altri MovieClip estesi o i componenti (controls) di Flash. Per risolvere il problema basta sfruttare l'evento onLoad ereditato dalla classe stessa. Ad esempio immaginiamo di avere un MovieClip che contiene un campo TextField (oggetto visuale statico interno a Flash) e un oggetto TextInput (controllo inserito dal pannello componenti) e si vuole impostare qualche proprietà durante il costruttore della nostra classe MiaClasse.

Esempio Creiamo un simbolo ed inseriamo al suo interno sia l'oggetto TextField (chiamiamolo text_txt) sia l'oggetto TextInput (textinput_txt). Associamo questo simbolo ad una classe che estende un MovieClip, chiameremo la nostra classe MiaClasse. Quello che vogliamo ottenere è che durante il costruttore della nostra classe MiaClasse vengano inizializzati questi due controlli. Se proviamo ad usare un codice come questo:

Actionscript:
  1. //
  2. import mx.controls.TextInput;
  3. //
  4. class MiaClasse extends MovieClip {
  5.     //
  6.     private var text_txt:TextField;
  7.     private var textinput_txt:TextInput;
  8.     //
  9.     function MiaClasse() {
  10.         trace("MiaClasse::costruttore");
  11.         //
  12.         text_txt.text = "Ciao";
  13.         textinput_txt.text = "Ciao";
  14.         //
  15.     }
  16.  
  17. }

Continua a leggere... »

Post correlati