Visualizzazione dei risultati da 1 a 4 su 4

Discussione: definizione classe

  1. #1

    definizione classe

    come si definisce una classe?
    non riesco a dichiarare variabili/proprietà stringa
    e nel costruttore non posso assegnare ad una proprietà un valore.

    dove sbaglio?

    ecco il codice

    class frantoio extends MovieClip{
    var nome:String;
    var spec:Boolean;
    var stato:String;
    var vl:Array;

    function frantoio(nome:String(), vl:Array()){
    this.spec=false;
    this.stato="normale";
    this.nome=nome;
    this.vl=vl;
    }
    }
    si vivono molte vite e si muore una volta sola

  2. #2
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Per prima cosa, sarebbe così:

    codice:
    class frantoio extends MovieClip
    {
    	var nome:String;
    	var spec:Boolean;
    	var stato:String;
    	var vl:Array;
    	// senza le parentesi tonde
    	function frantoio(nome:String, vl:Array)
    	{
    		this.spec = false;
    		this.stato = "normale";
    		this.nome = nome;
    		this.vl = vl;
    	}
    }
    senza le parentesi tonde dopo il tipo del parametro.
    Poi, dal momento che questa classe estende la Classe MovieClip, la procedura è un po' diversa.

    - crea un nuovo movieclip nella libreria, cliccando sul tasto "+"
    - clicca con il pulsante destro del mouse sul movieclip, e scegli linkage
    - seleziona "Export for ActionScript"
    - scrivi "clip_frantoio" (ad esempio) nel campo "Identifier"
    - scrivi "frantoio" nel campo "AS 2.0 Class"
    - vai al primo frame della timeline principale
    - scrivi:

    codice:
    this.attachMovie("clip_frantoio", "prova", 1, {nome:"pippo", vl:["cip", "ciop"]});
    trace(prova.nome)
    trace(prova.vl)
    e usa questa classe:

    codice:
    class frantoio extends MovieClip
    {
    	var nome:String;
    	var spec:Boolean;
    	var stato:String;
    	var vl:Array;
    	function frantoio()
    	{
    		this.spec = false;
    		this.stato = "normale";
    	}
    }
    Per la classi che estendono MovieClip, non si passano parametri al costruttore, bensì si utilizza il metodo dell'oggetto di inizializzazione, che scrive le proprietà di quest'ultimo nell'istanza creata (la parte in rosso).

  3. #3
    consigli validissimi!

    ora pero' non riesco ad iterare nella proprietà vl con il ciclo for...in.

    in particolare ho definito questa funzione

    function traccia(){
    for(item in this.vl) trace(item);
    }

    ma mi dice che item non e' una proprietà. Ho provato a definirla come proprietà ma mi rende indefiniti tutte le altre proprietà. Ho provato ad invertire item con this.vl (casomai avessi sbagliato la sintassi) e mi comunica che sarebbe necessario un punto e virgola.

    idee?
    si vivono molte vite e si muore una volta sola

  4. #4
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    codice:
    function traccia()
    {
    	for(var item in this.vl)trace(item);
    }

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.