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

    as3 menù di navigazione

    Sono apepna passata ad as3 e ho una domanda.

    Ho una serie di pulsanti (5) tutti che caricano delle pagine html.

    Ora volevo evitarmi un codice così lungo:

    //menu principale

    //home
    home.addEventListener(MouseEvent.CLICK, clickHome);

    function clickHome(e:MouseEvent) {
    navigateToURL(new URLRequest("index.html"), "_self");
    }
    //ergon
    ergon.addEventListener(MouseEvent.CLICK, clickErgon);

    function clickErgon(e:MouseEvent) {
    navigateToURL(new URLRequest("ergon.html"), "_self");
    }
    //sistema
    sistema.addEventListener(MouseEvent.CLICK, clickSistema);

    function clickSistema(e:MouseEvent) {
    navigateToURL(new URLRequest("sistema.html"), "_self");
    }
    //soluzioni
    soluzioni.addEventListener(MouseEvent.CLICK, clickSoluzioni);

    function clickSoluzioni(e:MouseEvent) {
    navigateToURL(new URLRequest("soluzioni.html"), "_self");
    }

    //azienda
    azienda.addEventListener(MouseEvent.CLICK, clickAzienda);

    function clickAzienda(e:MouseEvent) {
    navigateToURL(new URLRequest("azienda.html"), "_self");
    }

    E' possibile riunire tutti i pulsanti in un array e richiamare un'unica funzione cambiando solo i link di destinazione?
    Rendere lo script meno lungo e articolato insomma?
    epidurale gratuita e garantita alle donne che la chiedono!
    Firmate la petizione!

    http://www.firmiamo.it/analgesiaepiduralegratuitaegarantita

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Ci sono diverse possibili soluzioni a seconda di come è impostato il tuo lavoro, la più semplice senza conoscere troppe cose è questa:
    Codice PHP:
    var bt_array:Array = [homeergonsistemasoluzioniazienda];
    var 
    links:Array = ["index""ergon""sistema""soluzioni""azienda"];
    bt_array.forEach(callback);
    function 
    callback (e:*, i:uinta:Array):void {
        
    e.name links[i];
        
    e.addEventListener(MouseEvent.CLICKclickHandler);
    }
    function 
    clickHandler (evt:MouseEvent):void {
        
    navigateToURL(new URLRequest(e.currentTarget.name+".html"), "_self");


  3. #3

    mi da problemi

    Se visualizzo l'swf mi si pare una finestra con scritto:
    1120: Accesso alla proprietà non definita e.

    " navigateToURL(new URLRequest(e.currentTarget.name+".html"), "_self"); "

    Mi puoi aiutare?
    epidurale gratuita e garantita alle donne che la chiedono!
    Firmate la petizione!

    http://www.firmiamo.it/analgesiaepiduralegratuitaegarantita

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Codice PHP:
    navigateToURL(new URLRequest(evt.currentTarget.name+".html"), "_self"); 

  5. #5

    grazie ma...

    and grazie. Scusami ma io di as ne capisco poco o nulla.

    Ho corretto e con evt ma ora il flash si blocca a metà e mi compare questa finestra d'errore:

    "Error: Error #2078: La proprietà name di un oggetto collocato sulla linea temporale non può essere modificata.
    at flash.display:isplayObject/set name()
    at home_fla::MainTimeline/callback()
    at Array$/_forEach()
    at Array/http://adobe.com/AS3/2006/builtin::forEach()
    at home_fla::MainTimeline/frame1()"

    Mi aiuti?
    epidurale gratuita e garantita alle donne che la chiedono!
    Firmate la petizione!

    http://www.firmiamo.it/analgesiaepiduralegratuitaegarantita

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    E' un problema, mi dici cosa sono quei pulsanti che usi? Sono istanze di MovieClip, di Button o di SimpleButton?
    Il fatto è che bisogna associargli una stringa che è poi il nome della pagina da aprire, altrimenti l'alternativa è di usare uno switch nella stessa funzione, ma è meno versatile e, se dovessi aggiungere dei pulsanti, dovresti ogni volta modificare la funzione.

    Codice PHP:
    home.addEventListener(MouseEvent.CLICKclickHandler);
    ergon.addEventListener(MouseEvent.CLICKclickHandler);
    sistema.addEventListener(MouseEvent.CLICKclickHandler);
    soluzioni.addEventListener(MouseEvent.CLICKclickHandler);
    azienda.addEventListener(MouseEvent.CLICKclickHandler);

    function 
    clickHandler (evt:MouseEvent):void {
        var 
    temp:String;
        switch (
    evt.currentTarget) {
            case 
    home:
                
    temp "index.html";
                break;
            case 
    ergon:
                
    temp "ergon.html";
                break;
            case 
    sistema:
                
    temp "sistema.html";
                break;
            case 
    soluzioni:
                
    temp "soluzioni.html";
                break;
            case 
    azienda:
                
    temp "azienda.html";
                break;
            default:
                
    temp "index.html";
        }
        
    navigateToURL(new URLRequest(temp), "_self");


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 © 2024 vBulletin Solutions, Inc. All rights reserved.