Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di Linusss
    Registrato dal
    Sep 2002
    Messaggi
    405

    [AS 3.0]Aggiungere mc allo stage programmaticamente

    Ragazzi come faccio in AS 3.0 ad aggiungere da programma un movieclip sullo stage(o ad un altro movieclip)?

    In pratica vorrei avere un "contenitore" al quale attacco vari movieclip, così da poter spostare solo il contenitore per spostare tutti i movieclip contemporaneamente, come posso fare?
    Forum Additive monitora le discussioni più importanti!

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    attraverso il costrutto new puoi creare tutti i clip che vuoi, da qualsiasi parte tu preferisca, dopo di che gli devi assegnare una timeline di appartenenza per renderli visibili, ad esempio se fai:

    Codice PHP:
    var container:MovieClip = new MovieClip();
    addChild(container); 
    stai creando il tuo movieclip contenitore e lo stai rendendo visibile sulla timeline principale

    allo stesso modo dentro il container puoi attaccare altri movieclip creati dinamicamente o attaccati dalla libreria

    Codice PHP:
    for (var i:uint=0i<10i++) {
        var 
    mc:MovieClip = new MovieClip();
        
    container.addChild(mc);

    il posto in cui crei l'mc è indipendente da quello in cui lo attacchi, nel caso precedente abbiamo creato una serie di mc sulla root che poi abbiamo attaccato a container

    per approfondire: http://www.v2online.it/articoli/displaylist.html

  3. #3
    Utente di HTML.it L'avatar di Linusss
    Registrato dal
    Sep 2002
    Messaggi
    405
    Ti ringrazio, non ho capito come aggiungere un movieclip che si trova nella libreria.
    Cioè io ho già fatto il movieclip, ora da codice, come lo aggiungo ad un altro movieclip?

    edit:
    ho capito ora come si fa
    vediamo cosa riesco a combinare.
    Forum Additive monitora le discussioni più importanti!

  4. #4
    Utente di HTML.it L'avatar di ehijon
    Registrato dal
    Jan 2006
    Messaggi
    42
    ciao!

    mi sembra chiaro il concetto del addChild e addChildAt, ma se ho 2 movieClip uno dentro l'altro e già posizionati sullo stage e volessi applicare una proprietà a quello interno (clip2), come faccio?

    così non funziona, perchè?

    (clip1 e clip2 sono i nomi d'istanza)

    Codice PHP:
    stage.clip1.clip2.blendMode BlendMode.INVERT
    grazie grazie

  5. #5
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    poniamo di aver creato un movieclip e che ora si trovi solo in libreria
    nelle versioni precedenti del linguaggio impostavi il concatenamento da libreria con un nome e poi usavi attachMovie sull'oggetto in cui volevi attaccarlo

    Codice PHP:
    _root.attachMovie("nome_di_concatenamento""nome_su_stage"1);
    _root.nome_su_stage._x 100
    ora in AS3 inserisci ugualmente il nome di concatenamento ma lo usi come se fosse il nome di una classe e quindi attacchi copie di quel clip così

    Codice PHP:
    var nome_su_stage = new nome_di_concatenamento();
    nome_su_stage.100;
    root.addChild(nome_su_stage); 
    se guardi la differenza tra i due, a parità di nomi usati, capirai il meccanismo

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da ehijon
    ciao!

    mi sembra chiaro il concetto del addChild e addChildAt, ma se ho 2 movieClip uno dentro l'altro e già posizionati sullo stage e volessi applicare una proprietà a quello interno (clip2), come faccio?

    così non funziona, perchè?

    (clip1 e clip2 sono i nomi d'istanza)

    Codice PHP:
    stage.clip1.clip2.blendMode BlendMode.INVERT
    grazie grazie
    il tuo codice è corretto ma va scritto senza "stage"

    Codice PHP:
    clip1.clip2.blendMode BlendMode.INVERT

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    583
    Ciao,
    mi è chiaro il passaggio attchMovie --> addChild.
    Quello che invece non riesco a fare con addchild è referenziarmi ad uno particolare movieclip una volta che ne ho creati una serie.

    Mi spiego.
    Con attachMovie mi costruivo il nome_istanza dinamicamente e poi mi referenziavo ad esso per esempio con

    Codice PHP:
    _root["nome"+i]. 
    In AS3 con un ciclo del tipo

    Codice PHP:
    for (var i:uint=0i<10i++) { 
        var 
    mc:MovieClip = new MovieClip(); 
        
    container.addChild(mc); 

    come faccio?

    Grazie

  8. #8
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    c'è più di un modo per farlo, io preferisco registrare i clip multipli dentro ad un array
    ho descritto in questo articolo il procedimento, abbastanza semplice

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    583
    Bello!
    Ho capito grazie, molto interessante l'articolo.

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.