Argomenti variabili in Actionscript 3.0

mercoledì 11 giugno, 2008

Nel post Argomenti variabili e di default in Javascript, Actionscript e PHP avevo esposto l'uso delle tecniche di passaggio di parametri variabili e di default. Aggiungo, ora, che in Actionscript 3.0 è stata introdotta una nuova dichiarazione di parametro in grado di specificare un parametro array che accetta un qualunque numero di argomenti separati da virgola: ... (rest)

Actionscript:
  1. function sampleFunction(... mioarr):void {
  2.     for (var i:uint = 0; i < mioarr.length; i++) trace( mioarr[i] );
  3. }
  4.  
  5. sampleFunction(8, 16, 32);
  6.  
  7. // output:
  8. // 8
  9. // 16
  10. // 32

Questa tecnica non sostituisce l'uso dell'oggetto arguments, ma è utile nelle dichiarazioni di classi dove in mancanza di parametri Actionscript genera un errore. Inoltre, come indicato nel manuale:

Il parametro (rest) può avere qualsiasi nome che non corrisponda a una parola riservata e deve essere l'ultimo parametro specificato. L'uso di questo parametro rende indisponibile l'oggetto arguments. Anche se il parametro ... (rest) offre la stessa funzionalità dell'array arguments e della proprietà arguments.length, non fornisce invece una funzionalità simile a quella di arguments.callee. Prima di usare il parametro ... (rest), assicurarsi che non sia necessario utilizzare arguments.callee.

Inoltre è possibile utilizzare questa tecnica insieme alle dichiarazioni standard:

Actionscript:
  1. function sampleFunction(a:String, b:int, ... mioarr) {
  2.     for (var i:uint = 0; i < mioarr.length; i++) trace(args[i]);
  3. }
  4.  
  5. sampleFunction(4096, 16384, 128);
  6.  
  7. // output:
  8. // 16384
  9. // 128

Post correlati

Questo articolo ti è stato utile?: Per nientePocoAbbastanzaMoltoMoltissimo
Loading ... Loading ...

Non ci sono commenti per questo Post

Lascia un commento

TAG XHTML PERMESSI: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> INSERIMENTO CODICE:
<pre></pre>         // blocco generico
[code][/code]       // blocco generico
[as][/as]           // Actionscript
[css][/css]         // CSS Style Sheet
[html][/html]       // HTML
[js][/js]           // Javascript
[objc][/objc]       // Objective-C
[php][/php]         // PHP
[sql][/sql]         // SQL