• User

    [ASP.NET] Session tra aspx e swf

    Vado dritto al sodo :
    Sito multilingua sviluppato in .net 2.0 contenete oggetti flash.
    Nella home ,nell'oggetto flash scelgo la lingua ,poi vado (tramite l'oggetto flash) ad un'altra pagina senza oggetti flash e devo nuovamente seleziuonare la lingua perchè la mia variabile session("alang") nessuno l'ha ancora impostata. Poi torno indietro ,il filmato flash si ricarica e nuovamente devo impostare la lingua. Come posso far si che entrambi possano leggere e scrivere la mia variabile session("alang") o qualunquealtracosa("alang") ???

    Spero d'aver scelto bene la zona del forum!


  • Moderatore

    Premesso che non sono esperto in Flash Action Script, non credo che variabili di Sessione definite all'interno di flash script siano visibili ("scope") all'esterno (in questo caso ASP.NET). Ma, potrei sbagliarmi, prova a dare uno sgaurdo a questo articolo che, forse, ti può essere utile.

    In ogni caso la selezione della lingua (e le strutture di navigabiltà del sito: menu, ecc...) la porterei fuori dal flash posto in Home Page anche e sopratutto per motivi SEO (che io sappia i crawlers dei motori di ricerca non seguono controlli utente scritti in Flash Action Script).

    :ciauz:


  • User Attivo

    Gestire la lingua con le session è un suicidio.
    Va gestita su base url


  • User

    forse non ho capito nulla ma ci provo... 😄

    se quando richiami il flash, nel tag object , metti

    
    <param name="movie" value="fileswf.swf?lingua=IT" />
    

    e recuperi la variabile lingua nella _root del filmato?
    Potrebbe andare bene?
    La querystring la crei dinamicamente in base alla scelta della lingua, da .NET

    c'ho provato non mi prendete in giro....:D


  • User

    Si grazie ,ho fato proprio così e funziona alla grande!!! unico neo è che se cambio lingua deve ricaricare pagina ed oggetto flash tornando ad inizio filmato ,quando se tutto era nel flash non c'era bisogno.


  • User

    ...............:D
    ogni tanto ci becco.....


  • User

    Si... Bravo!!! Ma vedi se becchi questo:

    Come faccio a spostare i files xml delle lingue in una sottocartella??? Sempre in flash intendo!
    sarà da dichiarare da qualche parte la loro posizione che di default prende nella cartella dove viene eseguito il filmato.
    Grazie


  • User

    non so come è fatto il codice .as
    cmq se leggi XML da qualche parte dichiarerai un oggetto XML
    ad es:

    mioxml = new XML();
    

    e da qualche altra parte leggerai il file xml in questo modo

    mioxml.load("filexml.xml")
    

    se nell'object passi 2 vaiabili :
    il nome del file
    la cartella
    ciccio.swf?lingua=ita&cartella=/lingua/

    fai:

    mioxml.load(_root.cartella + _root.lingua +".xml")
    

    Attenzione in QueryString non passare mai ".xml" altrimenti dovresti fare l'URLencode.


  • User

    Dunque ,cosa tu hai spiegato è chiarissimo ma il mio codice è un po' diverso...

    
    import mx.lang.Locale;//carica il file delle lingue
    Locale.setLoadCallback(testi);//richiama la funzione cambio lingue
     
    //Leggo parametri dell'indirizzo della pagina se ritorno da un'altra lingua
    if (_root.aspalang == "eng"){//la stringa è nell'html
     _global.Alang = "eng"
     cambia_lingua("en")//per aggiornanare subito tutti i font
    }else if (_root.aspalang == "rus"){
     _global.Alang = "rus"
     cambia_lingua("ru")//per aggiornanare subito tutti i font
    }else{
     _global.Alang = "ita"
     cambia_lingua("it")//per aggiornanare subito tutti i font
    }
    //Cambia il file lingue utilizzato nel filmato
    function cambia_lingua(Lingua:String):Void {
     Locale.loadLanguageXML(Lingua);
    }
    

    mi sai aiutare? Grazie


  • User

    azz una classe predefinita per le lingue....
    è di macromedia? vero?

    Non sapevo che esistesse (...questo periodo mi capita molto spesso si dire questa frase...)

    ho visto il reference

    
    **Locale.addXMLPath("it","path/ita.xml")**
    
    

    Tu mi vuoi far uscire pazzo...:D
    Già sto studiando .NET, così mi si riempe il cervello di classi!!!!!!

    Prova prova, poi fammi sapere, potrebbe essere utile anche a me!!!!:ciauz:


  • User

    Stai studiando .net ???? ma io e te potremmo diventare grandi amici!! anch'io sto studiando .net 2.0 e mi cimento con il flash. con il vb6 me la cavo ,lato serve faccio ancora confusione....
    Va be, appena riesco provo la tua procedura e ti faccio sapere ,se è di macromedia non lo so, ma mi sono domandato una cosa simile ,comunque funziona! 🙂


  • User

    No!
    inserisco la stringa da te menzionata ,sposto le cartelle con gli xml ,ma quando pubblico il filmato mi ricrea nella _root le 3 cartelle di nome "it" "en" "ru" che contengono rispettivamente "Home_en.xml" ecc.
    Lancio il filmato appena compilato dopo aver tolto le cartelle ma non trova i file xml.... 😢
    Ammetto di essere abbastanza ignorante in materia ma questa cosa proprio non la capisco... :():


  • User

    strano, dovrebbe funzionare...:bho:

    
    mx.lang.Locale.addXMLPath("it", "lingue/linguaita.xml");
    mx.lang.Locale.initialize();
    
    

    Metti un punto di interruzione e vai in debug... (ctrl+shift+invio)

    guardati anche questo
    http://flash.html.it/articoli/stampa/2173/applicazione-multilingua-in-flash/