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

    Lista degli elementi sul livello e sullo stage

    Ciao a tutti,
    mi servirebbe un aiuto per listare in Actionscript 3 gli oggetti che ci sono sullo stage e su un particolare livello.

    Ho travato qualcosa del tipo:

    for (i in _root)
    {
    if (typeof(eval(i)) == "movieclip")
    {
    trace(eval(i)._name);
    }
    }

    ma non funziona con actionscript 3. Ho provato a modificare in questo modo

    for(i in this)
    {
    trace(i);
    }
    così non da errori ma non fa niente, non entra nel ciclo for.

  2. #2
    Ciao ho provato per sicurezza con actionscript 2 e questo codice funziona perfettamente.

    for (var prop in _root) {
    if(typeof(_root[prop]) == "movieclip"){
    _root[prop]._visible = false;
    trace(_root[prop]._name);
    }
    }

    Vorrei riuscire a tradurlo in actionscript3

    il debug di flash dice innanzitutto che _root non è più usato ed è stato sostituito da Stage.
    Ho provato quindi:

    for (var prop in Stage){
    trace("entra");
    }
    ma non entra nel ciclo. Ho provato, senza successo, a sostituire _root con: this, Stage, Stage.root.

    Grazie a tutti

  3. #3
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Devi affidarti ad un ciclo diverso, usare un while o un for e scorrere tutti i clip presenti secondo l'indice

    Codice PHP:
    for (var i:uint=0i<this.numChildreni++) {
        if (
    this.getChildAt(iis MovieClip) {
            
    trace(this.getChildAt(i));
        }

    Io l'ho tradotta in funzione "getChildren":

    Codice PHP:
    function getChildren (t:DisplayObjectContainerc:Class = null):Array {
        var 
    a:Array = [];
        for (var 
    i:uint=0i<t.numChildreni++) {
            if (
    c) {
                if (
    t.getChildAt(iis c) {
                    
    a.push(t.getChildAt(i));
                }
            } else {
                
    a.push(t.getChildAt(i));
            }
        }
        return 
    a;

    Il secondo parametro è opzionale e se viene omesso l'array risultante sarà composto da ogni elemento presente all'interno del contenitore di riferimento, altrimenti risulteranno presenti solo gli elementi visuali della classe specificata.

    Codice PHP:
    trace(getChildren(this)); // visualizzo tutti gli elementi su this
    trace(getChildren(this), MovieClip); // visualizzo solo gli elementi MovieClip su this
    trace(getChildren(this), SimpleButton); // visualizzo solo gli elementi SimpleButton su this 
    Per usare root devi trasformarlo in "MovieClip" perchè come proprietà risulta essere un "DisplayObject" e di conseguenza non potrebbe avere dei children

    Codice PHP:
    trace(getChildren(MovieClip(root))); 
    Stage restituirà solo un child, ossia la timeline principale

    Codice PHP:
    trace(getChildren(stage)); // restituisce: [object MainTimeline] 

  4. #4


    che dire.....
    Funziona tutto perfettamente..

    Complimenti per l'ottimo post!
    E Grazie, erano due giorni che cercavo documentazione.

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.