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

    duplicare un clip N volte a random

    Ciao a tutti!

    Vi spiego il mio problemino. Ho bisogno di duplicare un mc un numero di volte prestabilito e questo mc deve duplicarsi in posizioni random. Ho trovato qualcosa in rete ma niente che potesse risolvere del tutto il mio problema. C'è qualcuno che mi potrebbe aiutare?

    HELP ME!
    Il tempo passa non solo per chi parla, ma anche per chi ascolta

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    50
    ciao
    potresti, nella libreria del progetto, dare un identificativo alla clip da duplicare (es. "matrice")
    poi utilizzare un ciclo FOR per reiterare quante volte vuoi l'attach della clip "matrice" sullo stage alle coordinate che preferisci (in questo caso random).

    Se ad esempio vuoi duplicare 20 volte sullo stage la clip identificata "matrice" e vuoi che ciascun clone si posizioni a caso in un rettangolo 800x600, il codice dovrebbe essere questo:

    for(i=1;i<=20; i++){
    this.attachMovie("matrice", "matrice"+i, i, {_x:random(800), _y:random(600)})
    }

    "matrice" è l'identificativo della clip da usare come sorgente e che risiede nella libreria. Per dare un identificativo ad un elemento della libreria guarda la guida di flash ma è cmq molto facile.

    "matrice"+i è il nome che viene assegnato a ciascun clone. Quindi alla fine del ciclo avrai 20 clip che si chiameranno matrice1, matrice2, matrice3 etc etc

    i rappresenta il livello in cui creare ciascun clone. Maggiore è i piu'alto è il livello percio' matrice20 sara' la clip che risultera' sempre in primo piano.

    {_x:random(800), _y:random(600)} stabilisce che la posiz x di ciascun clone potra' essere un numero a caso tra 0 e 800 e la pos y tra 0 e 600.

    per modificare il numero di cloni ti basta mettere al posto del 20 nel ciclo FOR, il numero che ti pare

    spero sia tutto comprensibile
    I file so piezz 'e codice

  3. #3
    Ciao giomod grazie 1000 per avermi risposto.
    Volevo chiederti... ma che intendi quando dici "dare un identificativo alla clip da duplicare"?
    Come si fa?

    Non so se può essere utile ma il clip che devo duplicare già si trova sullo stage ed ha nome istanza "ramo"

    Grazie ancora
    Il tempo passa non solo per chi parla, ma anche per chi ascolta

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    50
    ciao
    allora
    se vuoi rendere una clip in libreria disponibile a essere richiamata sullo stage attraverso actionscript devi darle un nome univoco che la caratterizzi (identifier).
    per farlo devi cliccare col tasto destro sulla clip in libreria e nel menu che compare scegliere l'opzione "linkage" (in italiano non so, io uso flash in english).
    nel pannello che compare metti la spunta su "Export for Actionscript" automaticamente verrà spuntata anche l'opzione "Export in first frame" e si attiverà anche il campo "identifier" con il nome della clip già inserito. Se vuoi, questo nome puo' essere cambiato ma comunque questo è il nome che identificherà la tua clip. Quindi in libreria potresti avere la clip che si chiama "ramo" ma come identificativo usare un'altro nome (ad es. "matrice"). "matrice" è il nome che devi inserire nel codice che ti ho postato e NON il nome della clip.

    In alternativa se la tua clip è già sullo stage e le hai dato un nome ("ramo" in questo caso) allora devi sostituire il ciclo FOR che ti avevo passato con quest'altro

    for (i=1; i<=20; i++) {
    ramo.duplicateMovieClip("nome_scelto"+i, i, {_x:random(800), _y:random(600)});
    }

    in questo caso si usa il comando duplicateMovieClip che agisce su una istanza della clip già presente sullo stage e la duplica tante volte quante indicate nel ciclo.

    vedi tu quale metodo utilizzare, ognuno ha i suoi pro e contro.

    fammi sapere se funziona o se ci sono problemi

    bye
    I file so piezz 'e codice

  5. #5
    Ciao!

    Sei stato super! Funge tutto xò il movie mi si rallenta incredibilmente. Mi sà che dovrò inventarmi qualcos'altro per il mio sito.
    Grazie 1000 per la disponibilità e la cortesia

    Il tempo passa non solo per chi parla, ma anche per chi ascolta

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    50
    questo dipende molto da quanti cloni hai creato, soprattutto se la clip che hai duplicato varie volte è una clip che ha animazioni complesse.
    Calcola che tutti i calcoli che il motore di flash deve fare per il movimento della clip sorgente ora sono moltiplicati per il numero di cloni che hai creato, quindi cerca di semplificare al massimo il comportamento della clip sorgente.

    bye
    I file so piezz 'e codice

  7. #7
    Ciao giomod,

    stavo pensando... come faccio a ritardare di tot secondi l'apertura del clip duplicato? Cioè facendo come fin'ora mi hai suggerito, i clip appaiono tutti contemporaneamente. Io vorrei invece che si aprissero con tot secondi
    Il tempo passa non solo per chi parla, ma anche per chi ascolta

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    50
    ciao
    se vuoi un delay nella duplicazione delle clip allora devi abbandonare il ciclo FOR perchè questo le duplica tutte insieme.

    Puoi usare actionscript e utilizzare la funzione setInterval che permette di temporizzare le operazioni oppure se preferisci lavorare sulle timeline c'è un metodo artigianale ma efficace.

    In pratica crei una clip ("creator") dove dentro devi solo mettere qualche riga di codice. In pratica, nella timeline di creator devi mettere i seguenti scriptini:

    -al frame1 k=0;

    -al frame2 k++;

    -al frame n (decidi tu quanto lunga è la timeline) devi mettere il seguente:

    if (k<21) {
    _parent.ramo.duplicateMovieClip("ramo"+k, k, {_x:random(800), _y:random(600)});
    gotoAndPlay(2);
    } else {
    gotoAndStop(1);
    }

    FINE

    metti creator nella timeline che contiene ramo (timeline principale se non sbaglio)
    e il gioco è fatto.

    per variare il delay delle duplicazioni ti basta variare le lunghezza della timeline di creator, piu' è lunga la timeline piu' ci mette a duplicare.

    per variare il numero di duplicazioni ti basta modificare il numero 21 nel ciclo IF della clip creator.

    spero sia tutto chiaro

    bye
    I file so piezz 'e codice

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.