Hosting & Domini

Azienda | Mappa | Listino | FAQ
HOME DOMINI HOSTING SERVER SUPPORTO ORDINA

T-W > with

with


Sintassi

with (oggetto) {
istruzione/i;
}

Argomenti

oggetto Istanza di un oggetto ActionScript o di un clip filmato.

istruzione/i Un'azione o un gruppo di azioni racchiuso tra parentesi graffe.

Descrizione

Azione; modifica temporaneamente l'area di validità (o percorso target) usata per valutare espressioni e azioni nelle istruzioni.Dopo l'esecuzione dell'azione with, la catena dell'area di validità viene ripristinata allo stato originale.

L'elemento oggetto diventa il contesto in cui le proprietà, variabili e funzioni vengono lette. Ad esempio, se oggetto è myArray e due delle proprietà specificate sono length e concat, queste proprietà vengono automaticamente lette come myArray.length e myArray.concat. Come altro esempio, se oggetto è state.california, è come se qualsiasi azione o istruzione interna all'azione with fosse chiamata dall'interno dell'istanza california.

Per trovare il valore di un identificatore nelle istruzioni, ActionScript comincia all'inizio della catena dell'area di validità specificata da oggetto e ricerca l'identificatore a ogni livello della catena dell'area di validità seguendo un ordine specifico.

La catena dell'area di validità usata dall'azione with per risolvere gli identificatori inizia con la prima voce della lista e prosegue fino all'ultima, come segue:

Oggetto a cui fa riferimento l'azione with più interna
Oggetto a cui fa riferimento l'azione with più esterna
Oggetto di attivazione; un oggetto temporaneo automaticamente creato quando viene chiamata una funzione che contiene le variabili locali chiamate nella funzione
Clip filmato contenente lo script in esecuzione
Oggetto globale; oggetti predefiniti come Math o String

In Flash 5 l'azione with sostituisce l'azione tellTarget diventata obsoleta. Si consiglia di usare with invece di tellTarget perché si tratta di un'estensione di ActionScript conforme allo standard ECMA-262. La differenza principale tra le azioni with e tellTarget consiste nel fatto che with richiede come argomento il riferimento a un clip filmato o a un altro oggetto, mentre tellTarget richiede una stringa di percorso target che identifica il clip filmato e non può agire su oggetti.

Per impostare una variabile dentro un'azione with, la variabile deve essere stata dichiarata all'esterno dell'azione with oppure è necessario definire il percorso completo della linea temporale sulla quale risiede la variabile. Se si imposta una variabile in un'azione with senza dichiararla, l'azione with ricercherà il valore seguendo la catena dell'area di validità. Se la variabile non esiste ancora, il nuovo valore verrà impostato sulla linea temporale da cui l'azione with è stata chiamata.

Esempio

L'esempio seguente imposta le proprietà x e y dell'istanza someOtherMovieClip , quindi ordina a someOtherMovieClip di passare al fotogramma 3 e di bloccarsi in tale posizione:

with (someOtherMovieClip) {
  _x = 50;
  _y = 100;
  gotoAndStop(3);
}

Il frammento di codice seguente rappresenta un'alternativa a quello precedente, senza l'uso dell'azione with.

someOtherMovieClip._x = 50;
someOtherMovieClip._y = 100;
someOtherMovieClip.gotoAndStop(3);

Questo codice può inoltre essere scritto usando l'azione tellTarget .

tellTarget ("someOtherMovieClip") {
  _x = 50;
  _y = 100;
  gotoAndStop(3);
}

L'azione with è utile per accedere contemporaneamente a più elementi all'interno di una catena di area di validità. Nell'esempio seguente, l'oggetto incorporato Math è posto all'iniziodella catena di area di validità. L'impostazione di Math come oggetto predefinito risolve gli identificatori cos, sin e PI rispettivamente a Math.cos, Math.sin e Math.PI. Gli identificatori a, x, y e r non sono metodi o proprietà dell'oggetto Math, ma poiché esistono nell'area di validità dell'oggetto di attivazione per la funzione polar vengono risolti come le variabili locali corrispondenti.

function polar(r){
 var a, x, y
 with (Math) {
  a = PI * r * r
  x = r * cos(PI) 
  y = r * sin(PI/2)
}
trace("area = " +a)
trace("x = " + x)
trace("y = " + y)
}

È possibile usare azioni with annidate per accedere a informazioni in più aree di validità. Nell'esempio seguente, l'istanza fresno e l'istanza salinas sono istanze secondarie dell'istanza california. L'istruzione imposta i valori _alpha di fresno e salinas senza modificare il valore _alpha di california.

with (california){
	with (fresno){
		_alpha = 20;
	}
	with (salinas){
		_alpha = 40;
	}
}

Vedere anche

tellTarget


Home | Mappa del sito | Condizioni di utilizzo | Privacy
 
Copyright © Hostek Srl. P.Iva 05434210489