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

    Applicare azioni a vari MC con stesso nome istanza

    Sto realizzando una cartina illustrativa in cui sono presenti vari alberelli (MC) e al passare del mouse devono 'illuminarsi' o cmq evidenziarsi in qualche modo. Ho pensato di sfruttare i filtri di Flash8 applicando un effettino glow e ho scritto questo codice:

    =================
    on (rollOver){

    /*FILTRO1: GLOW*/
    var myGlow = new flash.filters.GlowFilter();
    myGlow.inner = false;
    myGlow.distance = 5;
    myGlow.color = 0x99CC00;
    myGlow.blurX = 20;
    myGlow.blurY = 20;
    myGlow.strength = 2;

    /*APPLICA I FILTRI*/
    var myFilters:Array = new Array();
    myFilters.push(myGlow);
    this.filters = myFilters;
    updateAfterEvent();

    }
    =================

    Il codice non funziona. Credo sia per via di quel THIS, che se lo modifico con _root.nomedelMC funziona. Il problema è che io ho numerosi alberelli e hanno tutti lo stesso nome di istanza (albero) e quindi dovrei sfruttare il this, perchè se uso il _root.albero mi si illumina solo un alberello, il primo che ho posizionato sullo stage e quindi non quello su cui passa il mouse.


    Temo che il problema sia molto meno innocente di quel che sembra.
    All'uomo non verrà mai tanto male quanto dall'uomo.

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    NON puoi dare lo stesso nome di istanza ad una serie di MC presenti sullo stage allo "stesso livello", è tassativo... non avresti la possibilità di controllarli, esattamente come accade a te

    ci sono altri modi di far andare la cosa senza utilizzare un unico nome di istanza, ad esempio puoi utilizzare nomi sequenziali per i clip di un "gruppo"... i tuoi alberi potrebbero chiamarsi tranquillamente "albero1", "albero2" così via... in questo modo potresti controllarli tranquillamente attraverso un ciclo ad esempio

    oppure potresti affidare i diversi nomi ad un array e sfruttare quest'ultimo per accedere alle varie istanze

    o ancora, se sono solo presenti solo quei clip in un determinato MC che li contenga, puoi usare la sintassi for...in per accedere ad ogni elemento di quel MC

  3. #3
    Uhm... vedo di arrangiarmi... ma ti andrebbe di spiegarmi l'ultima possibilità che mi hai citato?
    All'uomo non verrà mai tanto male quanto dall'uomo.

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    certo...

    come per altri linguaggi, c'è un ciclo specifico per gli array che ne scorre il contenuto in base ad un indice... in PHP ad esempio c'è foreach

    in flash il compito di scorrere gli array è dato alla struttura for...in

    ora, ogni elemento del filmato contiene degli elementi definiti, che siano variabili od oggetti come MovieClip, Button, TextField ecc... ed ecco che la nostra struttura di controllo può essere utilizzata per scorrere ogni elemento come se fosse un array, ed insieme adaltri comandi, può specificare su quali elementi agire e quali tralasciare... ad esempio se voglio rendere invisibili tutti i MovieClip di _root, farò così

    codice:
    for (var prop in _root) {
    	if(typeof(_root[prop]) == "movieclip"){
    		_root[prop]._visible = false;
    	}
    }
    typeof è la funzione con cui verifico l'appartenenza ad una determinata categoria... ti rimando alla guida in line di Flash (F1) per una lista dei possibili valori restituiti

  5. #5
    ...typeof che in as2 dovrebbe essere sostituito con instanceof e in as3 con is

  6. #6
    Grazie mille delle spiegazioni ^_^

    Cavolo ma quando aggiornano ad AS3? E' un dramma...
    All'uomo non verrà mai tanto male quanto dall'uomo.

  7. #7
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da KurwaPericolosa
    ...typeof che in as2 dovrebbe essere sostituito con instanceof
    scusa Kurwa, ma questa affermazione mi lascia un tantino perplesso, è la prima volta che sento che un comando è il sostituto dell'altro... per quanto ne so e mi pare logico, i due comandi restituendo un risultato diverso (uno è un Boolean e l'altro è una String) vengono utilizzati in contesti diversi, poi magari mi sbaglio ma non ho trovato alcun riscontro in proposito

  8. #8
    sì certo, scusa ma mi sono spiegato male..
    non è che instanceof sostituisce typeof, solo che typeof diventa obsoleto, oltre al fatto che typeof ritorna solo pochi tipi di dato, soprattutto per quanto riguarda istanze di classi per il quale sono tutti object...

  9. #9
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da KurwaPericolosa
    sì certo, scusa ma mi sono spiegato male..
    non è che instanceof sostituisce typeof, solo che typeof diventa obsoleto, oltre al fatto che typeof ritorna solo pochi tipi di dato, soprattutto per quanto riguarda istanze di classi per il quale sono tutti object...
    immaginavo che fosse questo il succo del discorso... in effetti instanceof ritornando solo un valore booleano può dare più possibilità di manipolazione quando siamo certi di quello che stiamo cercando, che non sia solo un "movieclip" o uno "string"...

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.