Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Nome Variabili

  1. #1

    Nome Variabili

    Ciao a tutti,
    io avrei bisogno di dichiarare delle variabili, a dirla tutta degli oggetti, che abbiano ogni volta nomi diversi.
    Mi spiego: tali oggetti dovrebbero chiamarsi shape1, shape2, shape3, e così via con il numero associato che dovrebbe derivare da una variabile intera che si incrementa ad ogni creazione.
    Se non fosse possibile vi chiedo altri suggerimenti. Tali oggetti dovranno poi essere inseriti in un array.
    Grazie anticipatamente
    ciao

  2. #2
    mi spiego meglio:
    ad ogni determinato evento del mouse istanzio un'istanza di un oggetto da me creato(per esemplificare di tipo Oggetto); ora, tali istanze voglio che si chiamino shape0, shape1, shape2, shape3,.... praticamente, se può servire a spiegarmi meglio, il numero alla fine del nome dell'istanza deve aggiungersi dinamicamente e venire incrementato ad ogni creazione di un'istanza.
    In seguito ad altri eventi del mouse devo poi inserire tali istanze in un array (per esempio shapes <0> = shape0), ma questo, una volta assegnati i nomi come voglio, non è un problema.
    Tutto ciò mi serve farlo maneggiando singolarmente gli oggetti shape0, shape1,....e non tutti assieme in un ciclo, in quanto vengono creati in momenti diversi.
    Ah, e il numero di istanze da creare non è noto a priori, dipende dall'interazione con l'utente.
    Spero di essere stato più chiaro

  3. #3
    Vediamo un pò... scrivo una cosa semplice perchè non so cosa devi fare di preciso:

    codice:
    _root.contatoreOggetti = 0;
    
    function creaOggetto(args) {
    	//codice per creare l'oggetto es:
    	_root["shape"+_root.contatoreOggetti] = new Object(args);
    	_root.contatoreOggetti++;
    }
    poi per creare l'oggetto associ al tuo evento la funzione
    creaOggetto();

    Per quanto riguarda l'array, in che ordine devono essere inseriti gli oggetti?
    [Il mio sito V2]
    ___________________
    I.m.The.Magic.Man

  4. #4
    Grazie per l'aiuto, ho fatto qualche modifica seguendo le tue indicazioni ma non sono ancora riuscito a far funzionare l'applicazione
    Magari sbaglio qualcos'altro, visto che utilizzo anche gli shared object di cui non sono molto pratico!
    Se copio la parte di codice "incriminata" riusciresti a dargli un'occhiata per dirmi dove sbaglio?

    _global.num = 0;
    _global.shapes = new Array();

    function initDrawing() {
    createEmptyMovieClip("draw_mc", 10);
    createEmptyMovieClip("temp_mc", 20);
    selectColourThicknessAlpha(colour, thickness, alpha);
    }

    function mouseDownEvent() {
    selectColourThicknessAlpha(colour, thickness, alpha);
    startX = _xmouse;
    startY = _ymouse;
    _root["linea"+_global.num] = new Linea ();
    _root["linea"+_global.num].shapeType = "Line";
    _root["linea"+_global.num].start_X = startX;
    _root["linea"+_global.num].start_Y = startY;
    _root["linea"+_global.num].colore = colour;
    _root["linea"+_global.num].thickness = thickness;
    ]

    function mouseUpEvent() {
    drawLine(startX,startY,_xmouse,_ymouse, true);
    _root["linea"+_global.num].endX = _xmouse;
    _root["linea"+_global.num].endY = _ymouse;
    shapes[num] = _root["linea"+_global.num];
    _global.num++;
    }

    /////////Pulsante per recuperare i dati
    on (press) {
    dati = sharedobject.getLocal("draw");
    lunghezza = dati.data.forme.length();
    for (i=0; i<=lunghezza; i++){
    shapesRec[i] = dati.data.forme[i];
    initDrawing();
    selectColourThicknessAlpha(shapesRec.colore, shapesRec.thickness, alpha);
    drawLine(shapesRec.start_X,shapesRec.start_Y,shape sRec.endX,shapesRec.endY, true);
    }
    }

    /////////Pulsante per salvare
    on (press) {
    dati = sharedobject.getLocal("draw");
    if(!dati.data.forme){
    dati.data.forme = new Array();
    }
    lunghezza = shapes.length();
    for (i=0; i<=lunghezza; i++){
    dati.data.forme[i] = shapes [i];
    }
    dati.flush();
    }

  5. #5
    non so cosa non ti funziona.
    non so come funziona la classe Linea e le altre funzioni non definite.
    devi disegnare più linee e te ne esce una sola?
    [Il mio sito V2]
    ___________________
    I.m.The.Magic.Man

  6. #6
    No, tutte le funzioni di disegno sono a posto, funzionano alla paerfezione. Il fatto è che sono sicuro che in qualche modo qualcosa venga salvato nello shared object draw, perchè ho controllato che ogni volta che clicco il pulsante per salvare, il file draw.sol viene modificato. Però non riesco poi a recuperare le informazioni da tale file, cioè, nonostante drawLine funzioni, non viene ridisegnato nulla.
    Invece tutto funzionava quando, non sapendo ancora come nominare le istanze di linea, ne creavo una unica e la inserivo nell'array senza il ciclo for, cioè utilizzando solamente shapes[0] sia per salvare che recuperare i dati, veniva ridisegnata una linea esattamente dove era quell'unica che avevo salvato
    Inoltre quando ho tentato di creare la classe Linea come "da manuale", cioè class Linea {definizioni degli attributi,definizione costruttore} il player mi dava un errore di sintassi incomprensibile (tipo errore per una parentesi graffa o un punto e virgola che invece erano giusti!). Così ho definito solo il costruttore.

    function Linea (tempShapeType, tempStartX, tempStartY, tempEndX, tempEndY, tempColore, tempThickness){
    this.shapeType = tempShapeType;
    this.start_X = tempStartX;
    this.start_Y = tempStartY;
    this.endX = tempEndX;
    this.endY = tempEndY;
    this.colore = tempColore;
    this.thickness = tempThickness;}

    Cmq uso Flash mx, non il 2004, spero che non sia una delle cause del malfunzionamento.

  7. #7
    ok... andebbero fatte un po' di correzioni... cominciamo:

    io ho preferito dichiarare in _root num e shapes nelle mie prove
    quindi farò riferimento ad essi come _root.num e _root.shapes invece di usare _global.

    le modifiche sono in rosso
    //per salvare i dati
    codice:
    on (press) {
    	dati = SharedObject.getLocal("draw");
    	if (dati.data.forme == undefined ) {
    		dati.data.forme = new Array();
    	}
    	lunghezza = _root.shapes.length ;
    	for (i=0; i<lunghezza; i++) {
    		dati.data.forme[i] = _root.shapes[i];
    	}
    	dati.flush();
    }
    //per recuperare i dati
    codice:
    on (press) {
    	dati = SharedObject.getLocal("draw");
    	lunghezza = dati.data.forme.length ;
    	shapesRec = new Array(); 
    	for (i=0; i<lunghezza; i++) {
    		shapesRec[i] = dati.data.forme[i];
    		initDrawing();
    		selectColourThicknessAlpha(shapesRec.colore, shapesRec.thickness, alpha);
    		drawLine(shapesRec[i].start_X, shapesRec[i].start_Y, shapesRec[i].endX, shapesRec[i].endY, true);
    	}
    }
    [Il mio sito V2]
    ___________________
    I.m.The.Magic.Man

  8. #8
    Ok grazie mille, ora è perfetto!!!

  9. #9
    Ah, un'ultima richiesta di aiuto:non è che conosci un programma che possa aprire i files .sol per verificare ciò che viene salvato nello shared object?

  10. #10

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 © 2024 vBulletin Solutions, Inc. All rights reserved.