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

    risettare nomi istanza dinamicamente tramite as

    giorno

    problema:
    sto facendo una sortable list, cioè una colonna di clip posizionati uno sotto l'altro che devono poter essere draggati sull'asse y..quando un clip viene draggato e poi rilasciato viene ancorato nella posizione utile piu vicina..e fin qui ok

    i clip vengono agganciati allo stage con un nome progressivo (clip1,clip2...)

    il problema è che se il clip5 viene spostato alla posizione 2, i clip 2,3,4 dovranno slidare verso il basso per permettere a 5 di mettersi nella posizione di 2 e non sopra a 2 (nn so se mi sono spiegato)

    e anche questo piu o meno sn riuscito a farlo, solo che una volta draggato un clip, questo prende una posizione diversa da quella cn cui è stato duplicato e istanziato (clip5 in posizione 2 nn si chiama clip2 col suo nome originario) e quindi lo script al drag di un altro clip sposta anche clip che nn dovrebbero essere spostati (vengono spostati da un ciclo for)..

    tutto questo per dire:

    è POSSIBILE, UNA VOLTA SPOSTATO UN CLIP IN UNA NUOVA POSIZIONE, CAMBIARGLI TRAMITE AS IL NOME DI ISTANZA?

    grasssie!

  2. #2
    dimenticavo ..

    ho provato sia con
    setProperty(this["clip"+i], _name, "clip"+newClipPosition);
    this["clip"+i]._name = "clip"+newClipPosition

    dove newClipPosition è la var che contiene la nuova posizione che deve prendere il clip

  3. #3
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    mi pare proprio che non sia possibile cambiare il nome di istanza una volta che il clip è stato creato, però potresti usare un array, che contenga i nomi e quando fai lo switch elimini il clip dalla posizione in cui si trova nell'array e lo inserisci nella posizione "al posto di..." con uno splice

    un esempio del codice è questo:
    Codice PHP:
    var array:Array = ["clip1""clip2""clip3""clip4""clip5"];
    trace(array); // output: clip1,clip2,clip3,clip4,clip5
    // sposto clip5 alla seconda posizione
    array.splice(10, array.splice(41));
    trace(array); // output: clip1,clip5,clip2,clip3,clip4 

  4. #4
    grazie mille and

    ma così come risolvo il mio problema?
    cioè una volta che ho spostato le posizioni dei clip negli array come uso questo array?

    uso l'array per ingannare flash e far spostare i clip?
    nn capisco

  5. #5
    una domanda..

    array.splice(1, 0, array.splice(4, 1));
    sostituisce il clip nella posizione 4 al clip nella posizione 1 ok

    array.splice(1, 0, array.splice(4, 2));
    questo dovrebbe sostituire il clip alla pos 4 nella posizione 2...ma lo sostituisce alla 1 e
    array.splice(1, 0, array.splice(4, 0));
    incasina tutto lasciandomi un vuoto nell'array tra 0 e 1....


    mi sa che nn ho ben capito come funziona lo splice

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da sha
    grazie mille and

    ma così come risolvo il mio problema?
    cioè una volta che ho spostato le posizioni dei clip negli array come uso questo array?

    uso l'array per ingannare flash e far spostare i clip?
    nn capisco
    da quel che ho capito per spostare i clip utilizzi un ciclo...
    ebbene l'array sostituisce i clip nel ciclo, e visto che l'accesso agli indici avviene in maniera ordinata secondo la posizione dei clip, otterrai ad esempio (nell'sempio che ti ho fatto) che il clip1 andrà in posizione 1, il clip5 in posizione 2 ecc... attraverso il ciclo... immmagino che la posizione che dovrebbero ottenere sia già dichiarata da qualche parte...

  7. #7
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da sha
    una domanda..

    array.splice(1, 0, array.splice(4, 1));
    sostituisce il clip nella posizione 4 al clip nella posizione 1 ok

    array.splice(1, 0, array.splice(4, 2));
    questo dovrebbe sostituire il clip alla pos 4 nella posizione 2...ma lo sostituisce alla 1 e
    array.splice(1, 0, array.splice(4, 0));
    incasina tutto lasciandomi un vuoto nell'array tra 0 e 1....


    mi sa che nn ho ben capito come funziona lo splice
    no, nell'esempio ho fatto due passaggi in uno

    lo splice funziona in due modi
    uno elimina solo uno o più elementi da una posizione specifica (il primo parametro) e per un numero specifico di record (il secondo parametro)
    il secondo modo invece inserisce gli oggetti del terzo parametro nella posizione specificata al secondo, senza eliminare nessun elemento

    Codice PHP:
    var array:Array = ["clip1""clip2""clip3""clip4""clip5"];
    trace(array); // output: clip1,clip2,clip3,clip4,clip5
    // elimino "clip5" dalla sua posizione attuale
    array.splice(41);
    trace(array); // output: clip1,clip2,clip3,clip4
    // inserisco clip5 nella seconda posizione dell'array "mutilato"
    array.splice(10"clip5");
    trace(array); // output: clip1,clip5,clip2,clip3,clip4 
    confronta il codice con il precedente e nota le differenze

  8. #8
    perfeeeeetto!

    questo splice è fantastico!
    mi sono fatto la mia bella funzioncina e ora tutti i clip vengono spostati alla giusta posizione!

    and, ancora una volta, mi hai tolto dai guai!!!!
    grandioso!


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.