Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [fl8 as2] prime prove con Classi

    Ciao a tutti,

    Sto sviluppando una fotocommunity, fino ad ora ho lavorato scriptando con funzioni sulla timeline e mai con le classi.

    Per necessità di progetto, devo passare ad una programmazione più raffinata.

    La classe qui sotto, una volta istanziata dovrebbe creare un rettangolo....invece lo schermo rimane vuoto.

    Qualcuno sa consigliarmi???

    Ringrazio anticipatamente

    Wiseman

    le righe di codice sulla timeline:
    var selector = new Selector();

    o

    var selector:Selector = new Selector();

    selector.drawing("ciao",100,100,0,0)


    la classe:

    codice:
    class Selector extends MovieClip {
    	var targetMC:MovieClip;
    	var nome:String;
    	var w:Number;
    	var h:Number;
    	var ws:Number;
    	var hs:Number;
    	function Selector() {
    	}
    	function drawing(nome:String, w:Number, h:Number, ws:Number, hs:Number) {
    		targetMC = this.createEmptyMovieClip(nome, 10000);
    		trace("sono qui "+w);
    		var bgColor:Number = 0x00CC00;
    		targetMC.beginFill(bgColor, 50);
    		targetMC.moveTo(ws, hs);
    		targetMC.lineTo(w, hs);
    		targetMC.lineTo(w, h);
    		targetMC.lineTo(ws, h);
    		targetMC.lineTo(ws, hs);
    		//this.targetMC.onEnterFrame = this.drawing;
    		//trace(this);
    		return targetMC;
    	}
    }

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    targetMC = this.createEmptyMovieClip(nome, 10000);

    all'interno della classe il this si riferisce alla classe stessa e non alla timeline in cui questa giace

    poi non mi pare necessario in questo caso creare la classe come estensione della classe MovieClip

    ultima cosa, i metodi pubblici devono essere dichiarati come tali... la tua classe potrebbe essere riscritta pressappoco così

    Codice PHP:
    class Selector {
        public function 
    drawing(t:MovieClipn:Stringl:Numberw:Numberh:Numberws:Numberhs:Number):MovieClip {
            
    t.createEmptyMovieClip(nl);
            
    with(t[n]){
                
    beginFill(0x0000CC50);
                
    moveTo(wshs);
                
    lineTo(whs);
                
    lineTo(wh);
                
    lineTo(wsh);
                
    lineTo(wshs);            
            }
            return 
    t[n];
        }

    Codice PHP:
    var selector:Object = new Selector();
    selector.drawing(this"ciao"110010000); 

  3. #3
    bhe....GRAZIE 1000000000!!!!!!!!

    A dire il vero, nella primissima prova che ho fatto, mi dava errore sul movieClip...ecco perchè ho usato extend MovieClip. L'errore è svanito, ma il risultato cmq era 0!!!!

    La difficoltà verà è che fare una funzione sulla timeline è apparentemente più semplice, o meglio....ci sono abituato e lo so fare. Le classi contengono funzioni...che diventano i metodi etc etc etc....è facile allora pensare di fare copia ed incolla....e gli errori continui scoraggiano!

    CMQ ti ringrazi infinitamente!!!!

    Francesco Wiseman

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    sì, in effetti con l'estensione di classe l'errore non doveva esserci, altrimenti ti avrebbe "detto" che la classe non aveva nessun metodo "createEmptyMovieClip"

    lavorare con le classi non è difficilissimo, certo bisogna abituarcisi, perchè comunque sono strutturalmente diverse rispetto alla programmazione tradizionale su timeline, ma ti risolvono un sacco di problemi e le routine vengono semplificate di parecchio

    io ad esempio mi son creato una classe a metodi statici, che utilizzo come canalizzatore delle funzioni comuni, tipo spostamenti di movieclip o creazione del background da texture o apertura popup ecc... così con un solo import della classe ho a disposizione tutti i metodi che mi occorrono in un progetto "standard"

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.