QUESTO E' COPIATO DALLA GUIDA DI DREAMWEAVER
Informazioni sui livelli trascinabili
Quando si applica l’azione Trascina livello ad un oggetto, Dreamweaver inserisce
la funzione MM_dragLayer() nella sezione head del documento. Oltre a contrassegnare
il livello come trascinabile, questa funzione definisce tre proprietà (MM_LEFTRIGHT,
MM_UPDOWN e MM_SNAPPED) che possono essere
utilizzate nelle funzioni JavaScript personalizzate per determinare la posizione
orizzontale relativa e la posizione verticale relativa del livello e per stabilire
se il livello ha raggiunto la destinazione di rilascio. Nota: le informazioni
fornite di seguito sono indirizzate esclusivamente ai programmatori JavaScript
esperti. Ad esempio, la funzione riportata di seguito visualizza il valore della
proprietà MM_UPDOWN (la posizione verticale corrente del livello)
in un campo di modulo chiamato curPosField. I campi di modulo sono utili per
la visualizzazione delle informazioni aggiornate di continuo perché sono dinamici,
ovvero è possibile modificarne il contenuto al termine del caricamento della
pagina sia in Navigator che in Internet Explorer.
function getPos(layername)
{ var layerRef = MM_findObj(layername);
var curVertPos = layerRef.MM_UPDOWN;
document.tracking.curPosField.value = curVertPos;
}
Invece di visualizzare il valore di MM_UPDOWN o MM_LEFTRIGHT
in un campo di modulo, è possibile creare una funzione che visualizzi un messaggio
variabile a seconda della distanza dall’area di rilascio o richiamare un’altra
funzione che mostri o nasconda un determinato livello a seconda del valore.
Le possibilità di utilizzo dei valori di MM_UPDOWN e MM_LEFTRIGHT dipendono
solo dall’immaginazione e dalla conoscenza di JavaScript.
La lettura della proprietà MM_SNAPPED è utile soprattutto quando
sulla pagina sono presenti più livelli e il visitatore può passare alla pagina
o all’attività successiva solo quando tutti i livelli hanno raggiunto la propria
destinazione. Ad esempio, è possibile creare una funzione che conti il numero
di livelli in cui la proprietà MM_SNAPPED è associata al valore
true e richiamare questa funzione ogni volta che si rilascia un livello. Quando
il conteggio raggiunge il numero desiderato, è possibile inviare il visitatore
alla pagina successiva o visualizzare un messaggio di congratulazioni. Se l’azione
Trascina livello è stata applicata ai collegamenti di più livelli utilizzando
l’evento onMouseOver, è necessario apportare una piccola modifica alla funzione
MM_dragLayer() per impedire che la proprietà MM_SNAPPED
di un livello calamitato venga reimpostata su false quando si passa il cursore
su questo livello. Questa situazione può verificarsi, ad esempio, se l’azione
Trascina livello è stata utilizzata per creare un puzzle.
Infatti, in questo caso è molto probabile che il visitatore passi sopra i pezzi
calamitati mentre posiziona i pezzi mancanti. La funzione MM_dragLayer() non
impedisce questo comportamento perché in alcuni casi può rivelarsi utile, ad
esempio se si vogliono impostare più destinazioni di rilascio per lo stesso
livello. Per impedire la reimpostazione dei livelli calamitati: Creare una copia
di backup del documento prima di apportare modifiche al codice.
Questa operazione può essere eseguita nel pannello Sito di Dreamweaver oppure
in Esplora risorse (Windows) o nel Finder (Macintosh). Scegliere Modifica >
Trova. Selezionare Origine HTML dal menu a comparsa Cerca. Digitare (!curDrag)
nel campo di testo adiacente. Fare clic su Successivo. Se viene visualizzata
una richiesta di conferma per continuare la ricerca dall’inizio del documento,
fare clic su Sì.
Viene trovata la seguente istruzione:
if (!curDrag) return false;
Chiudere la finestra di dialogo Cerca e modificare l’istruzione nel seguente
modo nella vista Codice della finestra del documento o nella finestra di ispezione
Codice:
if (!curDrag || curDrag.MM_SNAPPED != null) return false;
Le due barrette verticali (||) significano “o” e curDrag è una variabile che
rappresenta il livello che viene contrassegnato come trascinabile. Il significato
di questa istruzione è il seguente: "se curDrag non è un oggetto o ha già un
valore MM_SNAPPED, non eseguire il resto della funzione".