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

    ContextMenu personalizzato

    Ciao,
    ho cercato di cambiare il menu contestuale, eliminando l'eliminabile e creando una nuova voce per i crediti.

    Ho seguito questo tutorial:
    http://flash.html.it/articoli/stampa...nu-contestuale

    Purtroppo, però, non mi si visualizza la voce che ho inserito... indi, non posso nemmeno sapere se la funzione ad essa associata è corretta.

    Questo è il codice:

    ----------

    stop();


    Stage.showMenu=false;

    var MENUPERSONALIZZATO:ContextMenu=newContextMenu();

    MENUPERSONALIZZATO.customItems.push(newContextMenu Item("© Riccardo Anelli 2008", LINKPORTFOLIO));

    function LINKPORTFOLIO(clip) {
    getURL("http://www.riccardoanelli.it", "_blank");
    }


    this.menu=MENUPERSONALIZZATO;
    MENUPERSONALIZZATO.hideBuiltInItems();

    ----------

    Qualcuno sa gentilmente dirmi dove sbaglio?...
    Grazie mille!

  2. #2
    Intanto non devi usare l'azione

    Stage.showMenu = false

    Cito proprio dall'articolo che hai linkato


    Sono presenti anche le varie voci predefinite. Si potrebbe pensare che basti il già citato Stage.showMenu = false , ma in questo caso non è così, poichè utilizzando tale comando ci troveremmo nella stessa situazione di Figura 3, senza le voci personalizzate.

    Il comando showMenu agisce infatti anche sui menu creati con ContextMenu. Per nascondere le voci di default lasciando quelle personalizzate usiamo un metodo esposto dalla classe ContextMenu: hideBuiltInItems().


    Poi c'è un errore nel codice, non so se è solo uno sbaglio di riscrittura/incollatura sul forum, ma l'azione da usare è

    codice:
    new ContextMenu
    mentre tu l'hai scritto tutto attaccato; stesso discorso per new ContextMenuItem.

    Cambia il tuo codice così

    codice:
    var MENUPERSONALIZZATO:ContextMenu=new ContextMenu();
    
    MENUPERSONALIZZATO.customItems.push(new ContextMenuItem("© Riccardo Anelli 2008", LINKPORTFOLIO));
    
    function LINKPORTFOLIO(clip) {
    getURL("http://www.riccardoanelli.it", "_blank");
    }
    
    
    this.menu=MENUPERSONALIZZATO;
    MENUPERSONALIZZATO.hideBuiltInItems();
    E funzionerà correttamente

  3. #3
    Perfetto!
    Grazie mille!




    Ma - a questo punto - la domanda mi sorge spontanea: come mai il comando "Check syntax" non mi dava errore nella compilazione del codice?... soprattutto relativamente all'omissione degli spazi?

    Ovviamente, lo chiedo per capire ancor di più la logica di Flash e delle sue "assistenze" sul codice...

  4. #4
    Forse il player pensava si trattasse di una chiamata a qualche funzione o classe personalizzata , in effetti è strano che non ti venisse restituito un errore; da questo punto di vista Actionscript 3 è più "inflessibile", con Actionscript 2 ti conviene stare attento anche alla colorazione del codice: se hai inserito un comando che reputi giusto e questo non appare colorato come dovrebbe all'interno dell'editor, dai una seconda occhiata al codice e accertati che non ci siano errori di battitura

  5. #5
    Ok, grazie mille dei consigli!


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.