| Pacchetto | Primo livello |
| Classe | public dynamic class Function |
| Ereditarietà | Function Object |
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
I metodi di una classe sono leggermente diversi dagli oggetti Function. A differenza di un normale oggetto Function, un metodo è strettamente collegato al proprio oggetto classe associato. Pertanto, un metodo o una proprietà ha un definizione che è condivisa tra tutte le istanze della stessa classe. I metodi possono essere estratti da un'istanza e trattati come metodi "vincolati" (mantenendo il collegamento all'istanza originale). Per un metodo vincolato, la parola chiave this punta all'oggetto originale che ha implementato il metodo. Per una funzione, this punta all'oggetto associato al momento in cui viene richiamata la funzione.
Vedere anche
| Metodo | Definito da | ||
|---|---|---|---|
|
Specifica il valore di thisObject da utilizzare all'interno delle funzioni chiamate da ActionScript.
| Function | ||
|
Richiama la funzione rappresentata da un oggetto Function.
| Function | ||
![]() |
Indica se per un oggetto è definita una proprietà specifica.
| Object | |
![]() |
Indica se un'istanza della classe Object si trova nella catena di prototipi dell'oggetto specificato come parametro.
| Object | |
![]() |
Indica se la proprietà specificata esiste ed è enumerabile.
| Object | |
![]() |
Imposta la disponibilità di una proprietà dinamica per le operazioni cicliche.
| Object | |
![]() |
Restituisce la rappresentazione in formato stringa dell'oggetto specificato.
| Object | |
![]() |
Restituisce il valore di base dell'oggetto specificato.
| Object | |
| apply | () | metodo |
AS3 function apply(thisObject:Object, argArray:Array = null):void
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Specifica il valore di thisObject da utilizzare all'interno delle funzioni chiamate da ActionScript. Questo metodo specifica inoltre i parametri da passare a ogni funzione chiamata. Dal momento che apply() è un metodo della classe Function, è anche un metodo di ogni oggetto Function in ActionScript.
I parametri sono specificati sotto forma di oggetto Array, a differenza di Function.call() in cui sono specificati sotto forma di elenco delimitato da virgole. Ciò risulta spesso utile quando non si conosce il numero dei parametri da passare finché lo script non viene effettivamente eseguito.
Restituisce il valore che la funzione chiamata specifica come valore restituito.
Parametri
thisObject:Object — L'oggetto a cui viene applicata la funzione.
|
|
argArray:Array (default = null) — Un array i cui elementi vengono passati come parametri alla funzione.
|
Vedere anche
| call | () | metodo |
AS3 function call(thisObject:Object, parameter1:String = null):void
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Richiama la funzione rappresentata da un oggetto Function. Ogni funzione di ActionScript è rappresentata da un oggetto Function, pertanto tutte le funzioni supportano questo metodo.
Nella maggior parte dei casi, è possibile utilizzare l'operatore di chiamata della funzione (()) anziché questo metodo. L'operatore di chiamata della funzione crea un codice conciso e leggibile. Questo metodo risulta utile soprattutto quando il parametro thisObject della richiamata della funzione deve essere esplicitamente controllato. In genere, se una funzione viene richiamata come metodo di un oggetto all'interno del corpo della funzione, thisObject viene impostato su myObject, come illustrato di seguito:
myObject.myMethod(1, 2, 3);
In alcuni casi, può essere necessario impostare il parametro thisObject in modo che faccia riferimento a un'altra posizione; ad esempio, per richiamare una funzione come metodo di un oggetto quando la funzione non è effettivamente memorizzata in questo modo.
myObject.myMethod.call(myOtherObject, 1, 2, 3);
È possibile passare il valore null per il parametro thisObject per invocare una funzione come funzione regolare e non come metodo di un oggetto. Ad esempio, le seguenti invocazioni di funzione sono equivalenti:
Math.sin(Math.PI / 4) Math.sin.call(null, Math.PI / 4)
Restituisce il valore che la funzione chiamata specifica come valore restituito.
Parametri
thisObject:Object — Un oggetto che specifica il valore di thisObject all'interno del corpo della funzione.
|
|
parameter1:String (default = null) — Un parametro da passare alla funzione. È possibile specificare zero o più parametri.
|
Vedere anche
FunctionExample, SimpleCollection, EventBroadcaster e EventListener per mostrare i vari modi di utilizzare le funzioni in ActionScript. Questa operazione viene eseguita mediante la procedura seguente:
FunctionExample crea una variabile locale denominata simpleColl, che viene compilata con un array di numeri interi compresi tra 1 e 8. simpleColl viene stampato mediante trace().listener, viene aggiunto a simpleColl.insert() e remove(), il listener risponde ai loro eventi.greaterThanFourColl.greaterThanFourColl viene assegnato il risultato di simpleColl.select() con l'argomento 4 e una funzione anonima. Il metodo select dell'oggetto SimpleCollection è un iteratore interno che utilizza il parametro della funzione anonima come un blocco.
package {
import flash.display.Sprite;
public class FunctionExample extends Sprite {
public function FunctionExample() {
var simpleColl:SimpleCollection;
simpleColl = new SimpleCollection(0, 1, 2, 3, 4, 5, 6, 7, 8);
trace(simpleColl); // 0, 1, 2, 3, 4, 5, 6, 7, 8
var listener:EventListener = new EventListener();
simpleColl.addListener(listener);
simpleColl.insert(9); // itemInsertedHandler: 9
simpleColl.remove(8); // itemRemovedHandler: 8
trace(simpleColl); // 0, 1, 2, 3, 4, 5, 6, 7, 9
var greaterThanFourColl:SimpleCollection;
greaterThanFourColl = simpleColl.select(4, function(item:int, value:int){ return item > value });
trace(greaterThanFourColl); // 5, 6, 7, 9
}
}
}
import flash.display.Sprite;
class EventBroadcaster {
private var listeners:Array;
public function EventBroadcaster() {
listeners = new Array();
}
public function addListener(obj:Object):void {
removeListener(obj);
listeners.push(obj);
}
public function removeListener(obj:Object):void {
for(var i:uint = 0; i < listeners.length; i++) {
if(listeners[i] == obj) {
listeners.splice(i, 1);
}
}
}
public function broadcastEvent(evnt:String, ...args):void {
for(var i:uint = 0; i < listeners.length; i++) {
listeners[i][evnt].apply(listeners[i], args);
}
}
}
class SimpleCollection extends EventBroadcaster {
private var arr:Array;
public function SimpleCollection(... args) {
arr = (args.length == 1 && !isNaN(args[0])) ? new Array(args[0]) : args;
}
public function insert(obj:Object):void {
remove(obj);
arr.push(obj);
broadcastEvent("itemInsertedHandler", obj);
}
public function remove(obj:Object):void {
for(var i:uint = 0; i < arr.length; i++) {
if(arr[i] == obj) {
var obj:Object = arr.splice(i, 1)[0];
broadcastEvent("itemRemovedHandler", obj);
}
}
}
public function select(val:int, fn:Function):SimpleCollection {
var col:SimpleCollection = new SimpleCollection();
for(var i:uint = 0; i < arr.length; i++) {
if(fn.call(this, arr[i], val)) {
col.insert(arr[i]);
}
}
return col;
}
public function toString():String {
var str:String = new String();
for(var i:uint = 0; i < arr.length - 1; i++) {
str += arr[i] + ", ";
}
str += arr[arr.length - 1];
return str;
}
}
class EventListener {
public function EventListener() {
}
public function itemInsertedHandler(obj:Object):void {
trace("itemInsertedHandler: " + obj);
}
public function itemRemovedHandler(obj:Object):void {
trace("itemRemovedHandler: " + obj);
}
}
Inviami un messaggio e-mail quando vengono aggiunti dei commenti a questa | Rapporto sui commenti
Pagina corrente: http://livedocs.adobe.com/flash/9.0_it/ActionScriptLangRefV3/Function.html