Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    AS2 attachMovie funziona male

    ragazzi mi sapete dire cosa sbaglio.
    mi attacca il filmato ma non me lo posiziona dove voglio io.
    Codice PHP:
    for(var 0nodes.lengthi++){
    attachMovie("item","item"+i,100);
    this["item"+i]._x=100;
    this["item"+i]._y=143;
    this["item"+i].Nome.text=codice;
    this["item"+i].Via.text=prodotto;
    this["item"+i].Paese.text=prezzo;

    credo che sbaglio qualcosa nel richiamare l'oggetto in questo modo this["item"+i]
    perchè se faccio
    Codice PHP:
    trace(this["item"+i]); 
    mi stampa undefined

    sapete cosa sbaglio?
    premetto che ho concatenato item in libreria e il filmato viene attaccato sulla root principale
    grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Se esegui quel codice dentro ad un evento, fai attenzione perchè "this" si riferisce all'oggetto titolare dell'evento (ad esempio un XML.onLoad o LoadVars.onLoad ecc...).

  3. #3
    e come posso risolvere and80?
    Codice PHP:
    stop();
    trace(StringaDiRicerca);
    //leggi xml

    dati_xml = new XML();
    dati_xml.ignoreWhite true;
    dati_xml.path this;
    dati_xml.onLoad = function(success)
    {
    if(
    success){
    //result.text+="load data from prodotti.xml\n";
    var nodes this.firstChild.childNodes;
    for(var 
    0nodes.lengthi++){
    var 
    codice nodes[i].attributes.codice;
    var 
    prodotto nodes[i].attributes.prodotto;
    var 
    prezzo nodes[i].attributes.prezzo;

    if(
    codice.indexOf(_root.StringaDiRicerca)!=-|| prodotto.indexOf(_root.StringaDiRicerca)!=-1){
    trace("ci sono");
    trace(i);
    attachMovie("item","item"+i,100);
    trace(this["item"+i]);
    this["item"+i]._x=100;
    this["item"+i]._y=143;
    this["item"+i].Nome.text=codice;
    this["item"+i].Via.text=prodotto;
    this["item"+i].Paese.text=prezzo;
        
        
    //result.text+="codice:"+codice+"\nprodotto:"+prodotto+"\nprezzo:"+prezzo+"\n";
    }
    }
    }
    else {
    result.text+="no data found\n";
    }
    };
    dati_xml.load("prodotti.xml"); 
    in questo caso come mi devo rivolgere all'oggetto? in che modo?

  4. #4
    cosa devo sostituire al posto di this?

  5. #5
    prova a mettere root davanti al attachmovie

    _root.attachMovie("item","item"+i,100);
    trace(this["item"+i]);
    this["item"+i]._x=100;
    this["item"+i]._y=143;


    se nn va sostituisci anche il this con _root
    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Il codice è già predisposto per usare un path esterno all'interno della funzione con questa riga:

    dati_xml.path = this;

    Vuol dire che dentro alla funzione onLoad puoi usare this.path per risalire alla timeline in cui giace il codice (che può anche non essere _root, per intenderci).

    Codice PHP:
    this.path.attachMovie("item","item"+i,100);
    trace(this.path["item"+i]);
    this.path["item"+i]._x=100;
    this.path["item"+i]._y=143;
    this.path["item"+i].Nome.text=codice;
    this.path["item"+i].Via.text=prodotto;
    this.path["item"+i].Paese.text=prezzo

  7. #7
    and grazie per la risposta
    ho provato con _root solo che non funge e neanche con this
    Codice PHP:
    stop();
    trace(StringaDiRicerca);
    //leggi xml

    dati_xml = new XML();
    dati_xml.ignoreWhite true;
    dati_xml.path this;
    dati_xml.onLoad = function(success)
    {
    if(
    success){
    //result.text+="load data from prodotti.xml\n";
    var nodes this.firstChild.childNodes;
    for(var 
    0nodes.lengthi++){
    var 
    codice nodes[i].attributes.codice;
    var 
    prodotto nodes[i].attributes.prodotto;
    var 
    prezzo nodes[i].attributes.prezzo;

    if(
    codice.indexOf(_root.StringaDiRicerca)!=-|| prodotto.indexOf(_root.StringaDiRicerca)!=-1){
    trace("ci sono");
    _root.attachMovie("item","item"+i,10000000);
    trace(this["item"+i]);
    this["item"+i]._x=100;
    this["item"+i]._y=143;
    this["item"+i].Nome.text=codice;
    this["item"+i].Via.text=prodotto;
    this["item"+i].Paese.text=prezzo;
        
        
    //result.text+="codice:"+codice+"\nprodotto:"+prodotto+"\nprezzo:"+prezzo+"\n";
    }
    }
    }
    else {
    result.text+="no data found\n";
    }
    };
    dati_xml.load("prodotti.xml"); 
    mi stampa sempre undefined..
    non mi era mai capitata sta cosa è la prima volta
    :master:

  8. #8
    grazie and la tua soluzione funziona solo un ultima domanda

    questo è il mio codice modificato secondo le tue dritte e funziona tutto..
    Codice PHP:
    stop();
    trace(StringaDiRicerca);
    var 
    nome=[];
    //leggi xml

    dati_xml = new XML();
    dati_xml.ignoreWhite true;
    dati_xml.path this;
    dati_xml.onLoad = function(success)
    {
    if(
    success){
    //result.text+="load data from prodotti.xml\n";
    var nodes this.firstChild.childNodes;
    for(var 
    0nodes.lengthi++){
    var 
    codice nodes[i].attributes.codice;
    var 
    prodotto nodes[i].attributes.prodotto;
    var 
    prezzo nodes[i].attributes.prezzo;

    if(
    codice.indexOf(_root.StringaDiRicerca)!=-|| prodotto.indexOf(_root.StringaDiRicerca)!=-1){
    trace("ci sono");
    this.path.attachMovie("item","item"+i,100);
    trace(this.path["item"+i]);
    nome[i]=codice;
    trace(nome[i]);
    this.path["item"+i]._x=100;
    this.path["item"+i]._y=143;
    this.path["item"+i].Nome.text=codice;
    this.path["item"+i].Via.text=prodotto;
    this.path["item"+i].Paese.text=prezzo;
        
        
    //result.text+="codice:"+codice+"\nprodotto:"+prodotto+"\nprezzo:"+prezzo+"\n";
    }
    }
    }
    else {
    result.text+="no data found\n";
    }
    };
    dati_xml.load("prodotti.xml"); 
    come vedi ci sono alchuni trace e in particolare il
    Codice PHP:
    trace(this.path["item"+i]); 
    mi stampa questo in output

    codice:
    ci sono
    _level0.item0
    004
    ci sono
    _level0.item1
    005
    ci sono
    _level0.item2
    012DR
    ci sono
    _level0.item3
    45306/15TS
    ci sono
    _level0.item4
    45B90/15TSR
    perchè davanti al nome d'istanza c'è _level0.?

  9. #9
    dati_xml.path = this;
    ops nn avevo visto quella riga.....

    cmq posta anche l'xml che usi che appena ho un attimo faccio vedo
    ma nenache come dice and80 funge?

    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

  10. #10
    crescenzo grazie per la disponibilità sia tua che di and ti ho appena risposto.
    la soluzione di and funziona. leggi sopra cosa ho appena scritto.

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.