Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    428

    duplicare clip creato dinamicamente

    buon giorno,
    ho un clip che viene creato dinamicamente, e ho la neccessità di effettuarne una copia. Ora da quello che ho capito, il duplicate a dritto non può funzionare per i clip creati dinamicamente. Ed in effetti è così, perchè il clip viene creato, ma è praticamente vuoto. A questo punto, mi domando, come posso effettuare una duplicazione di un mc creato dinamicamente?

    codice:
    mcContainer.createEmptyMovieClip("movie1", 1);
    //mcContainer.attachMovie("movie","movie1",1);
    for (i=0;i<myArray.length; i++) {
      mcContainer.thumbnails1.attachMovie("a", "a"+i, i);
    }
    a è il nome di concatenamento di un mc.
    Avevo provato ad inserire anche movie come mc e nome di concatenamento nella libreria.

    Poi banalmente avevo fatto:
    codice:
    mcContainer.movie1.duplicateMovieClip("movie2", 2);
    //oppure
    //mcContainer.attachMovie("movie1","movie2", 2);
    ma niente.. addirittura nel secondo caso, nel tentativo di duplicare con attachMovie, si impallava il filmato!

    suggerimenti?

    grazie
    ciao
    gnegno

  2. #2
    Non ho capito bene quello che vuoi fare, o meglio il codice scritto mi sembra in contraddizione con quello che "penso" di aver capito.

    Vediamo di fare un po' d'ordine...

    mcContainer è il nome di un movieclip che crei dinamicamente a cui attribuisci il nome istanza movie1

    thumbnails1 allora che è???

    sembra un mc annidato dentro mcContainer, ma, allora, va creato anch'esso! altrimenti come fai ad "attaccargli" un filmato?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    428
    codice:
    this.CreateEmptyMovieClip("mcContainer",1);
    mcContainer.createEmptyMovieClip("movie1", 1);
    for (i=0;i<myArray.length; i++) {
      mcContainer.movie1.attachMovie("a", "a"+i, i);
    }
    questo è il codice giusto.. nel provare una parte del clip semplificata avevo dimenticato di rinominare quel pezzetto :P
    cmq ora dovrebbe essere corretto!

    Io creo un mc vuoto, e lo chiamo mcContainer.
    Dentro mcContainer creo un mc vuoto chiamato movie1.
    In movie1 ci attaccho per ogni elemento dell'array un mc presente nella libreria. In ogni mcContainer.movie1.ai cambio alcune proprietà e testi. E fino quà funziona tutto, infatti sullo stage, movie1 si visualizza correttamente contenente tutti gli ai correttamente. Il problema avviene alla duplicazione di movie1, che non copia niente. O meglio a quanto mi è parso crea il movie2, ma non duplica tutti gli ai all'interno. Dovrei eseguire un ciclo per tutti gli ai in movie1 e duplicarne uno ad uno e aggiungerlo a movie2?

    Spero di essere stato un pochino più chiaro

    ciao
    gnegno

  4. #4
    Io, molto più semplicemente, farei un ciclo in cui creare "movie1", "movie2" ecc ecc

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    428
    già.. lo stavo valutando dopo aver scritto della copia uno a uno.. effettivamente... ciclo per ciclo.. sfrutto direttamente quello iniziale e faccio una cosa del tipo:
    codice:
    this.CreateEmptyMovieClip("mcContainer",1);
    mcContainer.createEmptyMovieClip("movie1", 1);
    mcContainer.createEmptyMovieClip("movie2", 1);
    for (i=0;i<myArray.length; i++) {
      mcContainer.movie1.attachMovie("a", "a"+i, i);
      mcContainer.movie2.attachMovie("a", "a"+i, i);
    }
    ma se in un livello del mc ai, ad ogni ciclo, faccio un loadMovie di un immagine, mi viene un dubbio sulle prestazioni del tipo...flash ha una cache dei file caricati? Oppure quando vado a caricare l'immagine per l'ai in movie2 la ricarica da zero?

    ciao

  6. #6
    Originariamente inviato da Gnegno
    ...
    ...flash ha una cache dei file caricati? Oppure quando vado a caricare l'immagine per l'ai in movie2 la ricarica da zero?
    ciao
    Essendo degli "attchMovie" quelli che fai, questi sono già caricati!

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    428
    faccio l'attach di un mc che ha diversi livelli, ma l'immagine la carico nel ciclo, non è di base nel mc a.
    Prima il codice postato l'avevo un po tagliato e semplificato per esporre la base del problema.
    Ora è solo un dubbio di prestazioni generali del filmato.

    codice:
    for (i=0;i<myArray.length; i++) {
      mcContainer.movie1.attachMovie("a", "a"+i, i);
      mcContainer.movie1["a"+i].img.loadMovie(myArray[i]);
      //più altre operazioni su altri livelli e componenti di movie1["a"+i]
    }
    quindi diverrebbe
    codice:
    for (i=0;i<myArray.length; i++) {
      mcContainer.movie1.attachMovie("a", "a"+i, i);
      mcContainer.movie1["a"+i].img.loadMovie(myArray[i]);
      //più altre operazioni su altri livelli e componenti di movie1["a"+i]
      mcContainer.movie2.attachMovie("a", "a"+i, i);
      mcContainer.movie2["a"+i].img.loadMovie(myArray[i]);
    }
    quindi il dubbio era, flash ha una cache per i loadMovie?

    ciao

  8. #8
    La cache di Flash non è altro che la cache del browser.
    Se un elemento da caricare è già nella cache del browser (quindi sul disco dell'utente) non c'è nessuna attesa perché il caricamento è praticamente immediato.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    428
    ah ok. perfetto
    Scusa la domanda banale, ma non è molto che giochicchio con il flash

    grazie mille
    ciao
    gnegno

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