Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    28

    rimuovere movieclip a runtime

    Salve, ho un problema con removeMovieClip(), ho il seguente codice:

    codice:
    _root.temp.duplicateMovieClip("barraPulsante", 15);
    _root.temp.removeMovieClip();
    nella prima riga duplico una clip, e nella seconda riga vorrei eliminare la clip originale, ma il codice non lo fa. non riesco a capire, dovrebbe essere così semplice...
    qualcuno saprebbe aiutarmi?
    vi ringrazio!

  2. #2
    Da quello che so, puoi rimuovere solo clip duplicati o creati con attachMovie().
    Per cui l'originale "non comprende" l'istruzione.

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    28
    grazie, è verosimile, perchè il codice è talmente semplice che non può essere sbagliato... non può che essere come dicevi tu!
    ma allora non c'è nessun modo per eliminare un clip filmato a runtime non creato con attachmovie?

  4. #4
    Escludendo i casi elencati prima, puoi eliminare un clip vuoto creato con createEmptyMovieClip() tramite removeMovieClip().

    In alternativa, puoi sempre caricare un swf esterno che contiene il clip e poi scaricarlo all'occorrenza.
    Oppure in modo più prosaico, puoi rendere invisibile il clip.

    Che io sappia, non esistono altre soluzioni.

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    28
    infatti ora lo nascondo, ma non vorrei che occupasse processore per niente...
    ok, provo a vedere se riesco con attachmovie...
    il problema è che devo riuscire a mettere questo dannato movieclip in un livello superiore a quelli che creo con createEmptyMovieclip, esempio:
    ho un clip sulla timeline, lo creo "a mano" diciamo, cioè proprio convertendo in filmato un rettangolo;
    poi via actionscript creo un mc vuoto attraverso createEmptyMovieClip sul livello 40;
    poi dentro a questo mc nel livello 40 disegno un rettangolo;
    vorrei che il mc creato "a mano" andasse sul livello 50 in modo da farlo vedere sopra a quello creato a runtime.
    è possibile?
    io ora, per fare ciò, duplico il mc creato a mano con duplicateMovieClip e gli do il livello 40, per questo poi vorrei cancellare l'originale...

  6. #6
    Una soluzione potrebbe essere quella di scambiare i livelli tra i due con swapDepths.
    Per esempio, creo un clip vuoto (chiamato clip) sul livello 40 e dentro ci disegno un triangolo.
    Volevo disegnare un rettangolo ma sono in modalità risparmio energetico
    Poi creo manualmente un rettangolone che chiamo manuale.
    Infine li scambio con swapDepths.

    codice:
    _root.createEmptyMovieClip("clip",40)
    clip.lineStyle(1,"0x000000",100);
    clip.beginFill("0x006699",100);
    clip.moveTo(220,200);
    clip.lineTo(310,200);
    clip.lineTo(220,265);
    clip.lineTo(220,200);
    clip.endFill();
    _root.clip.swapDepths(_root.manuale);
    In questo modo il rettangolo copre il triangolo.

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    28
    ah, ok, e c'è un modo per dirgli solo di andare in quel determinato livello e non di scambiarsi con un altro clip?
    grazie!

  8. #8
    Che io sappia no
    Da quello che so in as2 puoi stabilire un livello preciso solo con attachMovie, duplicateMovieClip e createEmptyMovieClip. Oppure caricando un swf.
    In as3 non saprei, a dire il vero lo sto studiando proprio in questi giorni.

    Volendo, puoi ricorrere anche agli script generati dai comportamenti per regolare ulteriormente l'ordine dei livelli.

    codice:
    // questo lo porta sullo sfondo
    mx.behaviors.DepthControl.sendToBack(nomeclip);
    // questo lo porta nel livello più alto
    mx.behaviors.DepthControl.bringToFront(nomeclip);
    // questo lo porta genericamente sopra
    mx.behaviors.DepthControl.bringForward(nomeclip);
    //questo lo porta genericamente sotto
    mx.behaviors.DepthControl.sendBackward(nomeclip);
    Magari gli altri ragazzi del forum mi possono correggere se ricordo male, e ci sono delle tecniche per stabilire in modo preciso la profondità (assegnandogli proprio un numero).
    Ma ripeto, credo che non si possa fare.

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    28
    vi ringrazio!

  10. #10
    Utente di HTML.it L'avatar di byaur
    Registrato dal
    Aug 2004
    Messaggi
    1,061
    Originariamente inviato da Darkseid
    Che io sappia no
    Da quello che so in as2 puoi stabilire un livello preciso solo con attachMovie, duplicateMovieClip e createEmptyMovieClip. Oppure caricando un swf.
    In as3 non saprei, a dire il vero lo sto studiando proprio in questi giorni.

    Volendo, puoi ricorrere anche agli script generati dai comportamenti per regolare ulteriormente l'ordine dei livelli.

    codice:
    // questo lo porta sullo sfondo
    mx.behaviors.DepthControl.sendToBack(nomeclip);
    // questo lo porta nel livello più alto
    mx.behaviors.DepthControl.bringToFront(nomeclip);
    // questo lo porta genericamente sopra
    mx.behaviors.DepthControl.bringForward(nomeclip);
    //questo lo porta genericamente sotto
    mx.behaviors.DepthControl.sendBackward(nomeclip);
    Magari gli altri ragazzi del forum mi possono correggere se ricordo male, e ci sono delle tecniche per stabilire in modo preciso la profondità (assegnandogli proprio un numero).
    Ma ripeto, credo che non si possa fare.
    ci sono svariati metodi per il depth di un mc...
    ad esempio swapDepths() oppure, dinamicamente alla creazione di un mc getNextHighestDepth(), chiamati da mc... cmq la guida è esaurientissima in questi casi...

    ciao ciao

    Chi di noi non vorrebbe
    sollevare il velo sotto cui sta nascosto il
    futuro...
    David Hilbert

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.