Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    461

    agire su campo di testo dinamico

    Ciao a tutti!

    Sto impazzendo...il mio obbiettivo è di riuscire a "modificare" un paramentro di un campo di testo dinamico tramite un clip filmato....

    allora io ho un elenco di titoli che si crea tramite richiamo di un XML,

    una volta che clicco ciascuno di questi titoli devo poter modificare l'alfa di un campo di testo sempre dinamico che fa parte di un altro clip filmato.


    allora ho provato:

    item.onRelease = function() {
    _root.zoom.maps.nomemap_txt._alpha= 100;
    };

    ma non funziona....

    ho controllato mille volte se il percorso fosse sbagliato ma è corretto.

    praticamente esco da questo clip entro nel clip zoom da li entro nel clip maps
    (che viene creato tramite actionscript attraverso:
    var maps:MovieClip = mappa_mc.duplicateMovieClip("maps"+i+"_mc", i);
    )

    e al suo interno trovo il campo di testo dinamico con istanza: nomemap_txt

    quindi fin qui tutto ok...

    il problema è che probabilmente quando si tratta di agire su un campo di testo dinamico soggetto ad un ciclo che stampa una serie di dati da XML non funziona....

    spero che qualcuno sappia aiutarmi perche sono bloccato e ho l'urgenza di finire questo progetto!!!

    grazie mille...!

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Perdonami ma quel "maps" ha valenza dentro al ciclo in cui lo richiami e assume dei valori in base all'indice del ciclo.
    Se proprio il resto del percorso fosse esatto, dovresti avere qualcosa tipo

    _root.zoom.maps1_mc.nomemap_txt

    Comunque è facile da controllare, basta fare un trace del percorso dentro all'onRelease

    codice:
    item.onRelease = function() {
    trace(_root.zoom);
    trace(_root.zoom.maps);
    trace(_root.zoom.maps.nomemap_txt);
    _root.zoom.maps.nomemap_txt._alpha= 100;
    };
    Se uno di quei trace dovesse dare "undefined", sai dove cercare l'errore.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    461
    ho provato e come dici mi da undefined al livello di maps...

    ho verificiato e il clip filmato (che a istanza mappa_mc) nel frame delle azioni lo duplico:

    var maps:MovieClip = mappa_mc.duplicateMovieClip("maps"+i+"_mc", i);

    quindi dovrebbe essere giusto...

    non capisco dove sbaglio

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Se ti da undefined è chiaro che quel clip, con quel nome, in quel punto, non lo vede. Come ti dicevo, il fatto che duplichi dentro ad un ciclo (che immagino si trovi dentro ad un frame di "zoom" prevede che la variabile "maps" che crei esista solo all'interno del ciclo stesso.
    Se il codice non è molto lungo potresti provare a postarlo (inserito dentro agli appositi tag [ code ] o [ php ]).

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    461
    questo è il codice AS all'interno del clip ZOOM dove mi vengono stampati tutti i nomi presi da XML nel clip filmato mappa_mc


    Codice PHP:
    var caricaXML:XML = new XML();
    caricaXML.ignoreWhite true;
    caricaXML.onLoad leggiXML;
     
    caricaXML.load("AZIENDA.xml");
    function 
    leggiXML(succes:Boolean) {
    if (
    succes == true) {
    var 
    nomemappa:Array = [];
    var 
    colore:Array = [];
    var 
    tempArray:Array = new Array();
    var 
    tempArray this.firstChild.childNodes;
    for (var 
    i:Number 0i<tempArray.lengthi++) {
    tempArray[i].childNodes[0].firstChild;
    nomemappa[i] = tempArray[i].childNodes[2].firstChild;
    colore[i] = tempArray[i].childNodes[4].firstChild;
    var 
    maps:MovieClip mappa_mc.duplicateMovieClip("maps"+i+"_mc"i);
    maps.nomemappa nomemappa[i];
    maps.colore colore[i];
    color=colore[i];
    maps.nomemap_txt.text ="* " nomemappa[i];
    maps.quad_txt.text ="*";
    maps.nomesmal_txt.text ="* " nomemappa[i];         
    formato = new TextFormat()             
    formato.size 6             
    formato_due 
    = new TextFormat()             
    formato_due.size 18             
    formato_due
    .color "0x" color             
    formato_tre 
    = new TextFormat()             
    formato_tre.size 2.5
    maps
    .nomemap_txt.setTextFormat(formato);
    maps.quad_txt.setTextFormat(formato_due);
    maps.nomesmal_txt.setTextFormat(formato_tre);
    maps.nomemap_txt._alpha0;
    maps.quad_txt._alpha100;
    maps.nomesmal_txt._alpha0;
    }
    } else {
    trace("file non trovato!");



    mentre questo è nel clip contenuto e mi stampa l'elenco dei titoli che, cliccandoli, mi devono effettuare il cambiamento ai campi del clip maps:

    Codice PHP:
    var caricaXML:XML = new XML();
    caricaXML.ignoreWhite true;
    caricaXML.onLoad leggiXML;
    caricaXML.load("AZIENDA.xml");
    function 
    leggiXML(succes:Boolean) {
    if (
    succes == true) {
    var 
    titolo:Array = [];
    var 
    tempArray:Array = new Array();
    var 
    tempArray this.firstChild.childNodes;
    for (var 
    i:Number 0i<tempArray.lengthi++) {
    titolo[i] = tempArray[i].childNodes[1].firstChild;
    var 
    item:MovieClip news.duplicateMovieClip("elemento"+i+"_mc"i);
    item.news_txt.htmlText titolo[i];
    item.onRelease = function() {
    _root.zoom.maps.nomemap_txt._alpha100;
    _root.zoom.maps.quad_txt._alpha0;
    };
    }
    } else {
    trace("file non trovato!");
    }


  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Non te lo do per certo, ma cambiando il secondo codice così dovrebbe funzionare:

    Codice PHP:
    var caricaXML:XML = new XML();
    caricaXML.ignoreWhite true;
    caricaXML.onLoad leggiXML;
    caricaXML.load("AZIENDA.xml");
    function 
    leggiXML(succes:Boolean) {
        if (
    succes == true) {
            var 
    titolo:Array = [];
            var 
    tempArray:Array = new Array();
            var 
    tempArray this.firstChild.childNodes;
            for (var 
    i:Number 0i<tempArray.lengthi++) {
                
    titolo[i] = tempArray[i].childNodes[1].firstChild;
                var 
    item:MovieClip news.duplicateMovieClip("elemento"+i+"_mc"i);
                
    item.index i
                
    item.news_txt.htmlText titolo[i];
                
    item.onRelease = function() {
                    var 
    maps _root.zoom["maps"+this.index+"_mc"];
                    
    maps.nomemap_txt._alpha 100;
                    
    maps.quad_txt._alpha 0;
                };
            }
        } else {
            
    trace("file non trovato!");
        }


  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    461
    perfetto funziona!!

    pero come da codice mi modifica solo il testo che ha come "i" la stessa che clicco...

    se volessi che Tutti i campi si modificassero basta che metto dentro ad un ciclo?

    Codice PHP:
    for (var i:Number 0i<tempArray.lengthi++) 
    {                 
    var 
    maps _root.zoom["maps"+i+"_mc"];                 
    trace(maps);                 
    maps.nomemap_txt._alpha100;             
    maps.quad_txt._alpha0;         


  8. #8
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Beh sì, mi pareva di aver capito che ad ogni elemento doveva corrispondere il codice di un solo pulsante.
    Comunque hai capito bene, se vuoi modificare l'alpha di tutti i testi devi utilizzare proprio un ciclo come quello che hai postato, all'interno del pulsante.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    461
    ok infatti ho provato e ora funziona!

    grazie mille di tutto!!!!!

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.