Visualizza PDF della guida
Transcript
Visualizza PDF della guida
ADOBE FLASH LITE 2.x e 3.x ® ® ™ Guida di riferimento di Adobe ActionScript ® ® Ultimo aggiornamento 4/5/2010 © 2010 Adobe Systems Incorporated. All rights reserved. Copyright Guida di riferimento di ActionScript® per Adobe® Flash® Lite® 2.x e 3.x This Language Reference is licensed for use under the terms of the Creative Commons Attribution Non-Commercial 3.0 License. This License allows users to copy, distribute, and transmit the user guide for noncommercial purposes only so long as (1) proper attribution to Adobe is given as the owner of the guide; and (2) any reuse or distribution of the guide contains a notice that use of the user guide is governed by these terms. The best way to provide notice is to include the following link. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ Adobe, the Adobe logo, ActionScript, Flash, and Flash Lite are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States and/or other countries. Windows, Windows NT, and Windows Vista are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. Linux is the registered trademark of Linus Torvalds in the U.S. and other countries. All other trademarks are the property of their respective owners. Adobe Systems Incorporated, 345 Park Avenue, San Jose, California 95110, USA. iii Ultimo aggiornamento 4/5/2010 Sommario Capitolo 1: Elementi del linguaggio ActionScript Direttive per il compilatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Costanti ............................................................................................................... 4 Funzioni globali ....................................................................................................... 8 Proprietà globali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Operatori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 istruzioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 Comandi fscommand2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 Capitolo 2: Classi ActionScript arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 BitmapData (flash.display.BitmapData) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 Boolean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 Pulsante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 capabilities (System.capabilities) Color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 ColorTransform (flash.geom.ColorTransform) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 Date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 ExtendedKey Function Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 LoadVars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 LocalConnection Math . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356 Matrix (flash.geom.Matrix) Mouse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390 MovieClip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396 MovieClipLoader NetConnection NetStream Number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499 Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504 Point (flash.geom.Point) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520 Rectangle (flash.geom.Rectangle) Security (System.security) Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554 SharedObject Sound . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572 stage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592 String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X iv Sommario System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 610 TextField . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613 TextFormat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 653 Transform (flash.geom.Transform) Video XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 666 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679 XMLNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 697 XMLSocket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714 Capitolo 3: Codice ActionScript obsoleto Riepilogo delle funzioni obsolete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 722 Riepilogo delle proprietà obsolete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723 Riepilogo degli operatori obsoleti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 724 Capitolo 4: Codice ActionScript non supportato Classi non supportate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725 Metodi non supportati Proprietà non supportate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725 Funzioni globali non supportate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725 Gestori di eventi non supportati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 726 Azioni fscommand non supportate Indice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 726 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 727 Ultimo aggiornamento 4/5/2010 Capitolo 1: Elementi del linguaggio ActionScript Questa sezione fornisce informazioni sulla sintassi e sull'utilizzo; esempi di codice per le funzioni e le proprietà globali (ossia per gli elementi che non appartengono a una classe ActionScript); direttive per il compilatore; e informazioni sulle costanti, gli operatori, le istruzioni e le parole chiave usate in ActionScript e definite nella bozza della specifica del linguaggio ECMAScript (ECMA-262) Edizione 4. Direttive per il compilatore Questa sezione contiene le direttive da includere nel file ActionScript per fare in modo che il compilatore pre-elabori determinate istruzioni. Riepilogo delle direttive per il compilatore Direttiva Descrizione #endinitclip Direttiva del compilatore; indica la fine di un blocco di azioni di inizializzazione. #include Direttiva del compilatore: include il contenuto del file specificato, come se i comandi del file facessero parte dello script chiamante. #initclip Direttiva del compilatore; indica l'inizio di un blocco di azioni di inizializzazione. Direttiva #endinitclip #endinitclip Direttiva del compilatore; indica la fine di un blocco di azioni di inizializzazione. Disponibilità Flash Lite™ 2.0 Esempio #initclip ...initialization actions go here... #endinitclip Direttiva #include #include "[path]filename.as" Nota: non inserire un punto e virgola (;) alla fine della riga che contiene la direttiva #include. Direttiva del compilatore: include il contenuto del file specificato, come se i comandi del file facessero parte dello script chiamante. La direttiva #include viene chiamata al momento della compilazione. Pertanto, in caso di modifiche a un file esterno, è necessario salvare il file e ricompilare gli eventuali file FLA che lo utilizzano. 1 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 2 Elementi del linguaggio ActionScript Se si utilizza il pulsante Controlla sintassi per uno script che contiene istruzioni #include, viene verificata anche la sintassi dei file inclusi. La direttiva #include può essere utilizzata nei file FLA e nei file di script esterni, ma non nei file di classe ActionScript 2.0. È possibile non specificare il percorso, indicare un percorso relativo o il percorso assoluto del file da includere. Se non si specifica il percorso, il file AS deve trovarsi in una delle seguenti posizioni: • La directory del file FLA. La stessa directory dello script che contiene l'istruzione #include. • La directory Include globale, ovvero una delle seguenti: Windows® 2000 o Windows XP: C:\Documents and Settings\utente \Impostazioni locali\ Dati applicazione\Adobe\Flash 10\lingua\Configuration\Include Windows Vista®: C:\Utenti\utente \Impostazioni locali\ Dati applicazioni\Adobe\Flash 8\lingua\Configuration\Include Macintosh® OS X: Disco rigido/Users/Library/Supporto applicazioni/Adobe/Flash 10/lingua/Configuration/Include • La directory programma Flash \lingua\First Run\Include; un file salvato in questa posizione viene copiato nella directory globale Include al successivo avvio di Flash®. Per specificare un percorso relativo al file AS, utilizzare un solo punto (.) per indicare la directory corrente, due punti (..) per indicare una directory principale o il carattere barra (/) per indicare le sottodirectory. Consultare la seguente sezione di esempio. Per specificare un percorso assoluto per il file AS, utilizzare il formato supportato dalla piattaforma in uso (Macintosh o Windows). Consultare la seguente sezione di esempio. (Questo uso non è consigliato in quanto richiede che la struttura della directory sia uguale su tutti i computer utilizzati per compilare lo script). Nota: se si posizionano dei file nella directory First Run/Include o nella directory Include globale, eseguire il backup dei file. Nel caso in cui si rendesse necessario disinstallare e reinstallare Flash, è possibile che queste directory vengano eliminate o sovrascritte. Disponibilità Flash Lite 2.0 Parametri [percorso]nomefile.as - nomefile.asIl nome file e il percorso opzionale dello script da aggiungere al pannello Azioni o allo script corrente; .as è l'estensione file consigliata. Esempio Gli esempi seguenti mostrano i diversi modi di specificare un percorso che includa un file nello script: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 3 Elementi del linguaggio ActionScript // Note that #include statements do not end with a semicolon (;) // AS file is in same directory as FLA file or script // or is in the global Include directory or the First Run/Include directory #include "init_script.as" // AS file is in a subdirectory of one of the above directories // The subdirectory is named "FLA_includes" #include "FLA_includes/init_script.as" // AS file is in a subdirectory of the script file directory // The subdirectory is named "SCRIPT_includes" #include "SCRIPT_includes/init_script.as" // AS file is in a directory at the same level as one of the above directories // AS file is in a directory at the same level as the directory // that contains the script file // The directory is named "ALL_includes" #include "../ALL_includes/init_script.as" // AS file is specified by an absolute path in Windows // Note use of forward slashes, not backslashes #include "C:/Flash_scripts/init_script.as" // AS file is specified by an absolute path on Macintosh #include "Mac HD:Flash_scripts:init_script.as" Direttiva #initclip #initclip order Nota: non inserire un punto e virgola (;) alla fine della riga che contiene l'istruzione #initclip. Direttiva del compilatore; indica l'inizio di un blocco di azioni di inizializzazione. Quando vengono inizializzati più clip contemporaneamente, è possibile utilizzare il parametro order per indicare l'inizializzazione che deve avvenire per prima. Le azioni di inizializzazione vengono eseguite al momento della definizione di un simbolo di clip filmato. Se il clip filmato è un simbolo esportato, le azioni di inizializzazione vengono eseguite prima delle azioni presenti sul fotogramma 1 del file SWF. In caso contrario, vengono eseguite immediatamente prima delle azioni del fotogramma contenente la prima istanza del simbolo di clip filmato associato. Le azioni di inizializzazione vengono eseguite solo una volta, nel momento in cui il file SWF viene riprodotto; utilizzarle per le inizializzazioni singole, quali la definizione della classe e la registrazione. Disponibilità Flash Lite 2.0 Parametri order - Un numero intero non negativo che specifica l'ordine di esecuzione dei blocchi del codice #initclip. Questo parametro è opzionale. Il valore deve essere specificato mediante un valore letterale intero (possono essere usati solo i valori decimali, non quelli esadecimali), non una variabile. Se si includono più blocchi #initclip in un simbolo di clip filmato singolo, il compilatore usa l'ultimo valore order specificato nel simbolo di clip filmato per tutti i blocchi #initclip del simbolo. Esempio Nell'esempio seguente, il codice ActionScript viene posizionato nel fotogramma 1 all'interno di un'istanza di clip filmato. Un file di testo denominato variables.txt viene collocato nella stessa directory. GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 4 Ultimo aggiornamento 4/5/2010 Elementi del linguaggio ActionScript #initclip trace("initializing app"); var variables:LoadVars = new LoadVars(); variables.load("variables.txt"); variables.onLoad = function(success:Boolean) { trace("variables loaded:"+success); if (success) { for (i in variables) { trace("variables."+i+" = "+variables[i]); } } }; #endinitclip Costanti Una costante è una variabile utilizzata per rappresentare una proprietà il cui valore non cambia mai. In questa sezione vengono descritte le costanti globali disponibili per tutti gli script. Riepilogo delle costanti Modificatori Costante Descrizione false Valore booleano univoco che rappresenta l'opposto di true. Infinity Indica il valore IEEE-754 che rappresenta l'infinito positivo. -Infinity Indica il valore IEEE-754 che rappresenta l'infinito negativo. NaN Variabile predefinita con il valore IEEE-754 per NaN (not a number). newline Inserisce un carattere di ritorno a capo (\r) che crea una riga vuota nel testo generato dal codice. null Valore che può essere assegnato a delle variabili o restituito da una funzione quando non vengono forniti dati. true Valore booleano univoco che rappresenta l'opposto di false. undefined Un valore speciale, solitamente utilizzato per indicare che a una variabile non è ancora stato assegnato un valore. Costante false Valore booleano univoco che rappresenta l'opposto di true. Quando la tipizzazione automatica dei dati converte false in un numero, questo diventa 0; quando converte false in una stringa, questa diventa "false". Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 5 Elementi del linguaggio ActionScript Disponibilità Flash Lite 1.1 Esempio Questo esempio mostra il modo in cui la tipizzazione automatica dei dati converte il valore false in un numero o in una stringa: var bool1:Boolean = Boolean(false); // converts it to the number 0 trace(1 + bool1); // outputs 1 // converts it to a string trace("String: " + bool1); // outputs String: false Costante Infinity Indica il valore IEEE-754 che rappresenta l'infinito positivo. Il valore di questa costante è uguale a Number.POSITIVE_INFINITY. Disponibilità Flash Lite 2.0 Vedere anche POSITIVE_INFINITY (proprietà Number.POSITIVE_INFINITY) Costante -Infinity Indica il valore IEEE-754 che rappresenta l'infinito negativo. Il valore di questa costante è uguale a Number.NEGATIVE_INFINITY. Disponibilità Flash Lite 2.0 Vedere anche NEGATIVE_INFINITY (proprietà Number.NEGATIVE_INFINITY) Costante NaN Variabile predefinita con il valore IEEE-754 per NaN (not a number). Per determinare se un numero è NaN, usare isNaN(). Disponibilità Flash Lite 1.1 Vedere anche Funzione isNaN, NaN (proprietà Number.NaN) Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 6 Elementi del linguaggio ActionScript Costante newline Inserisce un carattere di ritorno a capo (\r) che crea una riga vuota nel testo generato dal codice. Utilizzare newline per creare spazio per le informazioni recuperate da una funzione o istruzione del codice. Disponibilità Flash Lite 1.1 Esempio L'esempio seguente mostra il modo in cui la costante newline visualizza l'output dell'istruzione trace() su più righe. var myName:String = "Lisa", myAge:Number = 30; trace(myName+myAge); trace("-----"); trace(myName+newline+myAge); // output: Lisa30 ----Lisa 30 Vedere anche Funzione trace Costante null Valore che può essere assegnato a delle variabili o restituito da una funzione quando non vengono forniti dati. Utilizzare null per rappresentare valori mancanti o che non presentano un tipo di dati definito. Disponibilità Flash Lite 1.1 Esempio In un contesto di tipo numerico, null restituisce 0. Con null è possibile eseguire i test di uguaglianza. In questa istruzione, un nodo di una struttura ad albero binaria non ha elementi secondari, pertanto è possibile impostare su null il campo per il relativo elemento secondario sinistro. if (tree.left == null) { tree.left = new TreeNode(); } Costante true Valore booleano univoco che rappresenta l'opposto di false. Quando la tipizzazione automatica dei dati converte true in un numero, questo diventa 1; quando converte true in una stringa, questa diventa "true". Disponibilità Flash Lite 1.1 Esempio L'esempio seguente mostra l'uso di true in un'istruzione if: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 7 Elementi del linguaggio ActionScript var shouldExecute:Boolean; // ... // code that sets shouldExecute to either true or false goes here // shouldExecute is set to true for this example: shouldExecute = true; if (shouldExecute == true) { trace("your statements here"); } // // // // true is also implied, so the if statement could also be written: if (shouldExecute) { trace("your statements here"); } L'esempio seguente mostra il modo in cui la tipizzazione automatica dei dati converte true nel numero 1: var myNum:Number; myNum = 1 + true; trace(myNum); // output: 2 Vedere anche Costante false, Boolean Costante undefined Un valore speciale, solitamente utilizzato per indicare che a una variabile non è ancora stato assegnato un valore. Un riferimento a un valore non definito restituisce il valore speciale undefined. Il codice ActionScript typeof(undefined) restituisce la stringa "undefined". L'unico valore di tipo undefined è undefined. Nei file pubblicati per Flash Player 6 o versione precedente, il valore di String(undefined) è "" (una stringa vuota). Nei file pubblicati per Flash Player 7 o versione successiva, il valore di String(undefined) è "undefined" (il valore undefined viene convertito in stringa). Nei file pubblicati per Flash Player 6 o versione precedente, il valore di Number(undefined) è 0. Nei file pubblicati per Flash Player 7 o versione successiva, il valore di Number(undefined) è NaN. Il valore undefined è simile al valore speciale null. Quando null e undefined vengono confrontati mediante l'operatore di uguaglianza (==), risultano uguali. Tuttavia, quando null e undefined vengono confrontati mediante l'operatore di uguaglianza rigorosa (===), non risultano uguali. Disponibilità Flash Lite 1.1 Esempio Nell'esempio seguente, la variabile x non è stata dichiarata e pertanto il relativo valore è undefined. Nella prima sezione del codice, l'operatore di uguaglianza (==) confronta il valore di x con il valore undefined quindi il risultato appropriato viene inviato al pannello Output. Nella prima sezione del codice, l'operatore di uguaglianza (==) confronta il valore di x con il valore undefined quindi il risultato appropriato viene inviato al file di registro. Nella seconda sezione del codice, l'operatore di uguaglianza (==) confronta i valori null e undefined. GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 8 Ultimo aggiornamento 4/5/2010 Elementi del linguaggio ActionScript // x has not been declared trace("The value of x is "+x); if (x == undefined) { trace("x is undefined"); } else { trace("x is not undefined"); } trace("typeof (x) is "+typeof (x)); if (null == undefined) { trace("null and undefined are equal"); } else { trace("null and undefined are not equal"); } Il risultato seguente viene visualizzato nel pannello Output. The value of x is undefined x is undefined typeof (x) is undefined null and undefined are equal Funzioni globali Questa sezione contiene una serie di funzioni incorporate disponibili in qualsiasi punto di un file SWF in cui viene utilizzato ActionScript. Queste funzioni globali coprono una vasta gamma di attività di programmazione comuni quali le operazioni con tipi di dati (Boolean(), int() e così via), la produzione di informazioni sul debug (trace()) e la comunicazione con Flash Player o con il browser (fscommand()). Riepilogo delle funzioni globali Modificatori Firma Descrizione Array([numElements], Crea un nuovo array vuoto oppure converte in array gli elementi specificati. [elementN]) : Array Boolean(expression:Obje ct) : Boolean call(frame:Object) Converte il parametro expression in un valore booleano e restituisce true o false. Sconsigliata a partire da Flash Player 5. Questa azione è stata sconsigliata a favore dell'istruzione function. Esegue lo script nel fotogramma chiamato senza spostare l'indicatore di riproduzione sul fotogramma. chr(number:Number) : String Sconsigliata a partire da Flash Player 5. Questa funzione è stata sconsigliata a favore di String.fromCharCode(). Converte i numeri di codice ASCII in caratteri. clearInterval(intervalID:N Annulla un intervallo creato da una chiamata a setInterval(). umber) duplicateMovieClip(target: Object, newname:String, depth:Number) Crea un'istanza di un clip filmato durante la riproduzione del file SWF. GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 9 Ultimo aggiornamento 4/5/2010 Elementi del linguaggio ActionScript Modificatori Firma Descrizione escape(expression:Strin g) : String Converte il parametro in stringa e lo codifica in un formato URL in cui tutti i caratteri non alfanumerici vengono sostituiti con sequenze esadecimali %. eval(expression:Object) Accede a variabili, proprietà, oggetti e clip filmato in base al nome. : Object fscommand(command:Stri ng, parameters:String) Consente al file SWF di comunicare con il lettore Flash Lite o con l'ambiente di un dispositivo mobile (ad esempio un sistema operativo). fscommand2(command:Stri Consente al file SWF di comunicare con il lettore Flash Lite o con ng, parameters:String) un'applicazione host su un dispositivo mobile. getProperty(my_mc:Object , property:Object) : Object Sconsigliata a partire da Flash Player 5. Questa funzione è stata sostituita dalla sintassi a punto, introdotta con Flash Player 5. Restituisce il valore della proprietà specificata per il clip filmato my_mc. getTimer() : Number Restituisce il numero di millisecondi trascorsi dall'inizio della riproduzione del file SWF. getURL(url:String, Carica un documento da un URL specifico in una finestra, oppure trasmette le variabili a un'altra applicazione in un URL definito. [window:String], [method:String]) getVersion() : String Restituisce una stringa contenente le informazioni sulla versione di Flash Player e la piattaforma. gotoAndPlay([scene:Strin Invia l'indicatore di riproduzione al fotogramma specificato in una g], frame:Object) scena e avvia la riproduzione da quel fotogramma. gotoAndStop([scene:Stri ng], frame:Object) ifFrameLoaded([scene:Str ing], frame:Object, statement(s):Object) Invia l'indicatore di riproduzione al fotogramma specificato in una scena e lo arresta. Sconsigliata a partire da Flash Player 5. Questa funzione è stata sconsigliata. Adobe consiglia di usare la proprietà MovieClip._framesloaded. Verifica se il contenuto di un fotogramma specifico è disponibile localmente. int(value:Number) : Number Sconsigliata a partire da Flash Player 5. Questa funzione è stata sconsigliata a favore di Math.round(). Converte un numero decimale in valore intero troncando il valore decimale. isFinite(expression:Objec t) : Boolean Valuta expression e restituisce true se si tratta di un numero finito oppure false se si tratta di un valore infinito o infinito negativo. isNaN(expression:Object Valuta il parametro e restituisce true se il valore è NaN (not a number). ) : Boolean length(expression:Strin g, variable:Object) : Number Sconsigliata a partire da Flash Player 5. Questa funzione con le relative funzioni stringa è stata sconsigliata. Adobe consiglia di usare i metodi della classe String e la proprietà String.length per eseguire le stesse operazioni. Restituisce la lunghezza della stringa o della variabile specificata. loadMovie(url:String, target:Object, [method:String]) Carica un file SWF o JPEG in Flash Player durante la riproduzione del file SWF originale. GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 10 Ultimo aggiornamento 4/5/2010 Elementi del linguaggio ActionScript Modificatori Firma Descrizione loadMovieNum(url:String , level:Number, [method:String]) Carica un file SWF o JPEG in un livello di Flash Player durante la riproduzione del file SWF caricato originariamente. loadVariables(url:String, Legge i dati da un file esterno, ad esempio un file di testo o un testo generato da ColdFusion, uno script CGI, ASP (Active Server Pages), PHP o Perl, e imposta i valori delle variabili in un clip filmato target. target:Object, [method:String]) loadVariablesNum(url:Stri Legge i dati da un file esterno, ad esempio un file di testo o un ng, level:Number, testo generato da ColdFusion, uno script CGI, ASP (Active Server [method:String]) Pages), PHP o Perl, e imposta i valori delle variabili in un livello di FlashPlayer. mbchr(number:Number) Sconsigliata a partire da Flash Player 5. Questa funzione è stata sconsigliata a favore del metodo String.fromCharCode(). Converte un numero di codice ASCII in un carattere multibyte. mblength(string:String) : Number Sconsigliata a partire da Flash Player 5. Questa funzione è stata sconsigliata a favore della proprietà String.length. Restituisce la lunghezza della stringa a caratteri multibyte. mbord(character:String ) : Number Sconsigliata a partire da Flash Player 5. Questa funzione è stata sconsigliata a favore di String.charCodeAt(). Converte il carattere specificato in un numero multibyte. mbsubstring(value:String Sconsigliata a partire da Flash Player 5. Questa funzione è stata , index:Number, sconsigliata a favore di String.substr(). count:Number) : String Estrae una nuova stringa a caratteri multibyte da una stringa a caratteri multibyte. nextFrame() Invia l'indicatore di riproduzione al fotogramma successivo. nextScene() Invia l'indicatore di riproduzione al fotogramma 1 della scena successiva. Number(expression:Obje Converte il parametro expression in un numero. ct) : Number Object([value:Object]) : Object Crea un nuovo oggetto vuoto o converte in oggetto il numero, la stringa o il valore booleano specificati. on(mouseEvent:Object) Specifica l'evento associato al mouse o la pressione di un tasto che attiva un'azione. onClipEvent(movieEvent:O Attiva le azioni definite per un'istanza specifica di un clip filmato. bject) ord(character:String) : Number Sconsigliata a partire da Flash Player 5. Questa funzione è stata sostituita dai metodi e dalle proprietà della classe String. Converte i caratteri in numeri di codice ASCII. parseFloat(string:String) Converte una stringa in un numero a virgola mobile. : Number parseInt(expression:Stri ng, [radix:Number]) : Number Converte una stringa in un numero intero. play() Sposta l'indicatore di riproduzione più avanti nella linea temporale. GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 11 Ultimo aggiornamento 4/5/2010 Elementi del linguaggio ActionScript Modificatori Firma Descrizione prevFrame() Invia l'indicatore di riproduzione al fotogramma precedente. prevScene() Invia l'indicatore di riproduzione al fotogramma 1 della scena precedente. random(value:Number) : Sconsigliata a partire da Flash Player 5. Questa funzione è stata sconsigliata a favore di Math.random(). Number Restituisce un numero intero casuale compreso tra 0 e un valore inferiore al numero intero specificato nel parametro value. removeMovieClip(target:O Elimina il clip filmato specificato. bject) setInterval(functionName:O Chiama una funzione, un metodo o un oggetto a intervalli bject, interval:Number, regolari durante la riproduzione di un file SWF. [param:Object], objectName:Object, methodName:String) : Number setProperty(target:Object Modifica un valore di proprietà di un clip filmato durante la , property:Object, riproduzione del clip filmato. expression:Object) startDrag(target:Object, [lock:Boolean], [left,top,right,bottom :Number]) Rende trascinabile il clip filmato target durante la riproduzione del filmato. stop() Arresta il file SWF in esecuzione. stopAllSounds() Interrompe tutti i suoni attualmente riprodotti in un file SWF senza arrestare l'indicatore di riproduzione. stopDrag() Interrompe l'operazione di trascinamento corrente. String(expression:Object Restituisce una rappresentazione sotto forma di stringa del parametro specificato. ) : String substring(string:String, index:Number, count:Number) : String targetPath(targetObject: Sconsigliata a partire da Flash Player 5. Questa funzione è stata sconsigliata a favore di String.substr(). Estrae parte di una stringa. Object) : String Restituisce una stringa contenente il percorso target di movieClipObject. tellTarget(target:String, statement(s):Object) Sconsigliata a partire da Flash Player 5. Adobe consiglia di utilizzare la notazione del punto (.) e l'istruzione with. Applica le istruzioni specificate nel parametro statements alla linea temporale specificata nel parametro target. toggleHighQuality() Sconsigliata a partire da Flash Player 5. Questa funzione è stata sconsigliata a favore di _quality. Attiva e disattiva l'antialiasing in Flash Player. trace(expression:Object) Valuta l'espressione e produce il risultato. GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 12 Ultimo aggiornamento 4/5/2010 Elementi del linguaggio ActionScript Modificatori Firma Descrizione unescape(string:String) Valuta il parametro x come stringa, decodifica la stringa dal formato URL (convertendo tutte le sequenze esadecimali in caratteri ASCII) e restituisce la stringa. : String unloadMovie(target) Rimuove un clip filmato caricato mediante loadMovie() da Flash Player. unloadMovieNum(level:Nu Rimuove un file SWF o un'immagine caricati da Flash Player mber) mediante loadMovieNum(). Funzione Array Array(): Array Array(numElements:Number): Array Array( [element0:Object [, element1, element2, ...elementN] ]) : Array Crea un nuovo array di lunghezza pari a zero o a un valore superiore, oppure un array compilato da un elenco di elementi specificati, possibilmente di tipi di dati diversi. Consente di creare uno dei seguenti elementi: • un array vuoto • un array di lunghezza specifica i cui elementi hanno valori non definiti • un array i cui elementi hanno valori specifici L'uso di questa funzione è simile alla creazione di un array mediante la funzione di costruzione di array (vedere "Funzione di costruzione per la classe Array"). È possibile passare un numero (numElements) o un elenco di elementi contenente uno o più tipi diversi (elemento0, elemento1, ..., elementoN). I parametri che possono accettare più tipi di dati vengono indicati nella firma con il tipo Object. Disponibilità Flash Lite 2.0 Parametri numElements [opzionale] - Un numero intero positivo che specifica il numero di elementi nell'array. È possibile specificare numElements o l'elenco di elementi, ma non entrambi. elementN [opzionale] - Uno o più parametri, element0, element1, ... , elementN, i cui valori possono essere di qualunque tipo. I parametri che possono accettare più tipi di dati vengono indicati con il tipo Object. È possibile specificare numElements o l'elenco di elementi, ma non entrambi. Restituisce Array - Un array. Esempio var myArray:Array = Array(); myArray.push(12); trace(myArray); //traces 12 myArray[4] = 7; trace(myArray); //traces 12,undefined,undefined,undefined,7 Uso 2: l'esempio seguente crea un array con lunghezza 4 ma senza elementi definiti: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 13 Elementi del linguaggio ActionScript var myArray:Array = Array(4); trace(myArray.length); // traces 4 trace(myArray); // traces undefined,undefined,undefined,undefined Uso 3: l'esempio seguente crea un array con tre elementi definiti: var myArray:Array = Array("firstElement", "secondElement", "thirdElement"); trace (myArray); // traces firstElement,secondElement,thirdElement Nota: a differenza della funzione di costruzione della classe Array, la funzione Array() non utilizza la parola chiave new. Vedere anche Array Funzione Boolean Boolean(expression:Object) : Boolean Converte il parametro expression in un valore booleano e restituisce un valore descritto nel seguente elenco: • Se expression è un valore booleano, il valore restituito è expression. • Se expression è un numero, il valore restituito è true se il numero è diverso da zero; in caso contrario, il valore restituito è false. Se expression è una stringa, viene restituito il seguente valore: • Nei file pubblicati per Flash Player 6 o versione precedente, la stringa viene dapprima convertita in numero; il valore è true se il numero è diverso da zero, false negli altri casi. • Nei file pubblicati per Flash Player 7 o versione successiva, il valore restituito è true se la stringa ha una lunghezza superiore a zero, false se la stringa è vuota. Se expression è una stringa, il risultato è true se la stringa ha una lunghezza superiore a 0, false se la stringa è vuota. • Se expression è undefined o NaN (non un numero), il valore restituito è false. • Se expression è un clip filmato o un oggetto, la stringa restituita è true. Nota: a differenza della funzione di costruzione della classe Boolean, la funzione Boolean() non utilizza la parola chiave new. Inoltre, la funzione di costruzione della classe Boolean inizializza un oggetto booleano su false se non viene specificato alcun parametro, mentre la funzione Boolean() restituisce il valore undefined se non viene specificato alcun parametro. Disponibilità Flash Lite 2.0 Parametri expression:Object - Espressione da convertire in un valore booleano. Restituisce Boolean - Un valore booleano. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 14 Elementi del linguaggio ActionScript Esempio trace(Boolean(-1)); // output: true trace(Boolean(0)); // output: false trace(Boolean(1)); // output: true trace(Boolean(true)); // output: true trace(Boolean(false)); // output: false trace(Boolean("true")); // output: true trace(Boolean("false")); // output: true trace(Boolean("Craiggers")); // output: true trace(Boolean("")); // output: false Se i file sono pubblicati per Flash Player 6 e versione precedente, i risultati sono diversi per tre degli esempi precedenti: trace(Boolean("true")); // output: false trace(Boolean("false")); // output: false trace(Boolean("Craiggers")); // output: false Questo esempio mostra una differenza significativa tra l'uso della funzione Boolean() e quello della classe Boolean. La funzione Boolean() crea un valore booleano, mentre la classe Boolean crea un oggetto Boolean. I valori booleani vengono confrontati in base al valore, mentre gli oggetti Boolean vengono confrontati in base al riferimento. // Variables representing Boolean values are compared by value var a:Boolean = Boolean("a"); // a is true var b:Boolean = Boolean(1); // b is true trace(a==b); // true // Variables representing Boolean objects are compared by reference var a:Boolean = new Boolean("a"); // a is true var b:Boolean = new Boolean(1); // b is true trace(a == b); // false Vedere anche Boolean Funzione call call(frame) Sconsigliata a partire da Flash Player 5. Questa azione è stata sconsigliata a favore dell'istruzione function. Esegue lo script nel fotogramma chiamato senza spostare l'indicatore di riproduzione sul fotogramma. Le variabili locali non sono presenti dopo l'esecuzione dello script. • Se non vengono dichiarate variabili all'interno di un blocco ({}), ma l'elenco delle azioni è stato eseguito mediante un'azione call(), le variabili sono locali e scadono al termine dell'elenco corrente. • Se non vengono dichiarate delle variabili all'interno di un blocco e l'elenco delle azioni corrente non è stato eseguito mediante l'azione call(), le variabili vengono interpretate come variabili della linea temporale. Disponibilità Flash Lite 1.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 15 Elementi del linguaggio ActionScript Parametri frame:Object - L'etichetta o il numero di un fotogramma nella linea temporale. Vedere anche Funzione Array, call (metodo Function.call) Funzione chr chr(number) : String Sconsigliata a partire da Flash Player 5. Questa funzione è stata sconsigliata a favore di String.fromCharCode(). Converte i numeri di codice ASCII in caratteri. Disponibilità Flash Lite 1.0 Parametri number:Number - Un numero di codice ASCII. Restituisce String - Il valore dei caratteri del codice ASCII specificato. Esempio L'esempio seguente converte il numero 65 nella lettera A e la assegna alla variabile myVar: myVar = chr(65); Vedere anche fromCharCode (metodo String.fromCharCode) Funzione clearInterval clearInterval(intervalID:Number) : Void Annulla un intervallo creato da una chiamata a setInterval(). Disponibilità Flash Lite 2.0 Parametri intervalID:Number - Un identificatore numerico (numero intero) restituito da una chiamata a setInterval(). Esempio L'esempio seguente imposta e successivamente cancella una chiamata a interval: function callback() { trace("interval called: "+getTimer()+" ms."); } var intervalID:Number = setInterval(callback, 1000); Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 16 Elementi del linguaggio ActionScript Una volta terminato l'utilizzo della funzione, è necessario cancellare l'intervallo. Creare un pulsante di nome clearInt_btn e utilizzare il codice ActionScript per cancellare setInterval(): clearInt_btn.onRelease = function(){ clearInterval( intervalID ); trace("cleared interval"); }; Vedere anche Funzione setInterval Funzione duplicateMovieClip duplicateMovieClip(target:String, newname:String, depth:Number) : Void duplicateMovieClip(target:MovieClip, newname:String, depth:Number) : Void Crea un'istanza di un clip filmato durante la riproduzione del file SWF. L'indicatore di riproduzione nei clip filmato duplicati parte sempre dal fotogramma 1, indipendentemente dal punto in cui si trova l'indicatore nel clip filmato originale. Le variabili presenti nel clip filmato originale non vengono copiate nel clip filmato duplicato. Utilizzare la funzione o il metodo removeMovieClip() per eliminare un'istanza di clip filmato creata con duplicateMovieClip(). Disponibilità Flash Lite 2.0 Parametri target:Object - Il percorso di destinazione del clip filmato da duplicare. Questo parametro può essere una stringa (ad esempio, "my_mc") oppure un riferimento diretto all'istanza del clip filmato (ad esempio, my_mc). I parametri che possono accettare più tipi di dati vengono indicati con il tipo Object. newname:String - Un identificatore univoco del clip filmato duplicato. depth:Number - Un livello di profondità univoco per il clip filmato duplicato. Il livello di profondità rappresenta l'ordine di impilamento dei clip filmato duplicati, simile all'ordine di impilamento dei livelli nella linea temporale: i clip filmato con un livello di profondità inferiore sono nascosti sotto i clip con un ordine di impilamento superiore. Per evitare che i file SWF nei livelli di profondità occupati vengano sostituiti, è necessario assegnare a ciascun clip filmato duplicato un livello di profondità univoco. Esempio Nell'esempio seguente viene creata l'istanza di un clip filmato trascinabile denominata img_mc. L'immagine viene caricata nel clip filmato, quindi il clip img_mc viene copiato. Il clip duplicato viene denominato newImg_mc e spostato sullo stage senza sovrapporlo al clip originale, quindi la stessa immagine viene caricata nel secondo clip. this.createEmptyMovieClip("img_mc", this.getNextHighestDepth()); img_mc.loadMovie("http://www.helpexamples.com/flash/images/image1.jpg"); duplicateMovieClip(img_mc, "newImg_mc", this.getNextHighestDepth()); newImg_mc._x = 200; newImg_mc.loadMovie("http://www.helpexamples.com/flash/images/image1.jpg"); Per rimuovere il clip filmato duplicato, è possibile utilizzare il seguente codice per il pulsante myButton_btn. this.myButton_btn.onRelease = function(){ removeMovieClip(newImg_mc); }; Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 17 Elementi del linguaggio ActionScript Vedere anche Funzione removeMovieClip, duplicateMovieClip (metodo MovieClip.duplicateMovieClip), removeMovieClip (metodo MovieClip.removeMovieClip) Funzione escape escape(expression:String) : String Converte il parametro in stringa e lo codifica in un formato URL in cui tutti i caratteri non alfanumerici vengono sostituiti con sequenze esadecimali %. Quando viene utilizzato in una stringa con formato di codifica URL, il simbolo della percentuale (%) introduce i caratteri escape e non equivale all'operatore modulo (%). Disponibilità Flash Lite 2.0 Parametri expression:String - L'espressione da convertire in stringa e codificare in formato URL. Restituisce String - Stringa con codifica URL. Esempio Il seguente codice produce il risultato someuser%40somedomain%2Ecom: var email:String = "[email protected]"; trace(escape(email)); In questo esempio, il simbolo (@) è stato sostituito con %40 e il simbolo del punto (.) è stato sostituito con %2E. Si tratta di un metodo utile quando si tenta di passare delle informazioni a un server remoto e i dati contengono dei caratteri speciali (ad esempio, & o ?), come mostrato nel codice seguente: var redirectUrl = "http://www.somedomain.com?loggedin=true&username=Gus"; getURL("http://www.myothersite.com?returnurl="+ escape(redirectUrl)); Vedere anche Funzione unescape Funzione eval eval(expression:Object) : Objecteval(expression:String) : Object Accede a variabili, proprietà, oggetti e clip filmato in base al nome. Se l'espressione è una variabile o una proprietà, viene restituito il valore della variabile o della proprietà. Se l'espressione è un oggetto o un clip filmato, viene restituito un riferimento all'oggetto o al clip filmato. Se l'elemento nominato nell'espressione non viene trovato, viene restituito il valore undefined. In Flash 4, eval() era utilizzata per la simulazione degli array; in Flash 5 e versioni successive, la simulazione degli array deve essere eseguita mediante la classe Array. In Flash 4, è anche possibile utilizzare eval() per impostare e recuperare in modo dinamico il valore di una variabile o il nome di un'istanza. La stessa operazione può anche essere svolta mediante l'operatore di accesso agli array ([]). Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 18 Elementi del linguaggio ActionScript In Flash 5 o versioni successive, eval() non può essere utilizzata per impostare e recuperare in modo dinamico il valore di una variabile o il nome di un'istanza, in quanto eval() non può essere utilizzata a sinistra di un'equazione. Ad esempio, sostituire il codice eval ("var" + i) = "first"; con: this["var"+i] = "first" oppure con: set ("var" + i, "first"); Disponibilità Flash Lite 1.0 Parametri expression:Object - Il nome di una variabile, proprietà, oggetto o clip filmato da recuperare. Questo parametro può essere una stringa o un riferimento diretto all'istanza dell'oggetto (vale a dire, l'uso delle virgolette (" ") è facoltativo). Restituisce Object - Un valore, riferimento a un oggetto o clip filmato, oppure undefined. Esempio L'esempio seguente utilizza la funzione eval() per impostare le proprietà dei clip filmato a cui viene assegnato un nome dinamicamente. Questo codice ActionScript imposta la proprietà _rotation per tre clip filmato denominati square1_mc, square2_mc e square3_mc. for (var i = 1; i <= 3; i++) { setProperty(eval("square"+i+"_mc"), _rotation, 5); } È anche possibile utilizzare il codice ActionScript seguente: for (var i = 1; i <= 3; i++) { this["square"+i+"_mc"]._rotation = -5; } Vedere anche Array, Istruzione set variable Funzione fscommand fscommand(command:String, parameters:String) : Void La funzione fscommand() consente al file SWF di comunicare con il lettore Flash Lite o con l'ambiente di un dispositivo mobile (ad esempio un sistema operativo). I parametri definiscono il nome dell'applicazione in fase di avvio e i parametri per arrivarci, separati da virgole. GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 19 Ultimo aggiornamento 4/5/2010 Elementi del linguaggio ActionScript Comando Parametri Scopo launch percorsoapplicazione, arg1, arg2,..., argn Questo comando lancia un'altra applicazione su un dispositivo mobile. Il nome dell'applicazione e i relativi parametri vengono passati in un unico argomento. Nota: questa funzione dipende dal sistema operativo. Utilizzare questo comando con attenzione in quanto può chiedere al dispositivo host di eseguire un'operazione non supportata. Questo tipo di utilizzo potrebbe provocare l'arresto anomalo del dispositivo host. Questo comando è supportato solo quando Flash Lite Player è in esecuzione in modalità autonoma, e non quando è in esecuzione nel contesto di un'altra applicazione (ad esempio, come plug-in di un browser). activateTextFiel d "" (ignored) Questo comando attiva in modo asincrono il campo di testo attualmente selezionato, rendendolo attivo per le modifiche effettuate dall'utente. A causa del suo funzionamento asincrono, il comando viene elaborato alla fine del fotogramma. Viene prima eseguito il codice ActionScript immediatamente successivo alla chiamata di fscommand(). Se il comando viene elaborato quando non è selezionato alcun campo di testo, non ha alcun effetto. Questo comando assegna lo stato di attivazione a un campo di testo precedentemente passato al metodo Selection.setFocus() e attiva il campo per le modifiche. Il comando ha effetto solo se il telefono supporta la modifica inline del testo. Può essere chiamato all'interno della funzione di callback del listener di eventi Selection.onSetFocus(). A seguito del comando, i campi di testo diventano attivi per le modifiche quando vengono selezionati. Nota: poiché la funzione fscommand() viene eseguita in modo asincrono, il campo di testo non diventa attivo immediatamente, bensì alla fine del fotogramma. Disponibilità Flash Lite 1.1 Parametri command:String: - Una stringa trasmessa all'applicazione host per qualsiasi uso, o un comando trasmesso a Flash Lite. parameters:String: - Una stringa trasmessa all'applicazione host per qualsiasi uso, o un valore trasmesso a Flash Lite. Esempio Nell'esempio seguente, la funzione fscommand() apre il sito wap.yahoo.com nel browser servizi/Web sui telefoni della Serie 60: on(keyPress "9") { status = fscommand("launch", "z:\\system\apps\browser\browser.app,http://wap.yahoo.com"); } Funzione fscommand2 fscommand2(command:String, parameter1:String,...parameterN:String) : Void GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 20 Ultimo aggiornamento 4/5/2010 Elementi del linguaggio ActionScript Consente al file SWF di comunicare con il lettore Flash Lite o con un'applicazione host su un dispositivo mobile. Per usare fscommand2() per inviare un messaggio al lettore di Flash Lite, è necessario utilizzare parametri e comandi predefiniti. Vedete la sezione "Comandi fscommand2" in "Elementi del linguaggio ActionScript" per conoscere i valori che possono essere specificati per i comandi e i parametri della funzione fscommand(). Questi valori controllano i file SWF riprodotti in Flash Lite. La funzione fscommand2() è simile alla funzione fscommand(), con le seguenti differenze: • La funzione fscommand2() può ricevere un qualsiasi numero di argomenti. Al contrario, fscommand() può ricevere un solo argomento. • Flash Lite esegue fscommand2() immediatamente (vale a dire, all'interno del fotogramma), mentre fscommand() viene eseguita alla fine del fotogramma in corso di elaborazione. • La funzione fscommand2() restituisce un valore che può essere utilizzato per riportare la corretta esecuzione, il fallimento o il risultato del comando. Nota: nessuno dei comandi fscommand2() è disponibile per i lettori Web. Disponibilità Flash Lite 1.1 Comandi fscommand2() obsoleti Alcuni comandi fscommand2() di Flash Lite 1.1 sono sconsigliati in Flash Lite 2.0. La seguente tabella mostra i comandi fscommand2() obsoleti: Comando Sostituito da Escape escape Funzione globale GetDateDay getDate() Metodo dell'oggetto Date GetDateMonth getMonth() Metodo dell'oggetto Date GetDateWeekday getDay() Metodo dell'oggetto Date GetDateYear getYear() Metodo dell'oggetto Date GetLanguage Proprietà System.capabilities.language GetLocaleLongDate getLocaleLongDate() Metodo dell'oggetto Date GetLocaleShortDate getLocaleShortDate() Metodo dell'oggetto Date GetLocaleTime getLocaleTime() Metodo dell'oggetto Date GetTimeHours getHours() Metodo dell'oggetto Date GetTimeMinutes getMinutes() Metodo dell'oggetto Date GetTimeSeconds getSeconds() Metodo dell'oggetto Date GetTimeZoneOffset getTimeZoneOffset() Metodo dell'oggetto Date SetQuality MovieClip._quality Unescape unescape Funzione globale Parametri command:String: - Una stringa trasmessa all'applicazione host per qualsiasi uso, o un comando trasmesso a Flash Lite. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 21 Elementi del linguaggio ActionScript parameters:String: - Una stringa trasmessa all'applicazione host per qualsiasi uso, o un valore trasmesso a Flash Lite. Funzione getProperty getProperty(my_mc:Object, property:Object) : Object Sconsigliata a partire da Flash Player 5. Questa funzione è stata sostituita dalla sintassi a punto, introdotta con Flash Player 5. Restituisce il valore della proprietà specificata per il clip filmato my_mc. Disponibilità Flash Lite 1.0 Parametri my_mc:Object - Il nome di istanza di un clip filmato per il quale viene recuperata la proprietà. property:Object - Una proprietà di un clip filmato. Restituisce Object - Il valore della proprietà specificata. Esempio L'esempio seguente crea il nuovo clip filmato someClip_mc e visualizza il valore alfa (_alpha) per il clip filmato someClip_mc nel pannello Output: this.createEmptyMovieClip("someClip_mc", 999); trace("The alpha of "+getProperty(someClip_mc, _name)+" is: "+getProperty(someClip_mc, _alpha)); Funzione getTimer getTimer() : Number Restituisce il numero di millisecondi trascorsi dall'inizio della riproduzione del file SWF. Disponibilità Flash Lite 1.0 Restituisce Number - Il numero di millisecondi trascorsi dall'inizio della riproduzione del file SWF. Esempio Nell'esempio seguente, le funzioni getTimer() e setInterval() vengono usate per creare un timer semplice: this.createTextField("timer_txt", this.getNextHighestDepth(), 0, 0, 100, 22); function updateTimer():Void { timer_txt.text = getTimer(); } var intervalID:Number = setInterval(updateTimer, 100); Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 22 Elementi del linguaggio ActionScript Funzione getURL getURL(url:String [, window:String [, method:String] ]) : Void Carica un documento da un URL specifico in una finestra, oppure trasmette le variabili a un'altra applicazione in un URL definito. Per eseguire il test di questa funzione, accertarsi che il file da caricare si trovi nella posizione specificata. Per utilizzare un URL assoluto (ad esempio, http://www.myserver.com), è necessario disporre di una connessione di rete. Nota: questa funzione non è supportata dai dispositivi BREW. Disponibilità Flash Lite 1.0 Parametri url:String - L'URL da cui ottenere il documento. window:String [opzionale] - Specifica la finestra o il fotogramma HTML nel quale il documento dovrebbe essere caricato. È possibile immettere il nome di una finestra specifica o selezionare tra i seguenti nomi riservati di destinazioni: • _self indica il frame corrente nella finestra corrente. • _blank indica una nuova finestra. • _parent indica l'elemento principale del frame corrente. • _top specifica il frame di primo livello nella finestra corrente. method:String [opzionale] - Un metodo GET o POST per l'invio delle variabili. Se non vi sono variabili, omettere questo parametro. Il metodo GET aggiunge le variabili alla fine dell'URL e viene utilizzato quando il numero di variabili è ridotto; il metodo POST invia le variabili in un'intestazione HTTP separata e viene utilizzato per l'invio di stringhe di variabili lunghe. Esempio Questo esempio carica un'immagine nel clip filmato. Quando si fa clic sull'immagine, un nuovo URL viene caricato in una nuova finestra del browser. var listenerObject:Object = new Object(); listenerObject.onLoadInit = function(target_mc:MovieClip) { target_mc.onRelease = function() { getURL("http://www.macromedia.com/software/flash/flashpro/", "_blank"); }; }; var logo:MovieClipLoader = new MovieClipLoader(); logo.addListener(listenerObject); logo.loadClip("http://www.helpexamples.com/flash/images/image1.jpg", this.createEmptyMovieClip("macromedia_mc", this.getNextHighestDepth())); Nell'esempio seguente getURL() viene usato per inviare un messaggio e-mail: myBtn_btn.onRelease = function(){ getURL("mailto:[email protected]"); }; È anche possibile utilizzare GET o POST per inviare variabili. L'esempio seguente utilizza GET per aggiungere variabili a un URL: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 23 Elementi del linguaggio ActionScript var firstName:String = "Gus"; var lastName:String = "Richardson"; var age:Number = 92; myBtn_btn.onRelease = function() { getURL("http://www.macromedia.com", "_blank", "GET"); }; Il codice ActionScript seguente utilizza POST per inviare le variabili all'intestazione HTTP. Assicurarsi di provare i documenti in una finestra del browser per evitare che le variabili vengano inviate mediante GET: var firstName:String = "Gus"; var lastName:String = "Richardson"; var age:Number = 92; getURL("http://www.macromedia.com", "_blank", "POST"); Vedere anche Funzione loadVariables, send (metodo XML.send), sendAndLoad (metodo XML.sendAndLoad) Funzione getVersion getVersion() : String Restituisce una stringa contenente le informazioni sulla versione di Flash Player e la piattaforma. La funzione getVersion restituisce informazioni solo su Flash Player 5 e versioni successive. Disponibilità Flash Lite 2.0 Restituisce String - Una stringa contenente le informazioni sulla versione di Flash Player e la piattaforma. Esempio L'esempio seguente traccia il numero di versione di Flash Player in cui è in riproduzione il file SWF: var flashVersion:String = getVersion(); trace(flashVersion); // output: WIN 8,0,1,0 trace($version); // output: WIN 8,0,1,0 trace(System.capabilities.version); // output: WIN 8,0,1,0 La stringa seguente viene restituita dalla funzione getVersion: WIN 8,0,1,0 La stringa restituita indica che la piattaforma è Microsoft Windows e che il numero di versione principale di Flash Player è 8 mentre quello della versione minore è 1 (8.1). Vedere anche os (proprietà capabilities.os), version (proprietà capabilities.version) Funzione gotoAndPlay gotoAndPlay( [scene:String,] frame:Object) : Void Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 24 Elementi del linguaggio ActionScript Invia l'indicatore di riproduzione al fotogramma specificato in una scena e avvia la riproduzione da quel fotogramma. Se non viene specificata alcuna scena, l'indicatore di riproduzione passa al fotogramma specificato nella scena corrente. È possibile utilizzare il parametro scene solo nella linea temporale principale, non all'interno delle linee temporali per clip filmato o altri oggetti del documento. Disponibilità Flash Lite 1.0 Parametri scene:String [opzionale] - Una stringa che specifica il nome della scena a cui viene inviato l'indicatore di riproduzione. frame:Object - Un numero che rappresenta il numero del fotogramma, o una stringa che rappresenta l'etichetta del fotogramma a cui viene inviato l'indicatore di riproduzione. Esempio Nell'esempio seguente il documento ha due scene: sceneOne e sceneTwo. La prima scena contiene un'etichetta di fotogramma nel fotogramma 10 di nome newFrame e due pulsanti, myBtn_btn e myOtherBtn_btn. Questo codice ActionScript viene collocato nel fotogramma 1, nella scena 1 della linea temporale principale. stop(); myBtn_btn.onRelease = function(){ gotoAndPlay("newFrame"); }; myOtherBtn_btn.onRelease = function(){ gotoAndPlay("sceneTwo", 1); }; Quando l'utente fa clic sui pulsanti, l'indicatore di riproduzione si sposta alla posizione specificata e continua la riproduzione. Vedere anche gotoAndPlay (metodo MovieClip.gotoAndPlay), Funzione nextFrame, Funzione play, Funzione prevFrame Funzione gotoAndStop gotoAndStop( [scene:String,] frame:Object) : Void Invia l'indicatore di riproduzione al fotogramma specificato in una scena e lo arresta. Se non è stata specificata nessuna scena, l'indicatore di riproduzione viene inviato al fotogramma della scena corrente. È possibile usare il parametro scene solo nella linea temporale principale e non nelle linee temporali per le clip filmato o altri oggetti del documento. Disponibilità Flash Lite 1.0 Parametri scene:String [opzionale] - Una stringa che specifica il nome della scena a cui viene inviato l'indicatore di riproduzione. frame:Object - Un numero che rappresenta il numero del fotogramma, o una stringa che rappresenta l'etichetta del fotogramma a cui viene inviato l'indicatore di riproduzione. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 25 Elementi del linguaggio ActionScript Esempio Nell'esempio seguente il documento ha due scene: sceneOne e sceneTwo. La prima scena contiene un'etichetta di fotogramma nel fotogramma 10 di nome newFrame e due pulsanti, myBtn_btn e myOtherBtn_btn. Questo codice ActionScript viene collocato nel fotogramma 1, nella scena 1 della linea temporale principale: stop(); myBtn_btn.onRelease = function(){ gotoAndStop("newFrame"); }; myOtherBtn_btn.onRelease = function(){ gotoAndStop("sceneTwo", 1); }; Quando l'utente fa clic sui pulsanti, l'indicatore di riproduzione si sposta alla posizione specificata e arresta la riproduzione. Vedere anche gotoAndStop (metodo MovieClip.gotoAndStop), Funzione stop, Funzione play, Funzione gotoAndPlay Funzione ifFrameLoaded ifFrameLoaded( [scene,] frame) { statement(s); } Sconsigliata a partire da Flash Player 5. Questa funzione è stata sconsigliata. Adobe consiglia di usare la proprietà MovieClip._framesloaded. Verifica se il contenuto di un fotogramma specifico è disponibile localmente. Utilizzare ifFrameLoaded per avviare la riproduzione di un'animazione semplice mentre il resto del file SWF viene scaricato nel computer locale. La differenza tra l'utilizzo di _framesloaded e ifFrameLoaded consiste nel fatto che _framesloaded consente di aggiungere istruzioni if o else personalizzate. Disponibilità Flash Lite 1.0 Parametri scene:String [opzionale] - Una stringa che specifica il nome della scena da caricare. frame:Object - Il numero di fotogramma o l'etichetta di fotogramma che deve essere caricata prima dell'esecuzione dell'istruzione successiva. statement(s):Object - Le istruzioni da eseguire se viene caricata la scena specificata o la scena con il fotogramma. Vedere anche addListener (metodo MovieClipLoader.addListener) Funzione int int(value) : Number Sconsigliata a partire da Flash Player 5. Questa funzione è stata sconsigliata a favore di Math.round(). Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 26 Elementi del linguaggio ActionScript Converte un numero decimale in valore intero troncando il valore decimale. Questa funzione è equivalente a Math.floor() se il parametro value è positivo e a Math.ceil() se il parametro value è negativo. Disponibilità Flash Lite 1.0 Parametri value:Number - Un numero da arrotondare a intero. Restituisce Number - Il valore intero troncato. Vedere anche round (metodo Math.round), floor (metodo Math.floor), ceil (metodo Math.ceil) Funzione isFinite isFinite(expression:Object) : Boolean Valuta expression e restituisce true se si tratta di un numero finito oppure false se si tratta di un valore infinito o infinito negativo. La presenza di un valore infinito o infinito negativo indica una condizione di errore matematico, come la divisione per 0. Disponibilità Flash Lite 2.0 Parametri expression:Object - Valore booleano, variabile o altra espressione da valutare. Restituisce Boolean - Un valore booleano. Esempio Il seguente esempio mostra i valori restituiti da isFinite: isFinite(56) // returns true isFinite(Number.POSITIVE_INFINITY) //returns false Funzione isNaN isNaN(expression:Object) : Boolean Valuta il parametro e restituisce true se il valore è NaN (not a number). Questa funzione è utile per verificare se un'espressione matematica restituisce un numero. Disponibilità Flash Lite 2.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 27 Elementi del linguaggio ActionScript Parametri expression:Object - Valore booleano, variabile o altra espressione da valutare. Restituisce Boolean - Un valore booleano. Esempio Il codice seguente mostra i valori restituiti dalla funzione isNaN(): trace( isNaN("Tree") ); // returns true trace( isNaN(56) ); // returns false trace( isNaN(Number.POSITIVE_INFINITY) ) // returns false L'esempio seguente mostra il modo in cui è possibile utilizzare la funzione isNaN() per verificare se un'espressione matematica contiene o meno un errore: var dividend:Number; var divisor:Number; divisor = 1; trace( isNaN(dividend/divisor) ); // output: true // The output is true because the variable dividend is undefined. // Do not use isNAN() to check for division by 0 because it will return false. // A positive number divided by 0 equals Infinity (Number.POSITIVE_INFINITY). // A negative number divided by 0 equals -Infinity (Number.NEGATIVE_INFINITY). Vedere anche Costante NaN, NaN (proprietà Number.NaN) Funzione length length(expression)length(variable) Sconsigliata a partire da Flash Player 5. Questa funzione con le relative funzioni stringa è stata sconsigliata. Adobe consiglia di usare i metodi della classe String e la proprietà String.length per eseguire le stesse operazioni. Restituisce la lunghezza della stringa o della variabile specificata. Disponibilità Flash Lite 1.0 Parametri expression:String - Una stringa. variable:Object - Il nome di una variabile. Restituisce Number - La lunghezza della stringa o della variabile specificata. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 28 Elementi del linguaggio ActionScript Esempio L'esempio seguente restituisce la lunghezza della stringa "Hello": length("Hello"); Il risultato è 5. Vedere anche Operatore " (delimitatore di stringa), String, length (proprietà String.length) Funzione loadMovie loadMovie(url:String, target:Object [, method:String]) : Void loadMovie(url:String, target:String [, method:String]) : Void Carica un file SWF o JPEG in Flash Player durante la riproduzione del file SWF originale. i file JPEG salvati in formato progressivo non sono supportati. Per verificare lo stato di avanzamento dell'operazione, utilizzare MovieClipLoader.loadClip() anziché questa funzione. La funzione loadMovie() consente di visualizzare diversi file SWF contemporaneamente e di passare da uno all'altro senza caricare un altro documento HTML. Senza la funzione loadMovie(), Flash Player visualizza un unico file SWF. Se si desidera caricare un file SWF o JPEG in un livello specifico, utilizzare loadMovieNum() anziché loadMovie(). Quando un file SWF viene caricato in un clip filmato target, è possibile utilizzare il percorso target del clip filmato per indicare come destinazione il file SWF. Un file SWF o un'immagine caricati in un target ereditano le proprietà delle modifiche in scala, la posizione e la rotazione del clip filmato target. L'angolo superiore sinistro dell'immagine o del file SWF caricati viene allineato con il punto di registrazione del clip filmato target. In alternativa, se il target è la linea temporale principale, l'angolo superiore sinistro dell'immagine o del file SWF viene allineato all'angolo superiore sinistro dello stage. Utilizzare unloadMovie() per rimuovere i file SWF caricato mediante loadMovie(). Disponibilità Flash Lite 1.1 Parametri url:String - L'URL assoluto o relativo del file SWF o JPEG da caricare. Un percorso relativo deve essere tale rispetto al file SWF che si trova sul livello 0. Gli URL assoluti devono includere il riferimento al protocollo, ad esempio http:// o file:///. target:Object - Un riferimento a un clip filmato o una stringa che rappresenta il percorso di un clip filmato target. Il clip filmato target viene sostituito dal file SWF o dall'immagine caricati. method:String [opzionale] - Specifica un metodo HTTP per l'invio di variabili. Il parametro deve essere la stringa GET o POST. Se non vi sono variabili da inviare, omettere questo parametro. Il metodo GET aggiunge le variabili alla fine dell'URL e viene utilizzato quando il numero di variabili è ridotto; il metodo POST invia le variabili in un'intestazione HTTP separata e viene utilizzato per l'invio di stringhe di variabili lunghe. Esempio Uso 1: L'esempio seguente carica il file SWF di nome circle.swf dalla stessa directory e sostituisce il clip filmato mySquare che è già presente sullo stage: loadMovie("circle.swf", mySquare); // equivalent statement (Usage 1): loadMovie("circle.swf", _level0.mySquare); // equivalent statement (Usage 2): loadMovie("circle.swf", "mySquare"); Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 29 Elementi del linguaggio ActionScript L'esempio seguente carica il file SWF di nome circle.swf dalla stessa directory ma sostituisce il clip filmato principale anziché mySquare: loadMovie("circle.swf", this); // Note that using "this" as a string for the target parameter will not work // equivalent statement (Usage 2): loadMovie("circle.swf", "_level0"); L'istruzione loadMovie() seguente carica il file SWF di nome sub.swf dalla stessa directory in un nuovo clip filmato di nome logo_mc creato mediante createEmptyMovieClip(): this.createEmptyMovieClip("logo_mc", 999); loadMovie("sub.swf", logo_mc); È possibile aggiungere il codice seguente per caricare un'immagine JPEG di nome image1.jpg dalla stessa directory del file SWF che carica sub.swf. L'immagine JPEG viene caricata quando si fa clic sul pulsante myBtn_btn. Questo codice carica l'immagine JPEG in logo_mc. Di conseguenza, sostituisce sub.swf con l'immagine JPEG. myBtn_btn.onRelease = function(){ loadMovie("image1.jpg", logo_mc); }; Uso 2: L'esempio seguente carica il file SWF di nome circle.swf dalla stessa directory e sostituisce il clip filmato mySquare che è già presente sullo stage: loadMovie("circle.swf", "mySquare"); Vedere anche Proprietà _level, Funzione loadMovieNum, loadMovie (metodo MovieClip.loadMovie), loadClip (metodo MovieClipLoader.loadClip)Funzione unloadMovie Funzione loadMovieNum loadMovieNum(url:String, level:Number [, method:String]) : Void Carica un file SWF o JPEG in un livello di Flash Player durante la riproduzione del file SWF caricato originariamente. per verificare lo stato di avanzamento dell'operazione, utilizzare MovieClipLoader.loadClip() anziché questa funzione. Normalmente, Flash Player si chiude dopo aver visualizzato un file SWF. L'azione loadMovieNum() consente di visualizzare diversi file SWF contemporaneamente e di passare da uno all'altro senza caricare un altro documento HTML. Se si desidera specificare un target invece di un livello, utilizzare loadMovie() anziché loadMovieNum(). Flash Player dispone di un ordine di impilamento dei livelli a partire dal livello 0. Questi livelli sono paragonabili a fogli in acetato in quanto sono completamente trasparenti a eccezione degli oggetti su ciascun livello. Quando si utilizza loadMovieNum(), è necessario specificare un livello di Flash Player in cui caricare il file SWF. Quando un file SWF viene caricato in un livello, è possibile utilizzare la sintassi _levelN, dove N è il numero del livello, per indicare come destinazione il file SWF. Quando si carica un file SWF, è possibile specificare un numero di livello qualsiasi e caricare i file in un livello in cui è già presente un file SWF. Se si procede in questo modo, il nuovo file SWF sostituisce il file SWF esistente. Se si carica un file SWF nel livello 0, vengono scaricati tutti i livelli presenti in Flash Player e il livello 0 viene sostituito con il nuovo file. Il file SWF nel livello 0 imposta la frequenza dei fotogrammi, il colore di sfondo e le dimensioni dei fotogrammi per tutti i file SWF caricati. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 30 Elementi del linguaggio ActionScript L'azione loadMovieNum() consente anche di caricare file JPEG in un file SWF durante la riproduzione di quest'ultimo. Nel caso delle immagini e dei file SWF, l'angolo superiore sinistro dell'immagine viene allineato con l'angolo superiore sinistro dello stage durante il caricamento del file; inoltre, il file caricato eredita la rotazione e le modifiche in scala, e il contenuto originale viene sovrascritto nel livello specificato. Nota: i file JPEG salvati in formato progressivo non sono supportati. Utilizzare unloadMovieNum() per rimuovere i file SWF caricato mediante loadMovieNum(). Disponibilità Flash Lite 1.1 Parametri url:String - L'URL assoluto o relativo del file SWF o JPEG da caricare. Un percorso relativo deve essere tale rispetto al file SWF nel livello 0. Per l'uso con il player standalone Flash Player o per la verifica in modalità di prova nell'applicazione di creazione Flash, tutti i file SWF devono essere archiviati nella stessa cartella e i nomi file non devono contenere specifiche relative alla cartella o all'unità disco. level:Number - Un numero intero che specifica il livello di Flash Player in cui viene caricato il file SWF. method:String [opzionale] - Specifica un metodo HTTP per l'invio di variabili. Il parametro deve essere la stringa GET o POST. Se non vi sono variabili da inviare, omettere questo parametro. Il metodo GET aggiunge le variabili alla fine dell'URL e viene utilizzato quando il numero di variabili è ridotto; il metodo POST invia le variabili in un'intestazione HTTP separata e viene utilizzato per l'invio di stringhe di variabili lunghe. Esempio L'esempio seguente carica l'immagine JPEG di nome tim.jpg nel secondo livello di Flash Player: loadMovieNum("http://www.helpexamples.com/flash/images/image1.jpg", 2); Vedere anche Funzione unloadMovieNum, Funzione loadMovie, loadClip (metodo MovieClipLoader.loadClip), Proprietà _level Funzione loadVariables loadVariables(url:String, target:Object [, method:String]) : Void Legge i dati da un file esterno, ad esempio un file di testo o un testo generato da ColdFusion, uno script CGI, ASP (Active Server Pages), PHP o Perl, e imposta i valori delle variabili in un clip filmato target. Questa azione può essere utilizzata anche per aggiornare le variabili del file SWF attivo con nuovi valori. Il testo nell'URL specificato deve essere nel formato MIME standard application/x-www-form-urlencoded (formato standard utilizzato dagli script CGI). È possibile specificare un numero di variabili qualsiasi. L'espressione seguente definisce diverse variabili: company=Macromedia&address=600+Townsend&city=San+Francisco&zip=94103 Nei file SWF eseguiti in una versione di Flash Player precedente alla 7, l'url deve trovarsi nello stesso superdominio del file SWF che emette la chiamata. Per identificare il superdominio, rimuovere la parte più a sinistra dell'URL di un file. Ad esempio, un file SWF che si trova in www.someDomain.com può caricare dati da un'origine situata in store.someDomain.com in quanto entrambi i file si trovano nel superdominio someDomain.com. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 31 Elementi del linguaggio ActionScript Nei file SWF di qualunque versione eseguiti in Flash Player 7 o versione superiore, l'url deve essere esattamente nello stesso sottodominio del file SWF che emette la chiamata (vedere "Funzionalità di sicurezza" in Uso di ActionScript in Flash). Ad esempio, un file SWF che si trova nel sito www.someDomain.com può caricare dati solo da altre origini presenti nel sito www.someDomain.com. Per caricare dati da un dominio diverso, è possibile collocare un file di criteri dei domini sul server che ospita il file SWF al quale si sta accedendo. Per ulteriori informazioni, vedere "Come consentire il caricamento di dati tra domini diversi" in Uso di ActionScript in Flash. Per caricare variabili in un livello specifico, utilizzare loadVariablesNum() anziché loadVariables(). Disponibilità Flash Lite 1.1 Parametri url:String - URL assoluto o relativo in cui si trovano le variabili. Se il file SWF che emette la chiamata viene eseguito in un browser Web, l'url deve trovarsi nello stesso dominio del file SWF; per informazioni dettagliate, consultare la sezione Descrizione. target:Object - Il percorso target di un clip filmato che riceve le variabili caricate. method:String [opzionale] - Specifica un metodo HTTP per l'invio di variabili. Il parametro deve essere la stringa GET o POST. Se non vi sono variabili da inviare, omettere questo parametro. Il metodo GET aggiunge le variabili alla fine dell'URL e viene utilizzato quando il numero di variabili è ridotto; il metodo POST invia le variabili in un'intestazione HTTP separata e viene utilizzato per l'invio di stringhe di variabili lunghe. Esempio L'esempio seguente carica le informazioni dal file di testo params.txt nel clip filmato target_mc creato mediante createEmptyMovieClip(). La funzione setInterval() viene utilizzata per controllare l'avanzamento. Lo script cerca una variabile denominata done nel file params.txt. this.createEmptyMovieClip("target_mc", this.getNextHighestDepth()); loadVariables("params.txt", target_mc); function checkParamsLoaded() { if (target_mc.done == undefined) { trace("not yet."); } else { trace("finished loading. killing interval."); trace("-------------"); for (i in target_mc) { trace(i+": "+target_mc[i]); } trace("-------------"); clearInterval(param_interval); } } var param_interval = setInterval(checkParamsLoaded, 100); Il file esterno params.txt include il testo seguente: var1="hello"&var2="goodbye"&done="done" Vedere anche Funzione loadVariablesNum, Funzione loadMovie, Funzione loadMovieNum, Funzione getURL, loadMovie (metodo MovieClip.loadMovie)loadVariables (metodo MovieClip.loadVariables), load (metodo LoadVars.load) Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 32 Elementi del linguaggio ActionScript Funzione loadVariablesNum loadVariablesNum(url:String, level:Number [, method:String]) : Void Legge i dati da un file esterno, ad esempio un file di testo o un testo generato da ColdFusion, uno script CGI, ASP (Active Server Pages), PHP o Perl, e imposta i valori delle variabili in un livello di FlashPlayer. Questa funzione può essere utilizzata anche per aggiornare le variabili del file SWF attivo con nuovi valori. Il testo nell'URL specificato deve essere nel formato MIME standard application/x-www-form-urlencoded (formato standard utilizzato dagli script CGI). È possibile specificare un numero di variabili qualsiasi. L'espressione seguente definisce diverse variabili: company=Macromedia&address=601+Townsend&city=San+Francisco&zip=94103 Nei file SWF eseguiti in una versione di Flash Player precedente alla 7, l'url deve trovarsi nello stesso superdominio del file SWF che emette la chiamata. Per identificare il superdominio, rimuovere la parte più a sinistra dell'URL di un file. Ad esempio, un file SWF che si trova in www.someDomain.com può caricare dati da un'origine situata in store.someDomain.com in quanto entrambi i file si trovano nel superdominio someDomain.com. Nei file SWF di qualunque versione eseguiti in Flash Player 7 o versione superiore, l'url deve essere esattamente nello stesso sottodominio del file SWF che emette la chiamata (vedere "Funzionalità di sicurezza" in Uso di ActionScript in Flash). Ad esempio, un file SWF che si trova nel sito www.someDomain.com può caricare dati solo da altre origini presenti nel sito www.someDomain.com. Per caricare dati da un dominio diverso, è possibile collocare un file di criteri dei domini sul server che ospita il file SWF. Per ulteriori informazioni, vedere "Come consentire il caricamento di dati tra domini diversi" in Uso di ActionScript in Flash. Per caricare variabili in un livello specifico, utilizzare loadVariables() anziché loadVariablesNum(). Disponibilità Flash Lite 1.1 Parametri url:String - URL assoluto o relativo in cui si trovano le variabili. Se il file SWF che emette la chiamata viene eseguito in un browser Web, l'url deve trovarsi nello stesso dominio del file SWF; per informazioni dettagliate, consultare la sezione Descrizione. level:Number - Un numero intero che specifica il livello di Flash Player in cui ricevere le variabili. method:String [opzionale] - Specifica un metodo HTTP per l'invio di variabili. Il parametro deve essere la stringa GET o POST. Se non vi sono variabili da inviare, omettere questo parametro. Il metodo GET aggiunge le variabili alla fine dell'URL e viene utilizzato quando il numero di variabili è ridotto; il metodo POST invia le variabili in un'intestazione HTTP separata e viene utilizzato per l'invio di stringhe di variabili lunghe. Esempio L'esempio seguente carica le informazioni dal file di testo params.txt nella linea temporale principale del file SWF al secondo livello in Flash Player. I nomi delle variabili dei campi di testo devono corrispondere ai nomi delle variabili presenti nel file params.txt. La funzione setInterval() viene utilizzata per verificare l'avanzamento dei dati che vengono caricati nel file SWF. Lo script cerca una variabile denominata done nel file params.txt. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 33 Elementi del linguaggio ActionScript loadVariablesNum("params.txt", 2); function checkParamsLoaded() { if (_level2.done == undefined) { trace("not yet."); } else { trace("finished loading. killing interval."); trace("-------------"); for (i in _level2) { trace(i+": "+_level2[i]); } trace("-------------"); clearInterval(param_interval); } } var param_interval = setInterval(checkParamsLoaded, 100); // Params.txt includes the following text var1="hello"&var2="goodbye"&done="done" Vedere anche Funzione getURL, Funzione loadMovie, Funzione loadMovieNum, Funzione loadVariables, loadMovie (metodo MovieClip.loadMovie)loadVariables (metodo MovieClip.loadVariables), load (metodo LoadVars.load) Funzione mbchr mbchr(number) Sconsigliata a partire da Flash Player 5. Questa funzione è stata sconsigliata a favore del metodo String.fromCharCode(). Converte un numero di codice ASCII in un carattere multibyte. Disponibilità Flash Lite 1.0 Parametri number:Number - Il numero da convertire in carattere multibyte. Vedere anche fromCharCode (metodo String.fromCharCode) Funzione mblength mblength(string) : Number Sconsigliata a partire da Flash Player 5. Questa funzione è stata sconsigliata a favore della proprietà String.length. Restituisce la lunghezza della stringa a caratteri multibyte. Disponibilità Flash Lite 1.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 34 Elementi del linguaggio ActionScript Parametri string:String - La stringa da misurare. Restituisce Number - La lunghezza della stringa a caratteri multibyte. Vedere anche String, length (proprietà String.length) Funzione mbord mbord(character) : Number Sconsigliata a partire da Flash Player 5. Questa funzione è stata sconsigliata a favore di String.charCodeAt(). Converte il carattere specificato in un numero multibyte. Disponibilità Flash Lite 1.0 Parametri character:String - Il carattere da convertire in numero multibyte. Restituisce Number - Il carattere convertito. Vedere anche charCodeAt (metodo String.charCodeAt) Funzione mbsubstring mbsubstring(value, index, count) : String Sconsigliata a partire da Flash Player 5. Questa funzione è stata sconsigliata a favore di String.substr(). Estrae una nuova stringa a caratteri multibyte da una stringa a caratteri multibyte. Disponibilità Flash Lite 1.0 Parametri value:String - La stringa multibyte da cui deve essere estratta una nuova stringa multibyte. index:Number - Il numero del primo carattere da estrarre. count:Number - Il numero di caratteri da includere nella stringa estratta, escluso il carattere index. Restituisce String - La stringa estratta dalla stringa a caratteri multibyte. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 35 Elementi del linguaggio ActionScript Vedere anche substr (metodo String.substr) Funzione nextFrame nextFrame() : Void Invia l'indicatore di riproduzione al fotogramma successivo. Disponibilità Flash Lite 1.0 Esempio Nell'esempio seguente, quando l'utente preme il tasto freccia destra o giù, l'indicatore di riproduzione si sposta al fotogramma successivo e si arresta. Se l'utente preme il tasto freccia sinistro o su, l'indicatore di riproduzione si sposta al fotogramma precedente e si arresta. Il listener viene inizializzato affinché attenda la pressione del tasto freccia, e viene utilizzata la variabile init per impedire che il listener venga ridefinito se l'indicatore di riproduzione ritorna al fotogramma 1. stop(); if (init == undefined) { someListener = new Object(); someListener.onKeyDown = function() { if (Key.isDown(Key.LEFT) || Key.isDown(Key.UP)) { _level0.prevFrame(); } else if (Key.isDown(Key.RIGHT) || Key.isDown(Key.DOWN)) { _level0.nextFrame(); } }; Key.addListener(someListener); init = 1; } Vedere anche Funzione prevFrame Funzione nextScene nextScene() : Void Invia l'indicatore di riproduzione al fotogramma 1 della scena successiva. Disponibilità Flash Lite 1.0 Esempio Nell'esempio seguente, quando l'utente fa clic sul pulsante creato in fase di runtime, l'indicatore di riproduzione viene inviato al fotogramma 1 della scena successiva. Creare due scene, quindi immettere il codice ActionScript seguente nel fotogramma 1 della scena 1. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 36 Elementi del linguaggio ActionScript stop(); if (init == undefined) { this.createEmptyMovieClip("nextscene_mc", this.getNextHighestDepth()); nextscene_mc.createTextField("nextscene_txt", this.getNextHighestDepth(), 200, 0, 100, 22); nextscene_mc.nextscene_txt.autoSize = true; nextscene_mc.nextscene_txt.border = true; nextscene_mc.nextscene_txt.text = "Next Scene"; this.createEmptyMovieClip("prevscene_mc", this.getNextHighestDepth()); prevscene_mc.createTextField("prevscene_txt", this.getNextHighestDepth(), 00, 0, 100, 22); prevscene_mc.prevscene_txt.autoSize = true; prevscene_mc.prevscene_txt.border = true; prevscene_mc.prevscene_txt.text = "Prev Scene"; nextscene_mc.onRelease = function() { nextScene(); }; prevscene_mc.onRelease = function() { prevScene(); }; init = true; } Assicurarsi di specificare l'azione stop() per il fotogramma 1 della scena. Vedere anche Funzione prevScene Funzione Number Number(expression) : Number Converte il parametro expression in numero e restituisce un valore come descritto nell'elenco seguente: • Se expression è un numero, il valore restituito è expression. • Se expression è un valore booleano, viene restituito il valore 1 se expression è true, 0 o se expression è false. • Se expression è una stringa, la funzione cerca di analizzare expression come numero decimale con un esponente finale opzionale, vale a dire 1.57505e-3. • Se expression è NaN, il valore restituito è NaN. • Se expression è undefined, viene restituito il seguente valore: • - Nei file pubblicati per Flash Player 6 o versione precedente, il risultato è 0. • Nei file pubblicati per Flash Player 7 o versione successiva, il risultato è NaN. Disponibilità Flash Lite 2.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 37 Elementi del linguaggio ActionScript Parametri expression:Object - Un'espressione che consente di convertire in numero. I numeri o le stringhe che iniziano con 0x vengono interpretati come valori esadecimali. I numeri o le stringhe che iniziano con 0 vengono interpretati come valori ottali. Restituisce Number - Un numero o NaN (not a number). Esempio Nell'esempio seguente, viene creato un campo di testo sullo stage in fase di runtime: this.createTextField("counter_txt", this.getNextHighestDepth(), 0, 0, 100, 22); counter_txt.autoSize = true; counter_txt.text = 0; function incrementInterval():Void { var counter:Number = counter_txt.text; // Without the Number() function, Flash would concatenate the value instead // of adding values. You could also use "counter_txt.text++;" counter_txt.text = Number(counter) + 1; } var intervalID:Number = setInterval(incrementInterval, 1000); Vedere anche Costante NaN, Number, Funzione parseInt, Funzione parseFloat Funzione Object Object( [value] ) : Object Crea un nuovo oggetto vuoto o converte in oggetto il numero, la stringa o il valore booleano specificati. Questo comando equivale alla creazione di un oggetto mediante la funzione di costruzione dell'oggetto (vedere "Funzione di costruzione per la classe Object"). Disponibilità Flash Lite 2.0 Parametri value:Object [opzionale] - Un numero, una stringa o un valore booleano. Restituisce Object - Un oggetto. Esempio Nell'esempio seguente viene creato un nuovo oggetto vuoto, che viene successivamente riempito con dei valori: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 38 Elementi del linguaggio ActionScript var company:Object = new Object(); company.name = "Macromedia, Inc."; company.address = "600 Townsend Street"; company.city = "San Francisco"; company.state = "CA"; company.postal = "94103"; for (var i in company) { trace("company."+i+" = "+company[i]); } Vedere anche Object Gestore on on(mouseEvent:Object) { // your statements here } Specifica l'evento associato al mouse o la pressione di un tasto che attiva un'azione. Disponibilità Flash Lite 2.0 Parametri mouseEvent:Object - Un mouseEvent è un trigger chiamato evento. Quando si verifica l'evento, vengono eseguite le istruzioni che lo seguono racchiuse tra parentesi graffe ({ }). Per il parametro mouseEvent possono essere specificati i valori seguenti: • press Il pulsante del mouse viene premuto quando il puntatore si trova sopra il pulsante. • release Il pulsante del mouse viene rilasciato quando il puntatore si trova sopra il pulsante. • releaseOutside Quando il puntatore si trova sopra il pulsante, il pulsante del mouse viene premuto, il puntatore esce dall'area del pulsante e il pulsante viene rilasciato. Gli eventi press e dragOut precedono sempre un evento releaseOutside. Questo evento è supportato in Flash Lite solo se System.capabilities.hasMouse è true o System.capabilities.hasStylus è true. • rollOutIl puntatore esce dall'area del pulsante. Questo evento è supportato in Flash Lite solo se System.capabilities.hasMouse è true o System.capabilities.hasStylus è true. • rollOver Il puntatore del mouse scorre sopra il pulsante. • dragOut Quando il puntatore si trova sopra il pulsante, il pulsante del mouse viene premuto, quindi il puntatore esce dall'area del pulsante. • dragOver Quando il puntatore si trova sopra il pulsante, il pulsante del mouse viene premuto, il puntatore esce dall'area del pulsante, quindi torna sopra il pulsante. • keyPress "<key> " Viene premuto il tasto specificato. Per la porzione key (tasto) del parametro, specificare una costante della classe key, come indicato nei suggerimenti sul codice del pannello Azioni. È possibile utilizzare questo parametro per intercettare la pressione di un tasto, vale a dire per ignorare qualsiasi comportamento incorporato relativo al tasto specificato. Il pulsante può trovarsi in qualsiasi punto dell'applicazione, nello stage o fuori dallo stage. L'unica limitazione a questa tecnica è il fatto che non è possibile applicare il gestore on() in fase di runtime; questa operazione va eseguita in fase di creazione. Selezionare sempre Controllo > Disattiva scelte rapide da tastiera. In caso contrario, i tasti con comportamento incorporato non vengono ignorati quando si esegue una verifica dell'applicazione mediante il comando Controllo > Prova filmato. Per un elenco delle costanti key, vedere la classe Key. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 39 Elementi del linguaggio ActionScript Esempio Nello script seguente la funzione startDrag() viene eseguita quando si preme il pulsante del mouse, e viene eseguito lo script condizionale quando si rilascia il pulsante del mouse e l'oggetto viene rilasciato: on (press) { startDrag(this); } on (release) { trace("X:"+this._x); trace("Y:"+this._y); stopDrag(); } Vedere anche Gestore onClipEvent(), Key Gestore onClipEvent() onClipEvent(movieEvent:Object) { // your statements here } Attiva le azioni definite per un'istanza specifica di un clip filmato. Disponibilità Flash Lite 2.0 Parametri mouseEvent:Object - Un movieEvent è un trigger chiamato evento. Quando si verifica l'evento, vengono eseguite le istruzioni che lo seguono racchiuse tra parentesi graffe ({ }). Per il parametro movieEvent possono essere specificati i valori seguenti: • load L'azione viene avviata nel momento in cui viene creata l'istanza del clip filmato e questo appare nella linea temporale. • unload L'azione viene avviata nel primo fotogramma dopo che il clip filmato è stato rimosso dalla linea temporale. Le azioni associate all'evento Unload del clip filmato vengono elaborate prima che qualsiasi azione venga associata al fotogramma interessato. • enterFrame L'azione viene attivata in modo continuo alla stessa frequenza dei fotogrammi del clip filmato. Le azioni associate all'evento enterFrame del clip filmato vengono elaborate prima che qualsiasi azione fotogramma venga associata ai fotogrammi interessati. • mouseMove L'azione viene avviata ogni volta che il mouse viene spostato. Utilizzare le proprietà _xmouse e _ymouse per determinare la posizione corrente del mouse. Questo evento è supportato in Flash Lite solo se System.capabilities.hasMouse è true. • mouseDown L'azione viene avviata quando si preme il pulsante sinistro del mouse. Questo evento è supportato in Flash Lite solo se System.capabilities.hasMouse è true o System.capabilities.hasStylus è true. • mouseUp L'azione viene avviata quando si rilascia il pulsante sinistro del mouse. Questo evento è supportato in Flash Lite solo se System.capabilities.hasMouse è true o System.capabilities.hasStylus è true. • keyDown L'azione viene avviata quando si preme un tasto. Utilizzare Key.getCode() per recuperare le informazioni sull'ultimo tasto premuto. • keyUp L'azione viene avviata quando si rilascia un tasto. Utilizzare il metodo Key.getCode() per recuperare le informazioni sull'ultimo tasto premuto. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 40 Elementi del linguaggio ActionScript • data L'azione viene avviata quando l'azione loadVariables() o loadMovie() riceve i dati. Quando viene specificato con un'azione loadVariables(), l'evento data si verifica una sola volta, al momento del caricamento dell'ultima variabile. Quando viene specificato mediante un'azioneloadMovie(), l'evento data si verifica ripetutamente a ogni sezione di dati recuperata. Esempio L'esempio seguente utilizza onClipEvent() con l'evento di filmato keyDown ed è progettato per essere associato a un clip filmato o a un pulsante. L'evento di filmatokeyDown viene generalmente utilizzato con uno o più metodi e proprietà dell'oggetto Key. Lo script seguente utilizza Key.getCode() per identificare il tasto premuto dall'utente; se il tasto premuto corrisponde alla proprietà Key.RIGHT, l'indicatore di riproduzione viene inviato al fotogramma successivo; se il tasto premuto corrisponde alla proprietà Key.LEFT, l'indicatore di riproduzione viene inviato al fotogramma precedente. onClipEvent (keyDown) { if (Key.getCode() == Key.RIGHT) { this._parent.nextFrame(); } else if (Key.getCode() == Key.LEFT) { this._parent.prevFrame(); } } Il seguente esempio utilizza onClipEvent() con gli eventi di filmato load e mouseMove. Le proprietà _xmouse e _ymouse rilevano la posizione del mouse ogni volta che quest'ultimo viene spostato, e la visualizzano nel campo di testo che è stato creato in fase di runtime. onClipEvent (load) { this.createTextField("coords_txt", this.getNextHighestDepth(), 0, 0, 100, 22); coords_txt.autoSize = true; coords_txt.selectable = false; } onClipEvent (mouseMove) { coords_txt.text = "X:"+_root._xmouse+",Y:"+_root._ymouse; } Vedere anche Key, _xmouse (proprietà MovieClip._xmouse), _ymouse (proprietà MovieClip._ymouse), Costanti Funzione ord ord(character) : Number Sconsigliata a partire da Flash Player 5. Questa funzione è stata sostituita dai metodi e dalle proprietà della classe String. Converte i caratteri in numeri di codice ASCII. Disponibilità Flash Lite 1.0 Parametri character:String - Il carattere da convertire in numero di codice ASCII. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 41 Elementi del linguaggio ActionScript Restituisce Number - Il numero di codice ASCII del carattere specificato. Vedere anche String, charCodeAt (metodo String.charCodeAt) Funzione parseFloat parseFloat(string:String) : Number Converte una stringa in un numero a virgola mobile. La funzione legge, o analizza, e restituisce i numeri in una stringa finché non trova un carattere che non fa parte del numero iniziale. Se la stringa non inizia con un numero che può essere analizzato, parseFloat() restituisce NaN. Lo spazio bianco che precede i numeri interi validi viene ignorato, allo stesso modo dei caratteri non numerici finali. Disponibilità Flash Lite 2.0 Parametri string:String - La stringa da leggere e convertire in numero a virgola mobile. Restituisce Number - Un numero o NaN (not a number). Esempio Gli esempi seguenti utilizzano la funzione parseFloat() per valutare vari tipi di numero: trace(parseFloat("-2")); // output: -2 trace(parseFloat("2.5")); // output: 2.5 trace(parseFloat(" 2.5")); // output: 2.5 trace(parseFloat("3.5e6")); // output: 3500000 trace(parseFloat("foobar")); // output: NaN trace(parseFloat("3.75math")); // output: 3.75 trace(parseFloat("0garbage")); // output: 0 Vedere anche Costante NaN, Funzione parseInt Funzione parseInt parseInt(expression:String [, radix:Number]) : Number Converte una stringa in un numero intero. Se la stringa specificata nei parametri non può essere convertita in numero, la funzione restituisce NaN. Le stringhe che iniziano con 0x vengono interpretate come numeri esadecimali. I numeri interi che iniziano con 0 o che specificano una radice di 8 vengono interpretati come numeri ottali. Lo spazio bianco che precede i numeri interi validi viene ignorato, allo stesso modo dei caratteri non numerici finali. Disponibilità Flash Lite 2.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 42 Elementi del linguaggio ActionScript Parametri expression:String - Una stringa da convertire in numero intero. radix:Number [opzionale] - Un numero intero che rappresenta la radice (base) del numero da analizzare. I valori accettabili sono quelli compresi tra 2 e 36. Restituisce Number - Un numero o NaN (not a number). Esempio Gli esempi in questa sezione utilizzano la funzione parseInt() per valutare vari tipi di numeri. L'esempio seguente restituisce 3: parseInt("3.5") L'esempio seguente restituisce NaN: parseInt("bar") L'esempio seguente restituisce 4: parseInt("4foo") L'esempio seguente mostra una conversione esadecimale che restituisce 1016: parseInt("0x3F8") L'esempio seguente mostra una conversione esadecimale che utilizza il parametro opzionale radix e che restituisce 1000: parseInt("3E8", 16) L'esempio seguente mostra una conversione binaria e restituisce 10, che è la rappresentazione decimale del valore binario 1010: parseInt("1010", 2) L'esempio seguente mostra l'analisi sintattica di un numero ottale e restituisce 511, che è la rappresentazione decimale del valore ottale 777: parseInt("0777") parseInt("777", 8) Vedere anche Costante NaN, Funzione parseFloat Funzione play play() : Void Sposta l'indicatore di riproduzione più avanti nella linea temporale. Disponibilità Flash Lite 1.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 43 Elementi del linguaggio ActionScript Esempio Nell'esempio seguente, le due istanze di clip filmato stop_mc e play_mc sono presenti nello stage. Il codice ActionScript interrompe la riproduzione del file SWF quando si fa clic sull'istanza di clip filmato stop_mc. La riproduzione viene riavviata quando si fa clic sull'istanza play_mc. this.stop_mc.onRelease = function() { stop(); }; this.play_mc.onRelease = function() { play(); }; trace("frame 1"); Vedere anche Funzione gotoAndPlay, gotoAndPlay (metodo MovieClip.gotoAndPlay) Funzione prevFrame prevFrame() : Void Invia l'indicatore di riproduzione al fotogramma precedente. Se il fotogramma corrente è il fotogramma 1, l'indicatore di riproduzione non si sposta. Disponibilità Flash Lite 1.0 Esempio Quando l'utente fa clic sul pulsante myBtn_btn e per tale pulsante viene collocato il codice ActionScript seguente su un fotogramma nella linea temporale, l'indicatore di riproduzione viene inviato al fotogramma precedente: stop(); this.myBtn_btn.onRelease = function(){ prevFrame(); }; Vedere anche Funzione nextFrame, prevFrame (metodo MovieClip.prevFrame) Funzione prevScene prevScene() : Void Invia l'indicatore di riproduzione al fotogramma 1 della scena precedente. Disponibilità Flash Lite 1.0 Vedere anche Funzione nextScene Funzione random random(value) : Number Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 44 Elementi del linguaggio ActionScript Sconsigliata a partire da Flash Player 5. Questa funzione è stata sconsigliata a favore di Math.random(). Restituisce un numero intero casuale compreso tra 0 e un valore inferiore al numero intero specificato nel parametro value. Disponibilità Flash Lite 1.1 Parametri value:Number - Un numero intero. Restituisce Number - Un numero intero casuale. Esempio L'utilizzo seguente di random() restituisce il valore 0, 1, 2, 3 o 4: random(5); Vedere anche random (metodo Math.random) Funzione removeMovieClip removeMovieClip(target:Object) Elimina il clip filmato specificato. Disponibilità Flash Lite 1.0 Parametri target:Object - Il percorso di destinazione di un'istanza di clip filmato creata con duplicateMovieClip() o il nome dell'istanza di un clip filmato creata con MovieClip.attachMovie(), MovieClip.duplicateMovieClip() o MovieClip.createEmptyMovieClip(). Esempio L'esempio seguente crea un nuovo clip filmato di nome myClip_mc e duplica il clip filmato. Al secondo filmato viene assegnato il nome newClip_mc. Le immagini vengono caricate in entrambi i clip filmato. Quando viene premuto il pulsante button_mc, il clip filmato duplicato viene rimosso dallo stage. this.createEmptyMovieClip("myClip_mc", this.getNextHighestDepth()); myClip_mc.loadMovie("http://www.helpexamples.com/flash/images/image1.jpg"); duplicateMovieClip(this.myClip_mc, "newClip_mc", this.getNextHighestDepth()); newClip_mc.loadMovie("http://www.helpexamples.com/flash/images/image1.jpg"); newClip_mc._x = 200; this.button_mc.onRelease = function() { removeMovieClip(this._parent.newClip_mc); }; Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 45 Elementi del linguaggio ActionScript Vedere anche Funzione duplicateMovieClip, duplicateMovieClip (metodo MovieClip.duplicateMovieClip), attachMovie (metodo MovieClip.attachMovie), removeMovieClip (metodo MovieClip.removeMovieClip)createEmptyMovieClip (metodo MovieClip.createEmptyMovieClip) Funzione setInterval setInterval(functionName:Object, interval:Number [, param1:Object, param2, ..., paramN]) : Number setInterval(objectName:Object, methodName:String, interval:Number [, param1:Object, param2, ..., paramN]) : Number Chiama una funzione, un metodo o un oggetto a intervalli regolari durante la riproduzione di un file SWF. È possibile utilizzare una funzione di intervallo per aggiornare le variabili da un database o la visualizzazione del tempo di riproduzione. Se interval è superiore alla frequenza dei fotogrammi del file SWF, la funzione di intervallo viene chiamata soltanto ogni volta che l'indicatore di riproduzione accede a un fotogramma. In questo modo si riduce al minimo l'impatto dei singoli aggiornamenti dello schermo. Nota: in Flash Lite 2.0, l'intervallo passato in questo metodo viene ignorato se è inferiore alla frequenza di fotogrammi del file SWF e la funzione di intervallo viene chiamata solo sull'intervallo della frequenza di fotogrammi SWF. Se l'intervallo è superiore alla frequenza di fotogrammi del file, l'evento viene chiamato sul fotogramma successivo dopo che l'intervallo è terminato. Disponibilità Flash Lite 2.0 Parametri functionName:Object - Un nome di funzione o un riferimento a una funzione anonima. interval:Number - Il tempo (espresso in millisecondi) che intercorre tra le chiamate ai parametri functionName o methodName. param:Object [opzionale] - Parametri passanti ai parametri functionName o methodName. Nel caso di più parametri, separarli mediante virgole: param1,param2, ...,paramN. objectName:Object - Un oggetto contenente il metodo methodName. methodName:String - Un metodo di objectName. Restituisce Number - Un numero intero identificativo che può essere trasmesso a clearInteval() per annullare l'intervallo. Esempio Uso 1: l'esempio seguente chiama una funzione anonima ogni 1000 millisecondi (1 secondo). setInterval( function(){ trace("interval called"); }, 1000 ); Uso 2: l'esempio seguente definisce due gestori di eventi e chiama ciascuno di essi. La prima chiamata a setInterval() chiama la funzione callback() che contiene un'istruzione trace(). La seconda chiamata a setInterval() passa la stringa "interval called" alla funzione callback2() sotto forma di parametro. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 46 Elementi del linguaggio ActionScript function callback1() { trace("interval called"); } function callback2(arg) { trace(arg); } setInterval( callback1, 1000 ); setInterval( callback2, 1000, "interval called" ); Uso 3: questo esempio utilizza un metodo di un oggetto. Utilizzare questa sintassi per chiamare un metodo che viene definito per un oggetto. obj = new Object(); obj.interval = function() { trace("interval function called"); } setInterval( obj, "interval", 1000 ); obj2 = new Object(); obj2.interval = function(s) { trace(s); } setInterval( obj2, "interval", 1000, "interval function called" ); Utilizzare la seconda forma della sintassi di setInterval() per chiamare un metodo di un oggetto, come illustrato nell'esempio seguente: setInterval( obj2, "interval", 1000, "interval function called" ); Quando si utilizza questa funzione, è opportuno fare attenzione alla memoria usata in un file SWF. Ad esempio, quando si rimuove un clip filmato da un file SWF, non viene rimossa un'eventuale funzione setInterval() in esecuzione al suo interno. Rimuovere sempre la funzione setInterval() mediante clearInterval() quando se ne è concluso l'utilizzo, come mostrato nell'esempio seguente: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 47 Elementi del linguaggio ActionScript // create an event listener object for our MovieClipLoader instance var listenerObjectbject = new Object(); listenerObject.onLoadInit = function(target_mc:MovieClip) { trace("start interval"); /* after the target movie clip loaded, create a callback which executes about every 1000 ms (1 second) and calls the intervalFunc function. */ target_mc.myInterval = setInterval(intervalFunc, 1000, target_mc); }; function intervalFunc(target_mc) { // display a trivial message which displays the instance name and arbitrary text. trace(target_mc+" has been loaded for "+getTimer()/1000+" seconds."); /* when the target movie clip is clicked (and released) you clear the interval and remove the movie clip. If you don't clear the interval before deleting the movie clip, the function still calls itself every second even though the movie clip instance is no longer present. */ target_mc.onRelease = function() { trace("clear interval"); clearInterval(this.myInterval); // delete the target movie clip removeMovieClip(this); }; } var jpeg_mcl:MovieClipLoader = new MovieClipLoader(); jpeg_mcl.addListener(listenerObject); jpeg_mcl.loadClip("http://www.helpexamples.com/flash/images/image1.jpg", this.createEmptyMovieClip("jpeg_mc", this.getNextHighestDepth())); Se si utilizza setInterval() all'interno delle classi, assicurarsi di utilizzare la parola chiave this quando si chiama la funzione. La funzione setInterval() non ha accesso ai membri delle classi se non si utilizza la parola chiave. Questo comportamento viene illustrato nell'esempio seguente. Per un file FLA dotato di un pulsante di nome deleteUser_btn, aggiungere il seguente codice ActionScript al fotogramma 1: var me:User = new User("Gary"); this.deleteUser_btn.onRelease = function() { trace("Goodbye, "+me.username); clearInterval(me.intervalID); delete me; }; Quindi, creare un file di nome User.as nella stessa directory del file FLA. Immettere il codice ActionScript seguente: class User { var intervalID:Number; var username:String; function User(param_username:String) { trace("Welcome, "+param_username); this.username = param_username; this.intervalID = setInterval(this, "traceUsername", 1000, this.username); } function traceUsername(str:String) { trace(this.username+" is "+getTimer()/1000+" seconds old, happy birthday."); } } Vedere anche Funzione clearInterval Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 48 Elementi del linguaggio ActionScript Funzione setProperty setProperty(target:Object, property:Object, expression:Object) : Void Modifica un valore di proprietà di un clip filmato durante la riproduzione del clip filmato. Disponibilità Flash Lite 1.0 Parametri target:Object - Il percorso del nome dell'istanza del clip filmato di cui si sta impostando la proprietà. property:Object - La proprietà da impostare. expression:Object - Il nuovo valore letterale della proprietà o un'equazione che restituisce il nuovo valore della proprietà. Esempio Il codice ActionScript seguente crea un nuovo clip filmato e vi carica un'immagine. Le coordinate _x e _y per il clip vengono impostate con setProperty(). Quando si seleziona il pulsante right_btn, la coordinata _x del clip filmato di nome params_mc viene incrementata di 20 pixel. this.createEmptyMovieClip("params_mc", 999); params_mc.loadMovie("http://www.helpexamples.com/flash/images/image1.jpg"); setProperty(this.params_mc, _y, 20); setProperty(this.params_mc, _x, 20); this.right_btn.onRelease = function() { setProperty(params_mc, _x, getProperty(params_mc, _x)+20); }; Vedere anche Funzione getProperty Funzione startDrag startDrag(target:Object [, lock:Boolean, left:Number, top:Number, right:Number, bottom:Number]) : Void Rende trascinabile il clip filmato target durante la riproduzione del filmato. È possibile trascinare solo un clip filmato alla volta. Dopo l'esecuzione di un'operazione startDrag(), il clip filmato rimane trascinabile finché non viene esplicitamente arrestato da stopDrag() oppure finché non viene chiamata un'azione startDrag() per un altro clip filmato. Nota: questo metodo è supportato in Flash Lite solo se System.capabilities.hasMouse è true o System.capabilities.hasStylus è true. Disponibilità Flash Lite 2.0 Parametri target:Object - Il percorso di destinazione del clip filmato da trascinare. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 49 Elementi del linguaggio ActionScript lock:Boolean [opzionale] - Valore booleano che specifica che il clip filmato trascinabile è bloccato al centro della posizione del mouse (true) oppure bloccato nel punto in cui l'utente aveva fatto clic sul clip filmato la prima volta (false). left,top,right,bottom:Number [opzionale] - Valori relativi alle coordinate del clip filmato principale, che indicano un rettangolo di delimitazione per il clip filmato. Esempio L'esempio seguente crea in fase di runtime il clip filmato pic_mc, che può essere trascinato da un utente in qualsiasi posizione associando le azioni startDrag() e stopDrag() al clip filmato. Un'immagine viene caricata in pic_mc mediante la classe MovieClipLoader. var pic_mcl:MovieClipLoader = new MovieClipLoader(); pic_mcl.loadClip("http://www.helpexamples.com/flash/images/image1.jpg", this.createEmptyMovieClip("pic_mc", this.getNextHighestDepth())); var listenerObject:Object = new Object(); listenerObject.onLoadInit = function(target_mc) { target_mc.onPress = function() { startDrag(this); }; target_mc.onRelease = function() { stopDrag(); }; }; pic_mcl.addListener(listenerObject); Vedere anche Funzione stopDrag, _droptarget (MovieClip._droptarget, proprietà), startDrag (metodo MovieClip.startDrag) Funzione stop stop() : Void Arresta il file SWF in esecuzione. Questa azione viene comunemente utilizzata per controllare i clip filmato mediante i pulsanti. Disponibilità Flash Lite 1.0 Vedere anche Funzione gotoAndStop, gotoAndStop (metodo MovieClip.gotoAndStop) Funzione stopAllSounds stopAllSounds() : Void Interrompe tutti i suoni attualmente riprodotti in un file SWF senza arrestare l'indicatore di riproduzione. La riproduzione dei suoni impostati per la ripetizione riprende quando l'indicatore di riproduzione arriva nei fotogrammi in cui si trovano tali suoni. Disponibilità Flash Lite 1.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 50 Elementi del linguaggio ActionScript Esempio Il codice seguente crea un campo di testo che visualizza le informazioni ID3 del brano. Viene creata una nuova istanza di oggetto Sound e il file MP3 viene caricato nel file SWF. Le informazioni ID3 vengono estratte dal file audio. Quando l'utente seleziona stop_mc la riproduzione dell'audio viene messa in pausa. Quando l'utente seleziona play_mc la riproduzione del brano riprende dal punto in cui era stata messa in pausa. this.createTextField("songinfo_txt", this.getNextHighestDepth, 0, 0, Stage.width, 22); var bg_sound:Sound = new Sound(); bg_sound.loadSound("yourSong.mp3", true); bg_sound.onID3 = function() { songinfo_txt.text = "(" + this.id3.artist + ") " + this.id3.album + " - " + this.id3.track + " - " + this.id3.songname; for (prop in this.id3) { trace(prop+" = "+this.id3[prop]); } trace("ID3 loaded."); }; this.play_mc.onRelease = function() { /* get the current offset. if you stop all sounds and click the play button, the MP3 continues from where it was stopped, instead of restarting from the beginning. */ var numSecondsOffset:Number = (bg_sound.position/1000); bg_sound.start(numSecondsOffset); }; this.stop_mc.onRelease = function() { stopAllSounds(); }; Vedere anche Sound Funzione stopDrag stopDrag() : Void Interrompe l'operazione di trascinamento corrente. Nota: questo metodo è supportato in Flash Lite solo se System.capabilities.hasMouse è true o System.capabilities.hasStylus è true. Disponibilità Flash Lite 2.0 Esempio Il codice seguente, collocato nella linea temporale principale, interrompe l'azione di trascinamento eseguita sull'istanza di clip filmato my_mc quando l'utente rilascia il pulsante del mouse: my_mc.onPress = function () { startDrag(this); } my_mc.onRelease = function() { stopDrag(); } Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 51 Elementi del linguaggio ActionScript Vedere anche Funzione startDrag, _droptarget (MovieClip._droptarget, proprietà), startDrag (metodo MovieClip.startDrag)stopDrag (metodo MovieClip.stopDrag) Funzione String String(expression:Object) : String Restituisce una rappresentazione sotto forma di stringa del parametro specificato, come descritto nell'elenco seguente: • Se expression è un numero, la stringa restituita è la rappresentazione sotto forma di testo del numero. • Se expression è una stringa, viene restituita la stringa expression. • Se expression è un oggetto, il valore restituito è una rappresentazione sotto forma di stringa dell'oggetto generato chiamando la proprietà stringa dell'oggetto o chiamando Object.toString() se questa proprietà non esiste. • Se expression è un valore booleano, la stringa restituita è "true" o "false". • Se expression è un clip filmato, viene restituito il percorso target del clip filmato mediante notazione a barra (/). Se expression è undefined, vengono restituiti i seguenti valori: • Nei file pubblicati per Flash Player 6 o versione precedente, il valore è una stringa vuota (""). • Nei file pubblicati per Flash Player 7 o versione successiva, il risultato è undefined. Nota: la notazione a barra non è supportata in ActionScript 2.0. Disponibilità Flash Lite 1.0 Parametri expression:Object - Un'espressione che consente di convertire in stringa. Restituisce String - Una stringa. Esempio Nell'esempio seguente, il codice ActionScript viene utilizzato per convertire in stringa le espressioni specificate: var string1:String = String("3"); var string2:String = String("9"); trace(string1+string2); // output: 39 Dal momento che entrambi i parametri sono costituiti da stringhe, i valori non vengono aggiunti bensì concatenati. Vedere anche toString (metodo Number.toString), toString (metodo Object.toString), String, Operatore " (delimitatore di stringa) Funzione substring substring("string", index, count) : String Sconsigliata a partire da Flash Player 5. Questa funzione è stata sconsigliata a favore di String.substr(). Estrae parte di una stringa. Questa funzione è a base uno, mentre i metodi dell'oggetto String sono a base zero. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 52 Elementi del linguaggio ActionScript Disponibilità Flash Lite 1.0 Parametri string:String - La stringa da cui estrarre la nuova stringa. index:Number - Il numero del primo carattere da estrarre. count:Number - Il numero di caratteri da includere nella stringa estratta, escluso il carattere index. Restituisce String - La sottostringa estratta. Vedere anche substr (metodo String.substr) Funzione targetPath targetpath(targetObject:Object) : String Restituisce una stringa che contiene il percorso di destinazione di un oggetto MovieClip, Button o TextField. Il percorso target viene restituito mediante notazione del punto (.); per recuperare il percorso target sotto forma di notazione a barra (/), utilizzare la proprietà _target. Disponibilità Flash Lite 2.0 Parametri targetObject:Object - Un riferimento (ad esempio _root o _parent) all'oggetto del quale si sta recuperando il percorso target. Può essere un oggetto MovieClip, Button o TextField. Restituisce String - Una stringa contenente il percorso target del clip filmato specificato. Esempio Nell'esempio seguente viene tracciato il percorso di destinazione di un clip filmato non appena viene caricato: this.createEmptyMovieClip("myClip_mc", this.getNextHighestDepth()); trace(targetPath(myClip_mc)); // _level0.myClip_mc Vedere anche Funzione eval Funzione tellTarget tellTarget("target") { statement(s); } Sconsigliata a partire da Flash Player 5. Adobe consiglia di utilizzare la notazione del punto (.) e l'istruzione with. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 53 Elementi del linguaggio ActionScript Applica le istruzioni specificate nel parametro statements alla linea temporale specificata nel parametro target. L'azione tellTarget è utile per i controlli di navigazione. Assegnare tellTarget ai pulsanti che arrestano o avviano i clip filmato in qualche altro punto dello stage. Inoltre, è possibile fare in modo che i clip filmato si spostino in un fotogramma particolare della clip. Ad esempio è possibile assegnare tellTarget a pulsanti che arrestano o avviano clip filmato sullo stage o che richiedano ai clip filmato di passare a un fotogramma particolare. In Flash 5 o versioni successive, è possibile utilizzare la notazione (.) anziché l'azione tellTarget. È possibile utilizzare l'azione with per eseguire più azioni sulla stessa linea temporale. È possibile utilizzare l'azione with in modo che venga applicata a qualunque oggetto, mentre l'azione tellTarget può essere applicata solo ai clip filmato. Disponibilità Flash Lite 1.0 Parametri target:String - Una stringa che specifica il percorso di destinazione della linea temporale da controllare. statement(s):Object - Le istruzioni da eseguire se la condizione restituisce true. Esempio Questa istruzione tellTarget controlla l'istanza di clip filmato denominata ball sulla linea temporale principale. Il fotogramma 1 dell'istanza di ball è vuoto e su di esso è presente un'azione stop() in modo che non sia visibile sullo stage. Quando si fa clic sul pulsante con l'azione seguente, tellTarget indica all'indicatore di riproduzione presente in ball di passare al fotogramma 2, che è il punto in cui inizia l'animazione: on(release) { tellTarget("_parent.ball") { gotoAndPlay(2); } } L'esempio seguente utilizza la notazione del punto (.) per ottenere lo stesso risultato: on(release) { _parent.ball.gotoAndPlay(2); } Se è necessario eseguire più comandi per l'istanza di ball, è possibile utilizzare l'azione with, come mostrato nell'istruzione seguente: on(release) { with(_parent.ball) { gotoAndPlay(2); _alpha = 15; _xscale = 50; _yscale = 50; } } Vedere anche Istruzione with Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 54 Elementi del linguaggio ActionScript Funzione toggleHighQuality toggleHighQuality() Sconsigliata a partire da Flash Player 5. Questa funzione è stata sconsigliata a favore di _quality. Attiva e disattiva l'antialiasing in Flash Player. L'antialiasing smussa i bordi degli oggetti e rallenta la riproduzione dei file SWF. L'azione agisce su tutti i file SWF in Flash Player. Disponibilità Flash Lite 1.0 Esempio Ad esempio, il codice seguente può essere applicato a un pulsante che, una volta premuto, attiva e disattiva l'antialiasing: on(release) { toggleHighQuality(); } Vedere anche Proprietà _highquality, Proprietà _quality Funzione trace trace(expression:Object) È possibile utilizzare Flash Debug Player per acquisire l'output della funzione trace() e scriverlo nel file di registro. Istruzione; valuta l'espressione e visualizza il risultato nel pannello Output nella modalità di prova. Utilizzare questa istruzione per registrare le note di programmazione o visualizzare i messaggi nel pannello Output durante la prova di un file SWF. Utilizzare il parametro expression per verificare l'esistenza di una condizione o per visualizzare i valori nel pannello Output. L'istruzione trace() è simile alla funzione alert di JavaScript. Il comando Ometti azioni Trace nella finestra di dialogo Impostazioni pubblicazione consente di rimuovere le azioni trace() dal file SWF esportato. Disponibilità Flash Lite 1.0 Parametri expression:Object - Un'espressione da valutare. Quando un file SWF viene aperto nello strumento di creazione Flash (mediante il comando Prova filmato), il valore del parametro expression viene visualizzato nel pannello Output. Esempio L'esempio seguente utilizza un'istruzione trace() per visualizzare nel pannello Output i metodi e le proprietà del campo di testo error_txt che è stato creato dinamicamente: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 55 Elementi del linguaggio ActionScript this.createTextField("error_txt", this.getNextHighestDepth(), 0, 0, 100, 22); for (var i in error_txt) { trace("error_txt."+i+" = "+error_txt[i]); } /* output: error_txt.styleSheet = undefined error_txt.mouseWheelEnabled = true error_txt.condenseWhite = false ... error_txt.maxscroll = 1 error_txt.scroll = 1 */ Funzione unescape unescape(x:String) : String Valuta il parametro x come stringa, decodifica la stringa dal formato URL (convertendo tutte le sequenze esadecimali in caratteri ASCII) e restituisce la stringa. Disponibilità Flash Lite 1.1 Parametri string:String - Una stringa con sequenze esadecimali da decodificare mediante escape. Restituisce String - Una stringa decodificata di un parametro in formato URL. Esempio L'esempio seguente mostra il processo di conversione da escape a unescape: var email:String = "[email protected]"; trace(email); var escapedEmail:String = escape(email); trace(escapedEmail); var unescapedEmail:String = unescape(escapedEmail); trace(unescapedEmail); Il risultato seguente viene visualizzato nel pannello Output. [email protected] user%40somedomain%2Ecom [email protected] Funzione unloadMovie unloadMovie(target:MovieClip) : Void unloadMovie(target:String) : Void Rimuove un clip filmato caricato mediante loadMovie() da Flash Player. Per scaricare un clip filmato caricato tramite loadMovieNum(), usare unloadMovieNum() anziché unloadMovie(). Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 56 Elementi del linguaggio ActionScript Disponibilità Flash Lite 1.1 Parametri target - Il percorso target di un clip filmato. Questo parametro può essere una stringa (ad esempio, "my_mc") oppure un riferimento diretto all'istanza del clip filmato (ad esempio, my_mc). I parametri che possono accettare più tipi di dati vengono indicati con il tipo Object. Esempio L'esempio seguente crea un nuovo clip filmato di nome pic_mc e carica un'immagine nel clip. Viene caricato mediante la classe MovieClipLoader. Quando si fa clic sull'immagine, il clip filmato viene scaricato dal file SWF: var pic_mcl:MovieClipLoader = new MovieClipLoader(); pic_mcl.loadClip("http://www.helpexamples.com/flash/images/image1.jpg", this.createEmptyMovieClip("pic_mc", this.getNextHighestDepth())); var listenerObject:Object = new Object(); listenerObject.onLoadInit = function(target_mc) { target_mc.onRelease = function() { unloadMovie(pic_mc); /* or you could use the following, which refers to the movie clip referenced by 'target_mc'. */ //unloadMovie(this); }; }; pic_mcl.addListener(listenerObject); Vedere anche loadMovie (metodo MovieClip.loadMovie), unloadClip (metodo MovieClipLoader.unloadClip) Funzione unloadMovieNum unloadMovieNum(level:Number) : Void Rimuove un file SWF o un'immagine caricati da Flash Player mediante loadMovieNum(). Per scaricare un file SWF o un'immagine caricata tramite MovieClip.loadMovieNum(), usare unloadMovie() anziché unloadMovieNum(). Disponibilità Flash Lite 1.1 Parametri level:Number - Il livello (_level N ) di un filmato caricato. Esempio L'esempio seguente carica un'immagine in un file SWF. Quando si seleziona unload_btn, il contenuto caricato viene rimosso. loadMovieNum("yourimage.jpg", 1); unload_btn.onRelease = function() { unloadMovieNum(1); } GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 57 Ultimo aggiornamento 4/5/2010 Elementi del linguaggio ActionScript Vedere anche Funzione loadMovieNum, Funzione unloadMovie, loadMovie (metodo MovieClip.loadMovie) Proprietà globali Le proprietà globali sono disponibili in tutti gli script e visibili a tutte le linee temporali e aree di validità del documento. Ad esempio, le proprietà globali consentono l'accesso alle linee temporali di altri clip filmato caricati, sia relative (_parent) che assolute (_root). Inoltre, consentono di limitare (this) o espandere (super) l'area di validità. È possibile utilizzare le proprietà globali per modificare le impostazioni di runtime quali l'accessibilità da parte degli screen reader, la qualità di riproduzione e le dimensioni del buffer audio. Riepilogo delle proprietà globali Modificatori Proprietà Descrizione $version Sconsigliata a partire da Flash Lite Player 2.0. Questa azione è stata sconsigliata a favore della proprietà System.capabilities.version. Contiene il numero di versione di Flash Lite. _cap4WayKeyAS Sconsigliata a partire da Flash Lite Player 2.0. Questa azione è stata sconsigliata a favore della proprietà System.capabilities.has4WayKeyAS. Indica se Flash Lite esegue le espressioni ActionScript associate ai gestori di eventi di tastiera associati ai tasti freccia Su, Giù, Pag su e Pag giù. _capCompoundSound Sconsigliata a partire da Flash Lite Player 2.0. Questa azione è stata sconsigliata a favore della proprietà System.capabilities.hasCompoundSound. Indica se Flash Lite può elaborare i dati audio composti. _capEmail Sconsigliata a partire da Flash Lite Player 2.0. Questa azione è stata sconsigliata a favore della proprietà System.capabilities.hasEmail. Indica se il client Flash Lite può inviare messaggi e-mail mediante il comando GetURL() di ActionScript. _capLoadData Sconsigliata a partire da Flash Lite Player 2.0. Questa azione è stata sconsigliata a favore della proprietà System.capabilities.hasDataLoading. Indica se l'applicazione host può caricare dinamicamente dati aggiuntivi mediante delle chiamate alle funzioni loadMovie(), loadMovieNum(), loadVariables() e loadVariablesNum(). _capMFi Sconsigliata a partire da Flash Lite Player 2.0. Questa azione è stata sconsigliata a favore della proprietà System.capabilities.hasMFi. Indica se il dispositivo è in grado di riprodurre i dati audio nel formato audio MFi (Melody Format per imode). GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 58 Ultimo aggiornamento 4/5/2010 Elementi del linguaggio ActionScript Modificatori Proprietà Descrizione _capMIDI Sconsigliata a partire da Flash Lite Player 2.0. Questa azione è stata sconsigliata a favore della proprietà System.capabilities.hasMIDI. Indica se il dispositivo è in grado di riprodurre i dati audio nel formato audio MIDI (Musical Instrument Digital Interface). _capMMS Sconsigliata a partire da Flash Lite Player 2.0. Questa azione è stata sconsigliata a favore della proprietà System.capabilities.hasMMS. Indica se Flash Lite è in grado di inviare messaggi MMS (Multimedia Messaging Service) mediante il comando GetURL() di ActionScript. In tal caso, questa variabile è definita e ha il valore 1; in caso contrario, è undefined. _capSMAF Sconsigliata a partire da Flash Lite Player 2.0. Questa azione è stata sconsigliata a favore della proprietà System.capabilities.hasSMAF. Indica se il dispositivo è in grado di riprodurre i file multimediali in formato SMAF (Synthetic Music Mobile Application Format). In tal caso, questa variabile è definita e ha il valore 1; in caso contrario, è undefined. _capSMS Sconsigliata a partire da Flash Lite Player 2.0. Questa azione è stata sconsigliata a favore della proprietà System.capabilities.hasSMS. Indica se Flash Lite è in grado di inviare messaggi SMS (Short Message Service) mediante il comando GetURL() di ActionScript. _capStreamSound Sconsigliata a partire da Flash Lite Player 2.0. Questa azione è stata sconsigliata a favore della proprietà System.capabilities.hasStreamingAudio. Indica se il dispositivo può riprodurre audio in streaming (sincronizzato). _focusrect Proprietà (globale); specifica se un rettangolo giallo viene visualizzato attorno al pulsante o al clip filmato che viene attivato mediante tastiera. _forceframerate Indica al lettore di Flash Lite di eseguire il rendering alla frequenza di fotogrammi specificata. _global Un riferimento all'oggetto globale che contiene le classi ActionScript principali, quali String, Object, Math e Array. _highquality Sconsigliata a partire da Flash Player 5. Questa proprietà è stata sconsigliata a favore di _quality. Specifica il livello di antialiasing applicato al file SWF corrente. _level Un riferimento alla linea temporale principale di _levelN. maxscroll Sconsigliata a partire da Flash Player 5. Questa proprietà è stata sconsigliata a favore di TextField.maxscroll. Indica il numero della prima riga in alto del testo visibile all'interno di un campo di testo in cui è visibile anche l'ultima riga in basso. _parent Specifica o restituisce un riferimento al clip filmato o all'oggetto che contiene il clip filmato o l'oggetto corrente. GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 59 Ultimo aggiornamento 4/5/2010 Elementi del linguaggio ActionScript Modificatori Proprietà Descrizione _quality Imposta o recupera la qualità di rendering utilizzata per un clip filmato. _root Specifica o restituisce un riferimento alla linea temporale principale del clip filmato. scroll Sconsigliata a partire da Flash Player 5. Questa proprietà è stata sconsigliata a favore di TextField.scroll. Controlla la visualizzazione delle informazioni in un campo di testo associato a una variabile. _soundbuftime Stabilisce il numero di secondi dell'audio in streaming da inserire nel buffer. this Fa riferimento a un oggetto o all'istanza di un clip filmato. Proprietà $version $version Sconsigliata a partire da Flash Lite Player 2.0. Questa azione è stata sconsigliata a favore della proprietà System.capabilities.version. Variabile stringa; contiene il numero di versione di Flash Lite. Sono indicati un numero di versione principale, un numero di versione minore, il numero della build e un numero di build interno, che generalmente è 0 in tutte le versioni rilasciate al pubblico. Il numero di versione principale riportato per tutti i prodotti Flash Lite 1.x è 5. Flash Lite 1.0 ha il numero di versione minore 1; Flash Lite 1.1 ha il numero di versione minore 2. Disponibilità Flash Lite 1.1 Esempio In Flash Lite Player 1.1, il codice seguente imposta il valore di myVersion su "5, 2, 12, 0": myVersion = $version; Vedere anche version (proprietà capabilities.version) Proprietà _cap4WayKeyAS _cap4WayKeyAS Sconsigliata a partire da Flash Lite Player 2.0. Questa azione è stata sconsigliata a favore della proprietà System.capabilities.has4WayKeyAS. Variabile numerica; indica se Flash Lite esegue le espressioni ActionScript associate ai gestori di eventi di tastiera associati ai tasti freccia Su, Giù, Pag su e Pag giù. Questa variabile è definita e ha un valore 1 solo quando l'applicazione host utilizza la modalità di navigazione a quattro direzioni per spostarsi tra i controlli di Flash (pulsanti e campi di testo di input). In caso contrario, questa variabile è undefined. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 60 Elementi del linguaggio ActionScript Quando uno dei tasti a quattro direzioni viene premuto, se il valore della variabile _cap4WayKeyAS è 1, Flash Lite cerca innanzi tutto il gestore per il tasto. Se non ne viene trovato nessuno, viene utilizzata la navigazione mediante i controlli di Flash. Tuttavia, se viene trovato un gestore di eventi, per il tasto non viene eseguita alcuna azione di navigazione. Ad esempio, se viene trovato un gestore relativo alla pressione del tasto freccia Giù, l'utente non può navigare. Disponibilità Flash Lite 1.1 Esempio L'esempio seguente imposta canUse4Way su 1 in Flash Lite 1.1, ma non lo definisce in Flash Lite 1.0 (tuttavia, non tutti i telefoni dotati di Flash Lite 1.1 supportano i tasti a quattro direzioni, pertanto questo codice dipende sempre dall'apparecchio): canUse4Way = _cap4WayKeyAS; if (canUse4Way == 1) { msg = "Use your directional joypad to navigate this application"; } else { msg = "Please use the 2 key to scroll up, the 6 key to scroll right, the 8 key to scroll down, and the 4 key to scroll left."; } Vedere anche capabilities (System.capabilities) Proprietà _capCompoundSound _capCompoundSound Sconsigliata a partire da Flash Lite Player 2.0. Questa azione è stata sconsigliata a favore della proprietà System.capabilities.hasCompoundSound. Variabile numerica: indica se Flash Lite può elaborare i dati audio composti. In tal caso, questa variabile è definita e ha il valore 1; in caso contrario, è undefined. Ad esempio, un file Flash singolo può contenere lo stesso suono rappresentato in formato sia MIDI che MFi. Il lettore riproduce i dati nel formato appropriato in base al formato supportato dal dispositivo. Questa variabile definisce se Flash Lite Player supporta questa funzione per il microtelefono corrente. Disponibilità Flash Lite 1.1 Esempio Nell'esempio seguente, useCompoundSound viene impostato su 1 in Flash Lite 1.1, ma non viene definito in Flash Lite 1.0: useCompoundSound = _capCompoundSound; if (useCompoundSound == 1) { gotoAndPlay("withSound"); } else { gotoAndPlay("withoutSound"); Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 61 Elementi del linguaggio ActionScript Vedere anche capabilities (System.capabilities) Proprietà _capEmail _capEmail Sconsigliata a partire da Flash Lite Player 2.0. Questa azione è stata sconsigliata a favore della proprietà System.capabilities.hasEmail. Variabile numerica; indica se il client Flash Lite può inviare messaggi e-mail mediante il comando GetURL() di ActionScript. In tal caso, questa variabile è definita e ha il valore 1; in caso contrario, è undefined. Disponibilità Flash Lite 1.1 Esempio Se l'applicazione host è in grado di inviare messaggi e-mail mediante il comando GetURL() di ActionScript, l'esempio seguente imposta canEmail su 1: canEmail = _capEmail; if (canEmail == 1) { getURL("mailto:[email protected]?subject=foo&body=bar"); } Vedere anche capabilities (System.capabilities) Proprietà _capLoadData _capLoadData Sconsigliata a partire da Flash Lite Player 2.0. Questa azione è stata sconsigliata a favore della proprietà System.capabilities.hasDataLoading. Variabile numerica; indica se l'applicazione host può caricare dinamicamente dati aggiuntivi mediante delle chiamate alle funzioni loadMovie(), loadMovieNum(), loadVariables() e loadVariablesNum(). In tal caso, questa variabile è definita e ha il valore 1; in caso contrario, è undefined. Disponibilità Flash Lite 1.1 Esempio Se l'applicazione host è in grado di effettuare il caricamento dinamico di filmati e variabili, l'esempio seguente imposta CanLoad su 1: canLoad = _capLoadData; if (canLoad == 1) { loadVariables("http://www.somewhere.com/myVars.php", GET); } else { trace ("client does not support loading dynamic data"); } Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 62 Elementi del linguaggio ActionScript Vedere anche capabilities (System.capabilities) Proprietà _capMFi _capMFi Sconsigliata a partire da Flash Lite Player 2.0. Questa azione è stata sconsigliata a favore della proprietà System.capabilities.hasMFi. Variabile numerica; indica se il dispositivo è in grado di riprodurre i dati audio nel formato audio MFi (Melody Format per imode). In tal caso, questa variabile è definita e ha il valore 1; in caso contrario, è undefined. Disponibilità Flash Lite 1.1 Esempio Se il dispositivo è in grado di riprodurre i dati audio MFi, l'esempio seguente imposta canMFi su 1: canMFi = _capMFi; if (canMFi == 1) { // send movieclip buttons to frame with buttons that trigger events sounds tellTarget("buttons") { gotoAndPlay(2); } } Vedere anche hasMFI (proprietà capabilities.hasMFI) Proprietà _capMIDI _capMIDI Sconsigliata a partire da Flash Lite Player 2.0. Questa azione è stata sconsigliata a favore della proprietà System.capabilities.hasMIDI. Variabile numerica; indica se il dispositivo è in grado di riprodurre i dati audio nel formato audio MIDI (Musical Instrument Digital Interface). In tal caso, questa variabile è definita e ha il valore 1; in caso contrario, è undefined. Disponibilità Flash Lite 1.1 Esempio Se il dispositivo è in grado di riprodurre i dati audio MIDI, l'esempio seguente imposta _capMIDI su 1: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 63 Elementi del linguaggio ActionScript canMIDI = _capMIDI; if (canMIDI == 1) { // send movieclip buttons to frame with buttons that trigger events sounds tellTarget("buttons") { gotoAndPlay(2); } } Vedere anche capabilities (System.capabilities) Proprietà _capMMS _capMMS Sconsigliata a partire da Flash Lite Player 2.0. Questa azione è stata sconsigliata a favore della proprietà System.capabilities.hasMMS. Variabile numerica; indica se Flash Lite è in grado di inviare messaggi MMS (Multimedia Messaging Service) mediante il comando GetURL() di ActionScript. In tal caso, questa variabile è definita e ha il valore 1; in caso contrario, è undefined. Disponibilità Flash Lite 1.1 Esempio L'esempio seguente imposta canMMS su 1 in Flash Lite 1.1, ma non lo definisce in Flash Lite 1.0 (tuttavia, non tutti i telefoni dotati di Flash Lite 1.1 supportano l'invio di messaggi MMS, pertanto questo codice dipende sempre dall'apparecchio): on(release) { canMMS = _capMMS; if (canMMS == 1) { // send an MMS myMessage = "mms:4156095555?body=sample mms message"; } else { // send an SMS myMessage = "sms:4156095555?body=sample sms message"; } getURL(myMessage); } Vedere anche capabilities (System.capabilities) Proprietà _capSMAF _capSMAF Sconsigliata a partire da Flash Lite Player 2.0. Questa azione è stata sconsigliata a favore della proprietà System.capabilities.hasSMAF. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 64 Elementi del linguaggio ActionScript Variabile numerica; indica se il dispositivo è in grado di riprodurre i file multimediali in formato SMAF (Synthetic Music Mobile Application Format). In tal caso, questa variabile è definita e ha il valore 1; in caso contrario, è undefined. Disponibilità Flash Lite 1.1 Esempio L'esempio seguente imposta canSMAF su 1 in Flash Lite 1.1, ma non lo definisce in Flash Lite 1.0 (tuttavia, non tutti i telefoni dotati di Flash Lite 1.1 supportano l'invio di messaggi SMAF, pertanto questo codice dipende sempre dall'apparecchio): canSMAF = _capSMAF; if (canSMAF) { // send movieclip buttons to frame with buttons that trigger events sounds tellTarget("buttons") { gotoAndPlay(2); } } Vedere anche capabilities (System.capabilities) Proprietà _capSMS _capSMS Sconsigliata a partire da Flash Lite Player 2.0. Questa azione è stata sconsigliata a favore della proprietà System.capabilities.hasSMS. Indica se Flash Lite è in grado di inviare messaggi SMS (Short Message Service) mediante il comando GetURL() di ActionScript. In tal caso, questa variabile è definita e ha il valore 1; in caso contrario, è undefined. Disponibilità Flash Lite 1.1 Esempio L'esempio seguente imposta canSMS su 1 in Flash Lite 1.1, ma non lo definisce in Flash Lite 1.0 (tuttavia, non tutti i telefoni dotati di Flash Lite 1.1 supportano l'invio di messaggi SMS, pertanto questo codice dipende sempre dall'apparecchio): on(release) { canSMS = _capSMS; if (canSMS) { // send an SMS myMessage = "sms:4156095555?body=sample sms message"; getURL(myMessage); } } Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 65 Elementi del linguaggio ActionScript Vedere anche capabilities (System.capabilities) Proprietà _capStreamSound _capStreamSound Sconsigliata a partire da Flash Lite Player 2.0. Questa azione è stata sconsigliata a favore della proprietà System.capabilities.hasStreamingAudio. Variabile numerica; indica se il dispositivo può riprodurre audio in streaming (sincronizzato). In tal caso, questa variabile è definita e ha il valore 1; in caso contrario, è undefined. Disponibilità Flash Lite 1.1 Esempio L'esempio seguente riproduce l'audio in streaming se canStreamSound è abilitato: on(press) { canStreamSound = _capStreamSound; if (canStreamSound) { // play a streaming sound in a movieclip with this button tellTarget("music") { gotoAndPlay(2); } } } Vedere anche capabilities (System.capabilities) Proprietà _focusrect _focusrect = Boolean; Specifica se attorno al pulsante o al clip filmato che viene attivato mediante tastiera viene visualizzato un rettangolo giallo. Se _focusrect è impostata sul valore predefinito true, un rettangolo giallo viene visualizzato attorno al pulsante o clip filmato corrente nel momento in cui l'utente preme il tasto di tabulazione per passare da un oggetto all'altro in un file SWF. Specificare false per fare in modo che il rettangolo giallo non venga visualizzato. Questa proprietà può essere sostituita per istanze specifiche. Se la proprietà _focusrect globale è impostata su false, il comportamento predefinito per tutti i pulsanti e i clip filmato prevede che la navigazione mediante tastiera sia limitata al tasto Tab. Tutti gli altri tasti vengono ignorati, compresi Invio e i tasti freccia. Per ripristinare la navigazione mediante tutta la tastiera, è necessario impostare _focusrect su true. Per ripristinare la completa funzionalità da tastiera per un pulsante o un clip filmato specifico, è possibile sostituire questa proprietà globale mediante Button._focusrect o MovieClip._focusrect. Nota: se si utilizza un componente, FocusManager ha la priorità sulla gestione dell'attivazione di Flash Player, compresa questa proprietà globale. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 66 Elementi del linguaggio ActionScript Nota: nel lettore di Flash Lite 2.0, quando la proprietà _focusrect è disabilitata (ad esempio, Button.focusRect = false o MovieClip.focusRect = false), il pulsante o il clip filmato ricevono comunque tutti gli eventi. Questo comportamento è diverso rispetto al lettore di Flash, dove, se la proprietà _focusrect è disabilitata, il pulsante o il clip filmato ricevono gli eventi rollOver e rollOut ma non gli eventi press e release. Inoltre, in Flash Lite 2.0, è possibile modificare il colore del rettangolo di attivazione mediante il comando SetFocusRectColor. Al contrario, in Flash Player, il rettangolo di attivazione può essere solo di colore giallo. Disponibilità Flash Lite 1.0 Esempio L'esempio seguente mostra come nascondere il rettangolo giallo attorno a tutte le istanze di un file SWF quando queste sono state attivate mediante tastiera in una finestra del browser. Creare alcuni pulsanti o clip filmato e aggiungere il codice ActionScript seguente nel fotogramma 1 della linea temporale: _focusrect = false; Vedere anche _focusrect (proprietà Button._focusrect), _focusrect (proprietà MovieClip._focusrect) Proprietà _forceframerate _forceframerate Se impostata su true questa proprietà indica al lettore di Flash Lite di eseguire il rendering alla frequenza di fotogrammi specificata. Se nel contenuto è presente audio per dispositivi, questa proprietà può essere utilizzata per audio pseudo-sincronizzato. L'impostazione predefinita è false che indica a Flash Lite di eseguire il rendering normalmente. Se impostata su true, il lettore Flash Lite potrebbe non eseguire il rendering di alcuni fotogrammi al fine di mantenere la frequenza di fotogrammi. Disponibilità Flash Lite 2.0 Proprietà _global _global.identifier Un riferimento all'oggetto globale che contiene le classi ActionScript principali, quali String, Object, Math e Array. Ad esempio, è possibile creare una libreria che sia visibile come un oggetto ActionScript globale, simile agli oggetti Math e Date. A differenza delle variabili e funzioni dichiarate localmente o nella linea temporale, le variabili e funzioni globali sono visibili in tutte le linee temporali e aree di validità del file SWF, a condizione che non siano oscurate da identificatori con nomi uguali nelle aree di validità interne. Nota: durante l'impostazione del valore di una variabile globale, è necessario utilizzare il nome completo della variabile, ad esempio _global.variableName. In caso contrario verrebbe creata una variabile locale con lo stesso nome che oscurerebbe quella globale che si sta cercando di impostare. Disponibilità Flash Lite 2.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 67 Elementi del linguaggio ActionScript Restituisce Un riferimento all'oggetto globale che contiene le classi ActionScript principali, quali String, Object, Math e Array. Esempio L'esempio seguente crea la funzione di primo livello factorial() disponibile per ogni linea temporale e area di validità in un file SWF: _global.factorial = function(n:Number) { if (n<=1) { return 1; } else { return n*factorial(n-1); } } // Note: factorial 4 == 4*3*2*1 == 24 trace(factorial(4)); // output: 24 L'esempio seguente mostra il modo in cui il mancato utilizzo del nome completo di una variabile quando si imposta il valore di quest'ultima porta a risultati imprevisti: _global.myVar = "global"; trace("_global.myVar: " + _global.myVar); // _global.myVar: global trace("myVar: " + myVar); // myVar: global myVar = "local"; trace("_global.myVar: " + _global.myVar); // _global.myVar: global trace("myVar: " + myVar); // myVar: local Vedere anche Istruzione set variable Proprietà _highquality _highquality Sconsigliata a partire da Flash Player 5. Questa proprietà è stata sconsigliata a favore di _quality. Specifica il livello di antialiasing applicato al file SWF corrente. Specificare 2 (migliore qualità) per applicare la qualità migliore. Specificare 1 (alta qualità) per applicare l'antialiasing. Specificare 0 (bassa qualità) per impedire l'antialiasing. Disponibilità Flash Lite 1.0 Esempio Il codice ActionScript seguente viene collocato nella linea temporale principale e imposta la proprietà quality globale in modo che venga applicato l'antialiasing. _highquality = 1; Vedere anche Proprietà _quality Proprietà _level _levelN Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 68 Elementi del linguaggio ActionScript Un riferimento alla linea temporale principale di _levelN. Utilizzare loadMovieNum() per caricare i file SWF in Flash Player prima di indicarli come destinazione mediante la proprietà _level. È anche possibile servirsi di _levelN per indicare come destinazione un file SWF al livello assegnato da N. Il file SWF inizialmente caricato in un'istanza di Flash Player viene automaticamente caricato in _level0. Il file SWF in _level0 imposta la frequenza dei fotogrammi, il colore di sfondo e le dimensioni dei fotogrammi per tutti i file SWF che vengono caricati successivamente. I file vengono quindi ordinati nei livelli con numeri più alti, sopra il file SWF in _level0. È necessario assegnare un livello a ciascun file SWF che viene caricato in Flash Player mediante loadMovieNum(). I livelli possono essere assegnati in qualsiasi ordine. Se si assegna un livello che contiene già un file SWF (compreso _level0), il file che si trova in quel livello viene scaricato e sostituito dal nuovo file SWF. Disponibilità Flash Lite 1.0 Esempio L'esempio seguente arresta l'indicatore di riproduzione nella linea temporale principale del file SWF sub.swf che viene caricato in _level9. Il file sub.swf contiene l'animazione e si trova nella stessa directory del documento che contiene il seguente codice ActionScript: loadMovieNum("sub.swf", 9); myBtn_btn.onRelease = function() { _level9.stop(); }; È possibile sostituire _level9.stop dell'esempio precedente con il codice seguente: _level9.gotoAndStop(5); Questa azione, anziché arrestare l'indicatore di riproduzione della linea temporale principale del file SWF in _level9(), lo invia al fotogramma 5. Vedere anche Funzione loadMovie, swapDepths (metodo MovieClip.swapDepths) Proprietà maxscroll variable_name.maxscroll Sconsigliata a partire da Flash Player 5. Questa proprietà è stata sconsigliata a favore di TextField.maxscroll. Indica il numero della prima riga in alto del testo visibile all'interno di un campo di testo in cui è visibile anche l'ultima riga in basso. La proprietà maxscroll agisce in combinazione con la proprietà scroll per controllare il modo in cui vengono visualizzate le informazioni in un campo di testo. La proprietà può essere recuperata, ma non modificata. Disponibilità Flash Lite 1.1 Vedere anche maxscroll (proprietà TextField.maxscroll), scroll (proprietà TextField.scroll) GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 69 Ultimo aggiornamento 4/5/2010 Elementi del linguaggio ActionScript Proprietà _parent _parent.property _parent._parent.property Specifica o restituisce un riferimento al clip filmato o all'oggetto che contiene il clip filmato o l'oggetto corrente. L'oggetto corrente è l'oggetto che contiene il codice ActionScript che fa riferimento a _parent. Utilizzare _parent per specificare un percorso relativo dei clip filmati oppure oggetti che si trovano sopra il clip filmato oppure l'oggetto corrente. Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente, sullo stage è presente un clip filmato con il nome di istanza square_mc. All'interno del clip filmato si trova un altro clip filmato con il nome di istanza circle_mc. Il codice ActionScript seguente consente di modificare l'istanza circle_mc principale (square_mc) quando si fa clic sul cerchio. Quando si utilizza il sistema di indirizzi relativi (ovvero, quando si utilizza _parent anziché _root), può risultare più semplice usare come prima cosa il pulsante Inserisci percorso target nel pannello Azioni. this.square_mc.circle_mc.onRelease = function() { this._parent._alpha -= 5; }; Vedere anche Proprietà _root, Funzione targetPath Proprietà _quality _quality:String Imposta o recupera la qualità di rendering utilizzata per un clip filmato. I caratteri del dispositivo sono sottoposti ad aliasing e pertanto non vengono modificati dalla proprietà _quality. La proprietà _quality può essere impostata sui valori seguenti: Valore Descrizione Antialiasing personalizzato Smussatura delle bitmap "LOW" Qualità di rendering bassa. Alle funzioni non viene applicata la funzione di antialiasing. le bitmap non vengono smussate. "MEDIUM" Qualità di rendering media. Si Le immagini vengono sottoposte le bitmap non vengono tratta di un'impostazione adatta ad antialiasing utilizzando una smussate. per i filmati che non contengono griglia di 2 x 2 pixel. testo. "HIGH" Qualità di rendering alta. È l'impostazione predefinita utilizzata da Flash per la qualità di rendering. Le immagini vengono sottoposte le bitmap non vengono ad antialiasing utilizzando una smussate. griglia di 4 x 4 pixel. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente imposta la qualità di rendering su LOW (bassa): Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 70 Elementi del linguaggio ActionScript _quality = "LOW"; Proprietà _root _root.movieClip _root.action _root.property Specifica o restituisce un riferimento alla linea temporale principale del clip filmato. Se un clip filmato ha più livelli, la linea temporale principale si trova nel livello che contiene lo script in esecuzione. Ad esempio, se uno script nel livello 1 valuta _root, viene restituito _level1. La specifica di _root equivale all'uso della notazione a barra (/) sconsigliata per specificare un percorso assoluto nel livello corrente. Nota: se un clip filmato contenente _root viene caricato in un altro clip filmato, _root si riferisce alla linea temporale del clip filmato in fase di caricamento e non alla linea temporale che contiene _root. Per fare in modo che _root faccia riferimento alla linea temporale del clip filmato caricato anche se questo viene caricato in un altro clip filmato, utilizzare MovieClip._lockroot. Disponibilità Flash Lite 2.0 Parametri movieClipInstance:String - Il nome dell'istanza di un clip filmato. action:String - Un'azione o un campo. property:String - Una proprietà dell'oggetto MovieClip. Esempio L'esempio seguente arresta la linea temporale del livello che contiene lo script in corso di esecuzione: _root.stop(); L'esempio seguente traccia le variabili e le istanze presenti nell'area di validità di _root: for (prop in _root) { trace("_root."+prop+" = "+_root[prop]); } Vedere anche _lockroot (proprietà MovieClip._lockroot), Proprietà _parent, Funzione targetPath Proprietà scroll textFieldVariableName.scroll = x Sconsigliata a partire da Flash Player 5. Questa proprietà è stata sconsigliata a favore di TextField.scroll. Controlla la visualizzazione delle informazioni in un campo di testo associato a una variabile. La proprietà scroll definisce il punto in cui il campo di testo inizia la visualizzazione del contenuto; una volta impostata, Flash Player la aggiorna man mano che l'utente scorre il campo di testo. La proprietà scroll è utile per indirizzare gli utenti verso un paragrafo specifico all'interno di un brano lungo o per creare campi di testo a scorrimento. La proprietà può essere recuperata e modificata. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 71 Elementi del linguaggio ActionScript Disponibilità Flash Lite 1.1 Esempio Il codice seguente viene associato a un pulsante Up (Su) che scorre il campo di testo myText: on (release) { myText.scroll = myText.scroll + 1; } Vedere anche maxscroll (proprietà TextField.maxscroll), scroll (proprietà TextField.scroll) Proprietà _soundbuftime _soundbuftime:Number = integer Stabilisce il numero di secondi dell'audio in streaming da inserire nel buffer. Il valore predefinito è 5 secondi. Disponibilità Flash Lite 2.0 Parametri integer:Number - Il numero di secondi prima che cominci l'esecuzione in streaming del file SWF. Esempio L'esempio seguente riproduce in streaming un file MP3 ed esegue la bufferizzazione dell'audio prima che venga riprodotto per l'utente. In fase di runtime vengono creati due campi di testo che contengono un timer e le informazioni di debug. La proprietà _soundbuftime è impostata in modo da bufferizzare il file MP3 per 10 secondi. Per il file MP3 viene creata l'istanza di un nuovo oggetto Sound. // create text fields to hold debug information. this.createTextField("counter_txt", this.getNextHighestDepth(), 0, 0, 100, 22); this.createTextField("debug_txt", this.getNextHighestDepth(), 0, 20, 100, 22); // set the sound buffer to 10 seconds. _soundbuftime = 10; // create the new sound object instance. var bg_sound:Sound = new Sound(); // load the MP3 sound file and set streaming to true. bg_sound.loadSound("yourSound.mp3", true); // function is triggered when the song finishes loading. bg_sound.onLoad = function() { debug_txt.text = "sound loaded"; }; debug_txt.text = "sound init"; function updateCounter() { counter_txt.text++; } counter_txt.text = 0; setInterval(updateCounter, 1000); Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 72 Elementi del linguaggio ActionScript Proprietà this this Fa riferimento a un oggetto o all'istanza di un clip filmato. Durante l'esecuzione di uno script, this fa riferimento all'istanza del clip filmato che contiene lo script. Quando viene chiamato un campo, this contiene un riferimento all'oggetto contenente tale campo. All'interno di un gestore di eventi on() associato a un pulsante, this fa riferimento alla linea temporale che contiene il pulsante. All'interno di un gestore di eventi onClipEvent() associato a un clip filmato, this fa riferimento alla linea temporale che contiene il clip filmato. Poiché this viene valutato nel contesto dello script che lo contiene, non è possibile utilizzare this in uno script per fare riferimento alla variabile definita in un file di classe. Creare ApplyThis.as e immettere il codice seguente: class ApplyThis { var str:String = "Defined in ApplyThis.as"; function conctStr(x:String):String { return x+x; } function addStr():String { return str; } } Quindi, in un file FLA o AS, aggiungere l'ActionScript seguente: var obj:ApplyThis = new ApplyThis(); var abj:ApplyThis = new ApplyThis(); abj.str = "defined in FLA or AS"; trace(obj.addStr.call(abj, null)); //output: defined in FLA or AS trace(obj.addStr.call(this, null)); //output: undefined trace(obj.addStr.call(obj, null)); //output: Defined in applyThis.as Allo stesso modo, per chiamare un funzione definita in una classe dinamica, utilizzare this per chiamare la funzione nell'area di validità appropriata: // incorrect version of Simple.as /* dynamic class Simple { function callfunc() { trace(func()); } } */ // correct version of Simple.as dynamic class simple { function callfunc() { trace(this.func()); } } Nel file FLA o AS, aggiungere l'ActionScript seguente: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 73 Elementi del linguaggio ActionScript var obj:Simple = new Simple(); obj.num = 0; obj.func = function() { return true; }; obj.callfunc(); // output: true Se si utilizza la versione non corretta di Simple.as, viene segnalato un errore di sintassi. Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente, la parola chiave this fa riferimento all'oggetto Circle: function Circle(radius:Number):Void { this.radius = radius; this.area = Math.PI*Math.pow(radius, 2); } var myCircle = new Circle(4); trace(myCircle.area); Nell'istruzione seguente associata a un fotogramma all'interno di un clip filmato, la parola chiave this fa riferimento al clip filmato corrente. // sets the alpha property of the current movie clip to 20 this._alpha = 20; Nell'istruzione corrente contenuta in un gestore MovieClip.onPress, la parola chiave this fa riferimento al clip filmato corrente: this.square_mc.onPress = function() { startDrag(this); }; this.square_mc.onRelease = function() { stopDrag(); }; Vedere anche Costanti, Gestore onClipEvent() Operatori Gli operatori simbolici sono caratteri che specificano la modalità di combinazione, confronto o modifica dei valori di un'espressione. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 74 Elementi del linguaggio ActionScript Riepilogo degli operatori Operatore Descrizione + (addizione) Somma le espressioni numeriche o concatena (unisce) le stringhe. += (assegnazione addizione) Assegna a expression1 il valore di expression1 + expression2. [] (accesso array) Inizializza un nuovo array o un array multidimensionale con gli elementi specificati (a0 e così via) oppure accede agli elementi di un array. = (assegnazione) Assegna il valore di expression2 (il parametro sulla destra) alla variabile, all'elemento di array o alla proprietà in expression1. & (AND bit a bit) Converte expression1 e expression2 in numeri interi senza segno a 32 bit ed esegue un'operazione AND booleana su ogni bit dei parametri convertiti in numeri interi. &= (assegnazione AND bit a bit) Assegna a expression1 il valore di expression1& expression2. << (spostamento a sinistra bit a bit) Converte expression1 e expression2 in numeri interi a 32 bit e sposta tutti i bit in expression1 a sinistra per il numero di posti specificato dal numero intero risultante dalla conversione di expression2. <<= (spostamento a Questo operatore esegue un'operazione di spostamento bit a bit verso sinistra (<<) e memorizza il contenuto sotto forma di risultato in expression1. sinistra bit a bit e assegnazione) ~ (NOT bit a bit) Noto anche come operatore del complemento a uno o operatore del complemento bit a bit. | (OR bit a bit) Converte expression1 e expression2 in numeri interi senza segno a 32 bit e restituisce un 1 in ogni posizione di bit nella quale i bit corrispondenti expression1 o expression2 sono 1. |= (assegnazione OR bit a Assegna a expression1 il valore di expression1 | expression2. bit) >> (spostamento a destra bit a bit) Converte expression1 e expression2 in numeri interi a 32 bit e sposta tutti i bit in expression1 a destra per il numero di posti specificato dal numero intero risultante dalla conversione di expression2. >>= (spostamento a Questo operatore esegue un'operazione di spostamento bit a bit verso destra e memorizza il contenuto sotto forma di risultato in expression1. destra bit a bit e assegnazione) >>> (spostamento a destra bit a bit senza segno) Uguale all'operatore di spostamento a destra (>>) ad eccezione del fatto che non conserva il segno dell'originale espressione poiché nei bit a sinistra vengono inseriti dei valori 0. I numeri a virgola mobile vengono convertiti in numeri interi scartando tutti i decimali. >>>= (spostamento a Esegue un'operazione di spostamento bit a bit verso destra senza segno e memorizza destra bit a bit senza segno il contenuto sotto forma di risultato in expression1. e assegnazione) ^ (XOR bit a bit) Converte expression1 e expression2 in numeri interi senza segno a 32 bit e restituisce un 1 in ogni posizione di bit nella quale i bit corrispondenti in expression1 o expression2, ma non in entrambi, sono 1. ^= (assegnazione XOR bit a bit) Assegna a expression1 il valore di expression1 ^ expression2. /* (delimitatore Indica una o più righe di commento di script. commenti a blocchi) , (virgola) Valuta expression1 quindi expression2 e così via. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 75 Elementi del linguaggio ActionScript Operatore Descrizione add (concatenazione (stringhe)) Sconsigliata a partire da Flash Player 5. Adobe consiglia di utilizzare l'operatore di addizione (+) quando si crea contenuto per Flash Player 5 o versioni successive. Nota: anche in Flash Lite 2.0 è sconsigliato l'operatore add a favore dell'operatore di addizione (+). Concatena due o più stringhe. ?: (condizionale) Indica a Flash di valutare expression1 e, se il valore di expression1 è true, restituisce il valore di expression2; altrimenti restituisce il valore di expression3. -- (decremento) Operatore unario di pre-decremento e post-decremento, che sottrae 1 da expression. / (divisione) Divide expression1 per expression2. /= (assegnazione divisione) Assegna a expression1 il valore di expression1 / expression2. . (punto) Utilizzato per spostarsi nelle gerarchie dei clip filmato e accedere ai clip filmato nidificati (secondari), alle variabili e alle proprietà. == (uguaglianza) Confronta due espressioni per verificarne l'uguaglianza. eq (uguaglianza (stringhe)) Sconsigliata a partire da Flash Player 5. Questo operatore è stato sconsigliato a favore dell'operatore == (uguaglianza). Restituisce true se la rappresentazione sotto forma di stringa di expression1 è uguale alla rappresentazione sotto forma di stringa di expression2; in caso contrario, restituisce false. > (maggiore di) Esegue un confronto tra due espressioni e determina se expression1 è maggiore di expression2; in caso affermativo, l'operatore restituisce true. gt (maggiore di (stringhe)) Sconsigliata a partire da Flash Player 5. Questo operatore è stato sconsigliato a favore dell'operatore > (maggiore di). Esegue un confronto tra la rappresentazione sotto forma di stringa di expression1 e la rappresentazione sotto forma di stringa di expression2 e restituisce true se expression1 è maggiore di expression2; in caso contrario, restituisce false. >= (maggiore di o uguale a) Esegue un confronto tra due espressioni e determina se expression1 è maggiore di o uguale a expression2 (true) o se expression1 è minore di expression2 (false) ge (maggiore di o uguale Sconsigliata a partire da Flash Player 5. Questo operatore è stato sconsigliato a favore a (stringhe)) dell'operatore >= (maggiore di o uguale a). Restituisce true se expression1 è maggiore di o uguale a expression2, in caso contrario restituisce false. ++ (incremento) Operatore unario di pre-incremento e post-incremento che aggiunge 1 a expression. != (diseguaglianza) Prova l'esatto opposto dell'operatore di uguaglianza (==). <> (diseguaglianza) Sconsigliata a partire da Flash Player 5. Questo operatore è stato sconsigliato. Adobe consiglia di utilizzare l'operatore != (diseguaglianza). Prova l'esatto opposto dell'operatore di uguaglianza (==). instanceof Prova se object è un'istanza di classConstructor o una sottoclasse di classConstructor. < (minore di) Esegue un confronto tra due espressioni e determina se expression1 è minore di expression2; in caso affermativo, l'operatore restituisce true. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 76 Elementi del linguaggio ActionScript Operatore Descrizione lt (minore di (stringhe)) Sconsigliata a partire da Flash Player 5. Questo operatore è stato sconsigliato a favore dell'operatore < (minore di). Restituisce true se expression1 è minore di expression2; in caso contrario, restituisce false. <= (minore di o uguale a) Esegue un confronto tra due espressioni e determina se expression1 è minore di o uguale a expression2; in caso affermativo, l'operatore restituisce true. le (minore di o uguale a (stringhe)) Sconsigliata a partire da Flash Player 5. Questo operatore è stato sconsigliato in Flash 5 a favore dell'operatore <= (minore di o uguale a). Restituisce true se expression1 è minore di o uguale a expression2, in caso contrario restituisce false. // (delimitatore riga commenti) Indica l'inizio di un commento di script. && (AND logico) Esegue un'operazione booleana sui valori di una delle due espressioni o di entrambe. e (AND logico) Sconsigliata a partire da Flash Player 5. Adobe consiglia di utilizzare l'operatore logico AND (&&). Esegue un'operazione logica AND (&& in Flash Player 4. ! (NOT logico) Inverte il valore booleano di una variabile o espressione. not (NOT logico) Sconsigliata a partire da Flash Player 5. Questo operatore è stato sconsigliato a favore dell'operatore ! (NOT logico). Esegue un'operazione NOT logica (!) in Flash Player 4. || (OR logico) Valuta expression1 (l'espressione a sinistra dell'operatore) e restituisce true se l'espressione equivale a true. oppure (OR logico) Sconsigliata a partire da Flash Player 5. Questo operatore è stato sconsigliato a favore dell'operatore || (OR logico). Valuta condition1 e condition2 e, se una delle espressioni è true, l'intera espressione è true. % (modulo) Calcola il resto di expression1 diviso per expression2. %= (assegnazione modulo) Assegna a expression1 il valore di expression1 % expression2. * (moltiplicazione) Moltiplica due espressioni numeriche. *= (assegnazione moltiplicazione) Assegna a expression1 il valore di expression1 * expression2. new Crea un nuovo oggetto, inizialmente anonimo, e chiama la funzione identificata dal parametro constructor. ne (non uguale (stringhe)) Sconsigliata a partire da Flash Player 5. Questo operatore è stato sconsigliato a favore dell'operatore != (diseguaglianza). Restituisce true se expression1 non è uguale a expression2, in caso contrario restituisce false. {} (inizializzatore di oggetto) Crea un nuovo oggetto e lo inizializza con le coppie di proprietà name e value specificate. () (parentesi) Esegue un'operazione di raggruppamento su uno o più parametri, esegue una valutazione sequenziale delle espressioni, oppure racchiude uno o più parametri e li trasmette come tali a una funzione fuori delle parentesi. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 77 Elementi del linguaggio ActionScript Operatore Descrizione === (uguaglianza rigorosa) Confronta due espressioni per verificarne l'uguaglianza. L'operatore di uguaglianza rigorosa (===) si comporta come l'operatore di uguaglianza (==), ma non converte i tipi di dati. !== (diseguaglianza rigorosa) Prova l'esatto opposto dell'operatore di uguaglianza rigorosa (===). " (delimitatore di stringa) Se utilizzate prima e dopo i caratteri, le virgolette (") indicano che tali caratteri hanno un valore letterale e devono essere considerati come una stringa, non una variabile, un valore numerico o un altro elemento di ActionScript. - (sottrazione) Utilizzato per negare o sottrarre. -= (assegnazione sottrazione) Assegna a expression1 il valore di expression1 - expression2. : (tipo) Utilizzato per la tipizzazione forte dei dati; specifica i tipi di variabili, i tipi di funzioni restituite o i tipi di parametri funzione. typeof L'operatore typeof valuta l'espressione e restituisce una stringa che specifica se è un valore String, MovieClip, Object, Function, Number o Boolean. void L'operatore void valuta un'espressione, quindi ne scarta il valore e restituisce undefined. Operatore + (addizione) expression1 + expression2 Somma le espressioni numeriche o concatena (unisce) le stringhe. Se un'espressione è una stringa, tutte le altre espressioni vengono convertite in stringhe e concatenate. Se entrambe le espressioni sono numeri interi, la somma è un numero intero; se almeno una delle due espressioni è un numero a virgola mobile, la somma è un numero a virgola mobile. Nota: Flash Lite 2.0 supporta l'operatore di addizione (+) per l'addizione delle espressioni numeriche e la concatenazione delle stringhe. Flash Lite 1.x supporta l'operatore di addizione (+) per l'addizione delle espressioni numeriche (quali var1 = 1 + 2 // output: 3). In Flash Lite 1.x, utilizzare l'operatore add per concatenare le stringhe. Disponibilità Flash Lite 2.0 Operandi expression1 - Un numero o una stringa. expression2 - Un numero o una stringa. Restituisce Object - Una stringa, un numero intero o un numero a virgola mobile. Esempio Uso 1: l'esempio seguente concatena due stringhe e visualizza il risultato nel pannello Output. var name:String = "Cola"; var instrument:String = "Drums"; trace(name + " plays " + instrument); // output: Cola plays Drums Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 78 Elementi del linguaggio ActionScript Nota: Flash Lite 1.x non supporta l'operatore di addizione (+) per la concatenazione delle stringhe. In Flash Lite 1.x, utilizzare l'operatore add per concatenare le stringhe. Uso 2: questa istruzione somma gli interi 2 e 3 e visualizza il numero intero risultante (5) nel pannello Output: trace(2 + 3); // output: 5 Questa istruzione somma i numeri a virgola mobile 2,5 e 3,25 e visualizza il numero a virgola mobile risultante (5,75) nel pannello Output: trace(2.5 + 3.25); // output: 5.75 Uso 3: per le variabili associate ai campi di testo dinamici e di input il tipo di dati è String. Nell'esempio seguente, la variabile deposit è un campo di testo di input sullo stage. Dopo che un utente ha immesso una cifra di deposito, lo script tenta di aggiungere deposit a oldBalance. Tuttavia, poiché deposit è un tipo di dati String, lo script concatena (ovvero, combina per formare un'unica stringa) i valori delle variabili anziché sommarli. var oldBalance:Number = 1345.23; var currentBalance = deposit_txt.text + oldBalance; trace(currentBalance); Ad esempio, se un utente immette 475 nel campo di testo deposit, la funzione trace() invia il valore 4751345.23 al pannello Output. Per correggere questo inconveniente, utilizzare la funzione Number() per convertire la stringa in numero, come nell'esempio seguente: var oldBalance:Number = 1345.23; var currentBalance:Number = Number(deposit_txt.text) + oldBalance; trace(currentBalance); L'esempio seguente mostra come le somme numeriche a destra di un'espressione stringa non vengano calcolate: var a:String trace(a); // var b:String trace(b); // = 3 + 10 + "asdf"; 13asdf = "asdf" + 3 + 10; asdf310 Operatore += (assegnazione addizione) expression1 += expression2 Assegna a expression1 il valore di expression1 + expression2. Ad esempio, le due istruzioni seguenti danno lo stesso risultato: x += y; x = x + y; Questo operatore esegue anche la concatenazione delle stringhe. Tutte le regole dell'operatore di addizione (+) si applicano anche all'operatore di assegnazione addizione (+=). Disponibilità Flash Lite 1.0 Operandi expression1 : Number - Un numero o una stringa. expression2 : Number - Un numero o una stringa. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 79 Elementi del linguaggio ActionScript Restituisce Number - Il risultato dell'addizione. Esempio Uso 1: questo esempio utilizza l'operatore += con un'espressione stringa e invia la frase "My name is Gilbert" al pannello Output. var x1:String = "My name is "; x1 += "Gilbert"; trace(x1); // output: My name is Gilbert Uso 2: l'esempio seguente mostra l'uso numerico dell'operatore di assegnazione addizione (+=): var x:Number = 5; var y:Number = 10; x += y; trace(x); // output: 15 Vedere anche Operatore + (addizione) Operatore [] (accesso array) myArray = [ a0, a1,...aN ] myArray[ i ] = value myObject [ propertyName ] Inizializza un nuovo array o un array multidimensionale con gli elementi specificati (a0 e così via) oppure accede agli elementi di un array. L'operatore di accesso agli array consente di impostare e recuperare in modo dinamico nomi di istanza, variabili e oggetti, e di accedere alle proprietà dell'oggetto. Uso 1: un array è un oggetto le cui proprietà sono definite elementi, ciascuno identificato mediante un numero chiamato indice. Quando si crea un array, gli elementi vengono racchiusi tra gli operatori di accesso all'array ([]) (parentesi quadre). Un array può contenere elementi di vari tipi; ad esempio, l'array seguente, denominato employee, ha tre elementi: il primo è un numero, e il secondo e il terzo sono stringhe (racchiuse tra virgolette): var employee:Array = [15, "Barbara", "Jay"]; Per simulare array multidimensionali, è possibile nidificare più parentesi quadre, fino a una profondità di 256 livelli. Il codice seguente consente di creare un array chiamato ticTacToe con tre elementi; ognuno di questi è a sua volta un array composto da tre elementi: var ticTacToe:Array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; // Select Debug > List Variables in test mode // to see a list of the array elements. Uso 2: consente di racchiudere l'indice di ogni elemento tra parentesi quadre ([]) per accedervi direttamente; è possibile aggiungere un nuovo elemento a un array, oppure cambiare o recuperare il valore di un elemento esistente. Il primo indice di un array è sempre 0, come nell'esempio seguente: var my_array:Array = new Array(); my_array[0] = 15; my_array[1] = "Hello"; my_array[2] = true; È possibile utilizzare le parentesi quadre ([]) per aggiungere un quarto elemento, come nell'esempio seguente: my_array[3] = "George"; Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 80 Elementi del linguaggio ActionScript Le parentesi quadre ([]) consentono anche di accedere a un elemento in un array multidimensionale. Il primo set di parentesi quadre identifica l'elemento dell'array originale, il secondo set indica l'elemento dell'array nidificato. Le righe di codice seguenti inviano il numero 6 al pannello Output. var ticTacToe:Array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; trace(ticTacToe[1][2]);// output: 6 Uso 3: è possibile utilizzare l'operatore di accesso all'array ([]) invece della funzione eval() per impostare e recuperare in modo dinamico i valori dei nomi dei clip filmato o altre proprietà di un oggetto. La riga di codice seguente imposta il nome del clip filmato determinata concatenando la stringa "mc" con il valore della variabile i a “left_corner”. name["mc" + i] = "left_corner"; Disponibilità Flash Lite 2.0 Operandi myArray : Object - Il nome di un array. a0, a1,...aN : Object - Elementi di un array, qualsiasi istanza di oggetto o tipo nativo, compresi gli array nidificati. i : Number - Un indice a numeri interi superiore o uguale a 0. myObject : Object - Il nome di un oggetto. propertyName : String - Una stringa che dà il nome a una proprietà dell'oggetto. Restituisce Object - Uso 1: un riferimento a un array. Uso 2: un valore dell'array; un'istanza di oggetto o tipo nativo (comprese le istanze di array). Uso 3: una proprietà dell'oggetto; un'istanza di oggetto o tipo nativo (comprese le istanze di array). Esempio L'esempio seguente mostra due modi per creare un nuovo oggetto Array vuoto; la prima riga utilizza le parentesi quadre ([]): var my_array:Array = []; var my_array:Array = new Array(); L'esempio seguente crea un array di nome employee_array e utilizza l'istruzione trace() per inviare gli elementi al pannello Output. Nella quarta riga, un elemento nell'array viene modificato, mentre la quinta riga invia l'array appena modificato al pannello Output: var employee_array = ["Barbara", "George", "Mary"]; trace(employee_array); // output: Barbara,George,Mary employee_array[2] = "Sam"; trace(employee_array); // output: Barbara,George,Sam Nell'esempio seguente, viene valutata l'espressione contenuta tra parentesi quadre ("piece" + i) e il risultato viene utilizzato come nome della variabile da recuperare dal clip filmato my_mc. In questo esempio, la variabile i deve trovarsi nella stessa linea temporale del pulsante. Se ad esempio la variabile i è uguale a 5, il valore della variabile piece5 nel clip filmato my_mc viene visualizzato nel pannello Output: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 81 Elementi del linguaggio ActionScript myBtn_btn.onRelease = function() { x = my_mc["piece"+i]; trace(x); }; Nell'esempio seguente, viene valutata l'espressione contenuta tra parentesi quadre e il risultato viene utilizzato come nome della variabile da recuperare dal clip name_mc: name_mc["A" + i]; Se si ha dimestichezza con la sintassi della barra ActionScript di Flash 4, è possibile utilizzare la funzione eval() per ottenere lo stesso risultato: eval("name_mc.A" & i); È possibile utilizzare il codice ActionScript seguente per eseguire un ciclo relativo a tutti gli oggetti nell'area di validità di _root, un'operazione molto utile per le operazioni di debug: for (i in _root) { trace(i+": "+_root[i]); } Inoltre, è possibile utilizzare l'operatore di accesso agli array ([]) sul lato sinistro di un'istruzione di assegnazione per impostare dinamicamente i nomi delle istanze, delle variabili e degli oggetti: employee_array[2] = "Sam"; Vedere anche Array, Object, Funzione eval Operatore = (assegnazione) expression1 = expression2 Assegna il valore di expression2 (il parametro sulla destra) alla variabile, all'elemento di array o alla proprietà in expression1. L'assegnazione può avvenire in base al valore o al riferimento. L'assegnazione in base al valore copia il valore effettivo di expression2 e lo memorizza in expression1 e viene utilizzata quando a una variabile viene assegnato un numero o un carattere letterale per la stringa. L'assegnazione in base al riferimento memorizza un riferimento expression2 in expression1. e viene comunemente utilizzata con l'operatore new. L'uso dell'operatore new crea un oggetto nella memoria e assegna a una variabile un riferimento a quella posizione nella memoria. Disponibilità Flash Lite 1.0 Operandi expression1 : Object - Una variabile, un elemento di array o la proprietà di un oggetto. expression2 : Object - Un valore di qualsiasi tipo. Restituisce Object - Il valore assegnato, expression2. Esempio L'esempio seguente utilizza l'assegnazione in base al valore per assegnare il valore 5 alla variabile x. var x:Number = 5; Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 82 Elementi del linguaggio ActionScript L'esempio seguente utilizza l'assegnazione in base al valore per assegnare il valore "hello" alla variabile x: var x:String;x = " hello "; L'esempio seguente utilizza l'assegnazione in base al riferimento per creare la variabile moonsOfJupiter, che contiene un riferimento a un oggetto Array appena creato. L'assegnazione in base al valore viene quindi utilizzata per copiare il valore "Callisto" nel primo elemento dell'array a cui fa riferimento la variabile moonsOfJupiter: var moonsOfJupiter:Array = new Array();moonsOfJupiter[0] = "Callisto"; L'esempio seguente utilizza l'assegnazione in base al riferimento per creare un nuovo oggetto e per assegnare alla variabile mercury un riferimento a tale oggetto. Quindi, viene utilizzata l'assegnazione in base al valore per assegnare il valore 3030 alla proprietà diameter dell'oggetto mercury: var mercury:Object = new Object(); mercury.diameter = 3030; // in miles trace (mercury.diameter); // output: 3030 L'esempio seguente riprende l'esempio precedente e crea una variabile di nome merkur (il termine tedesco per mercurio) e lo assegna al valore di mercury. In questo modo vengono create due variabili che fanno riferimento allo stesso oggetto in memoria: pertanto, è possibile utilizzare indistintamente una delle due variabili per accedere alle proprietà dell'oggetto. A questo punto, è possibile modificare la proprietà diameter in modo che utilizzi i chilometri anziché le miglia: var merkur:Object = mercury; merkur.diameter = 4878; // in kilometers trace (mercury.diameter); // output: 4878 Vedere anche Operatore == (uguaglianza) Operatore & (AND bit a bit) expression1 & expression2 Converte expression1 e expression2 in numeri interi senza segno a 32 bit ed esegue un'operazione AND booleana su ogni bit dei parametri convertiti in numeri interi. I numeri a virgola mobile vengono convertiti in numeri interi scartando tutti i decimali. Il risultato è un nuovo numero intero a 32 bit. I numeri interi positivi vengono convertiti in un valore esadecimale senza segno con un valore massimo di 4294967295 o 0xFFFFFFFF; per i valori maggiori del valore massimo vengono scartate le cifre più significative al momento della conversione, in modo che il valore sia comunque a 32 bit. I numeri negativi vengono convertiti in un valore esadecimale senza segno, tramite la notazione del complemento a due, con il minimo pari a -2147483648 o 0x800000000. I numeri minori del minimo vengono convertiti nel complemento a due con maggiore precisione e anche per questi numeri vengono scartate le cifre più significative. Il valore restituito viene interpretato come complemento a due con segno, in modo che venga restituito un numero intero compreso tra -2147483648 e 2147483647. Disponibilità Flash Lite 2.0 Operandi expression1 : Number - Un numero. expression2 : Number - Un numero. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 83 Elementi del linguaggio ActionScript Restituisce Number - Il risultato dell'operazione bit a bit. Esempio L'esempio seguente confronta la rappresentazione sotto forma di bit dei numeri e restituisce 1 solo se entrambi i bit nella stessa posizione sono 1. Nel codice ActionScript seguente, vengono aggiunti 13 (1101 binario) e 11 (1011 binario) e viene restituito 1 solo nella posizione in cui entrambi i numero hanno un 1. var insert:Number = 13; var update:Number = 11; trace(insert & update); // output : 9 (or 1001 binary) Nei numeri 13 e 11 il risultato è 9 poiché solo nella prima e ultima posizione di entrambi i numeri è presente il numero 1. L'esempio seguente mostra il comportamento della conversione del valore restituito: trace(0xFFFFFFFF); trace(0xFFFFFFFF & trace(0xFFFFFFFF & trace(4294967295 & trace(4294967295 & // 4294967295 0xFFFFFFFF); // -1 -1); // -1 -1); // -1 4294967295); // -1 Vedere anche Operatore &= (assegnazione AND bit a bit), Operatore ^ (XOR bit a bit), Operatore ^= (assegnazione XOR bit a bit), Operatore | (OR bit a bit), Operatore |= (assegnazione OR bit a bit), Operatore ~ (NOT bit a bit) Operatore &= (assegnazione AND bit a bit) expression1 &= expression2 Assegna a expression1 il valore di expression1 & expression2. Ad esempio, le due espressioni seguenti sono equivalenti: x &= y; x = x & y; Disponibilità Flash Lite 2.0 Operandi expression1 : Number - Un numero. expression2 : Number - Un numero. Restituisce Number - Il valore di expression1 & expression2. Esempio L'esempio seguente assegna il valore 9 a x: var x:Number = 15; var y:Number = 9; trace(x &= y); // output: 9 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 84 Elementi del linguaggio ActionScript Vedere anche Operatore & (AND bit a bit), Operatore ^ (XOR bit a bit), Operatore ^= (assegnazione XOR bit a bit), Operatore | (OR bit a bit)Operatore |= (assegnazione OR bit a bit), Operatore ~ (NOT bit a bit) Operatore << (spostamento a sinistra bit a bit) expression1 << expression2 Converte expression1 e expression2 in numeri interi a 32 bit e sposta tutti i bit in expression1 a sinistra per il numero di posti specificato dal numero intero risultante dalla conversione di expression2. Le posizioni di bit che vengono svuotate in seguito a questa operazione vengono riempite con 0 e i bit spostati oltre l'estremità sinistra vengono scartati. Lo spostamento di un valore verso sinistra di una posizione equivale a moltiplicarlo per 2. I numeri a virgola mobile vengono convertiti in numeri interi scartando tutti i decimali. I numeri interi positivi vengono convertiti in un valore esadecimale senza segno con un valore massimo di 4294967295 o 0xFFFFFFFF; per i valori maggiori del valore massimo vengono scartate le cifre più significative al momento della conversione, in modo che il valore sia comunque a 32 bit. I numeri negativi vengono convertiti in un valore esadecimale senza segno tramite la notazione del complemento a due, con il minimo pari a -2147483648 o 0x800000000. I numeri minori del minimo vengono convertiti nel complemento a due con maggiore precisione; anche per questi numeri vengono scartate le cifre più significative. Il valore restituito viene interpretato come complemento a due con segno, in modo da ottenere come valore restituito un numero intero compreso tra -2147483648 e 2147483647. Disponibilità Flash Lite 2.0 Operandi expression1 : Number - Un numero o un'espressione da spostare a sinistra. expression2 : Number - Un numero o un'espressione convertibile in un numero intero compreso tra 0 e 31. Restituisce Number - Il risultato dell'operazione bit a bit. Esempio Nell'esempio seguente, il numero intero 1 viene spostato di 10 bit verso sinistra: x = 1 << 10 Il risultato dell'operazione è x = 1024. perché 1 decimale equivale a 1 binario, 1 binario spostato verso sinistra di 10 è 10000000000 binario, e 10000000000 binario è 1024 decimale. Nell'esempio seguente, il numero intero 7 viene spostato di 8 bit verso sinistra: x = 7 << 8 Il risultato dell'operazione è x = 1792. perché 7 decimale equivale a 111 binario, 111 binario spostato verso sinistra di 8 bit è 11100000000 binario, e 11100000000 binario è 1792 decimale. Se si applica l'esempio seguente, è possibile notare che i bit sono stati spostati di due spazi verso sinistra: // 2 binary == 0010 // 8 binary == 1000 trace(2 << 2); // output: 8 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 85 Elementi del linguaggio ActionScript Vedere anche Operatore >>= (spostamento a destra bit a bit e assegnazione), Operatore >> (spostamento a destra bit a bit), Operatore <<= (spostamento a sinistra bit a bit e assegnazione)Operatore >>> (spostamento a destra bit a bit senza segno), Operatore >>>= (spostamento a destra bit a bit senza segno e assegnazione) Operatore <<= (spostamento a sinistra bit a bit e assegnazione) expression1 <<= expression2 Questo operatore esegue un'operazione di spostamento bit a bit verso sinistra (<<) e memorizza il contenuto sotto forma di risultato in expression1. Le due espressioni seguenti sono equivalenti: A <<= BA = (A << B) Disponibilità Flash Lite 2.0 Operandi expression1 : Number - Un numero o un'espressione da spostare a sinistra. expression2 : Number - Un numero o un'espressione convertibile in un numero intero compreso tra 0 e 31. Restituisce Number - Il risultato dell'operazione bit a bit. Esempio Nell'esempio seguente viene utilizzato l'operatore spostamento a sinistra bit a bit e assegnazione (<<=) per spostare tutti i bit di uno spazio verso sinistra: var x:Number = 4; // shift all bits one slot to the left. x <<= 1; trace(x); // output: 8 // 4 decimal = 0100 binary // 8 decimal = 1000 binary Vedere anche Operatore << (spostamento a sinistra bit a bit), Operatore >>= (spostamento a destra bit a bit e assegnazione), Operatore >> (spostamento a destra bit a bit) Operatore ~ (NOT bit a bit) ~expression Noto anche come operatore del complemento a uno o operatore del complemento bit a bit. Converte l'espressione in un numero intero con segno a 32 bit, quindi applica un complemento a uno bit a bit. In altre parole, nel risultato, ogni bit 0 viene impostato su 1 e ogni bit 1 viene impostato su 0. Il risultato è un numero intero a 32 bit con segno. Ad esempio, il valore esadecimale 0x7777 è rappresentato da questo numero binario: 0111011101110111 La negazione bit a bit di quel valore esadecimale, ~0x7777, è questo numero binario: 1000100010001000 In formato esadecimale, questo è 0x8888. Pertanto ~0x7777 è 0x8888. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 86 Elementi del linguaggio ActionScript Gli operatori bit a bit vengono più comunemente utilizzati per rappresentare i flag bit (valori booleani compressi in 1 bit ciascuno). I numeri a virgola mobile vengono convertiti in numeri interi scartando tutti i decimali. I numeri interi positivi vengono convertiti in un valore esadecimale senza segno con un valore massimo di 4294967295 o 0xFFFFFFFF; per i valori maggiori del valore massimo vengono scartate le cifre più significative al momento della conversione, in modo che il valore sia comunque a 32 bit. I numeri negativi vengono convertiti in un valore esadecimale senza segno tramite la notazione del complemento a due, con il minimo pari a -2147483648 o 0x800000000. I numeri minori del minimo vengono convertiti nel complemento a due con maggiore precisione; anche per questi numeri vengono scartate le cifre più significative. Il valore restituito viene interpretato come complemento a due con segno, in modo che il valore restituito sia un numero intero compreso tra -2147483648 e 2147483647. Disponibilità Flash Lite 2.0 Operandi espressione : Number - Un numero. Restituisce Number - Il risultato dell'operazione bit a bit. Esempio L'esempio seguente mostra un utilizzo possibile dell'operatore NOT bit a bit (~) con i flag bit: var ReadOnlyFlag:Number = 0x0001; // defines bit 0 as the read-only flag var flags:Number = 0; trace(flags); /* To set the read-only flag in the flags variable, the following code uses the bitwise OR: */ flags |= ReadOnlyFlag; trace(flags); /* To clear the read-only flag in the flags variable, first construct a mask by using bitwise NOT on ReadOnlyFlag. In the mask, every bit is a 1 except for the read-only flag. Then, use bitwise AND with the mask to clear the read-only flag. The following code constructs the mask and performs the bitwise AND: */ flags &= ~ReadOnlyFlag; trace(flags); // output: 0 1 0 Vedere anche Operatore & (AND bit a bit), Operatore &= (assegnazione AND bit a bit), Operatore ^ (XOR bit a bit), Operatore ^= (assegnazione XOR bit a bit), Operatore | (OR bit a bit), Operatore |= (assegnazione OR bit a bit) Operatore | (OR bit a bit) expression1 | expression2 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 87 Elementi del linguaggio ActionScript Converte expression1 e expression2 in numeri interi senza segno a 32-bit e restituisce un 1 in ogni posizione di bit nella quale i bit corrispondenti di expression1 o expression2 sono 1. I numeri a virgola mobile vengono convertiti in numeri interi scartando tutti i decimali. Il risultato è un nuovo numero intero a 32 bit. I numeri interi positivi vengono convertiti in un valore esadecimale senza segno con un valore massimo di 4294967295 o 0xFFFFFFFF; per i valori maggiori del valore massimo vengono scartate le cifre più significative al momento della conversione, in modo che il valore sia comunque a 32 bit. I numeri negativi vengono convertiti in un valore esadecimale senza segno tramite la notazione del complemento a due, con il minimo pari a -2147483648 o 0x800000000. I numeri minori del minimo vengono convertiti nel complemento a due con maggiore precisione; anche per questi numeri vengono scartate le cifre più significative. Il valore restituito viene interpretato come complemento a due con segno, in modo da ottenere come valore restituito un numero intero compreso tra -2147483648 e 2147483647. Disponibilità Flash Lite 2.0 Operandi expression1 : Number - Un numero. expression2 : Number - Un numero. Restituisce Number - Il risultato dell'operazione bit a bit. Esempio Di seguito è riportato un esempio di operazione OR bit a bit (|): // 15 decimal = 1111 binary var x:Number = 15; // 9 decimal = 1001 binary var y:Number = 9; // 1111 | 1001 = 1111 trace(x | y); // returns 15 decimal (1111 binary) Fare attenzione a non confondere | (OR bit a bit ) con || (OR logico). Vedere anche Operatore & (AND bit a bit), Operatore &= (assegnazione AND bit a bit), Operatore ^ (XOR bit a bit), Operatore ^= (assegnazione XOR bit a bit), Operatore |= (assegnazione OR bit a bit), Operatore ~ (NOT bit a bit) Operatore |= (assegnazione OR bit a bit) expression1 |= expression2 Assegna a expression1 il valore di expression1 | expression2. Ad esempio, le due istruzioni seguenti sono equivalenti: x |= y; and x = x | y; Disponibilità Flash Lite 2.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 88 Elementi del linguaggio ActionScript Operandi expression1 : Number - Un numero o variabile. expression2 : Number - Un numero o variabile. Restituisce Number - Il risultato dell'operazione bit a bit. Esempio L'esempio seguente utilizza l'operatore assegnazione OR bit a bit (|=): // 15 decimal = 1111 binary var x:Number = 15; // 9 decimal = 1001 binary var y:Number = 9; // 1111 |= 1001 = 1111 trace(x |= y); // returns 15 decimal (1111 binary) Vedere anche Operatore & (AND bit a bit), Operatore &= (assegnazione AND bit a bit), Operatore ^ (XOR bit a bit), Operatore ^= (assegnazione XOR bit a bit)Operatore | (OR bit a bit), Operatore ~ (NOT bit a bit) Operatore >> (spostamento a destra bit a bit) expression1 >> expression2 Converte expression1 e expression2 in numeri interi a 32 bit e sposta tutti i bit in expression1 a destra per il numero di posti specificato dal numero intero risultante dalla conversione di expression2. I bit che vengono spostati oltre l'estremità destra vengono scartati. Per conservare il segno dell'originale espressione, i bit a sinistra vengono sostituiti con 0 se il bit più significativo (ovvero quello all'estrema sinistra) di expression1 è 0, oppure con 1 se il bit più significativo è 1. Spostare un valore verso destra di una posizione equivale a dividere per 2 e scartare il resto. I numeri a virgola mobile vengono convertiti in numeri interi scartando tutti i decimali. I numeri interi positivi vengono convertiti in un valore esadecimale senza segno con un valore massimo di 4294967295 o 0xFFFFFFFF; per i valori maggiori del valore massimo vengono scartate le cifre più significative al momento della conversione, in modo che il valore sia comunque a 32 bit. I numeri negativi vengono convertiti in un valore esadecimale senza segno tramite la notazione del complemento a due, con il minimo pari a -2147483648 o 0x800000000. I numeri minori del minimo vengono convertiti nel complemento a due con maggiore precisione; anche per questi numeri vengono scartate le cifre più significative. Il valore restituito viene interpretato come complemento a due con segno, in modo da ottenere come valore restituito un numero intero compreso tra -2147483648 e 2147483647. Disponibilità Flash Lite 2.0 Operandi expression1 : Number - Un numero o un'espressione da spostare a destra. expression2 : Number - Un numero o un'espressione convertibile in un numero intero compreso tra 0 e 31. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 89 Elementi del linguaggio ActionScript Restituisce Number - Il risultato dell'operazione bit a bit. Esempio L'esempio seguente converte 65535 in un numero intero a 32 bit e lo sposta di 8 bit verso destra: var x:Number = 65535 >> 8; trace(x); // outputs 255 L'esempio seguente mostra il risultato dell'esempio precedente: var x:Number = 255; 65535 decimale equivale a 1111111111111111 binario (sedici volte 1), 1111111111111111 binario spostato verso destra di 8 bit è 11111111 binario, e 11111111 binario è 255 decimale. Il bit più significativo è 0 dal momento che gli interi sono a 32 bit, pertanto il bit di riempimento è 0. L'esempio seguente converte -1 in un numero intero a 32 bit e lo sposta di 1 bit verso destra: var x:Number = -1 >> 1; trace(x); // outputs -1 L'esempio seguente mostra il risultato dell'esempio precedente: var x:Number = -1; -1 decimale equivale a 11111111111111111111111111111111 binario (trentadue volte 1); se si sposta verso destra di un bit, il bit meno significativo (ovvero quello all'estrema destra) viene scartato e quello più significativo viene riempito con 1. Il risultato è 11111111111111111111111111111111 (trentadue volte 1) binario che rappresenta il numero intero -1 a 32 bit. Vedere anche Operatore >>= (spostamento a destra bit a bit e assegnazione) Operatore >>= (spostamento a destra bit a bit e assegnazione) expression1 >>= expression2 Questo operatore esegue un'operazione di spostamento bit a bit verso destra (<<) e memorizza il contenuto sotto forma di risultato in expression1. Le due istruzioni seguenti sono equivalenti: A >>= B; and A = (A >> B); Disponibilità Flash Lite 2.0 Operandi expression1 : Number - Un numero o un'espressione da spostare a destra. expression2 : Number - Un numero o un'espressione convertibile in un numero intero compreso tra 0 e 31. Restituisce Number - Il risultato dell'operazione bit a bit. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 90 Elementi del linguaggio ActionScript Esempio Il codice impostato come commento seguente utilizza l'operatore spostamento a destra bit a bit e assegnazione (>>=). function convertToBinary(numberToConvert:Number):String { var result:String = ""; for (var i = 0; i<32; i++) { // Extract least significant bit using bitwise AND var lsb:Number = numberToConvert & 1; // Add this bit to the result string result = (lsb ? "1" : "0")+result; // Shift numberToConvert right by one bit, to see next bit numberToConvert >>= 1; } return result; } trace(convertToBinary(479)); // Returns the string 00000000000000000000000111011111 // This string is the binary representation of the decimal // number 479 Vedere anche Operatore >> (spostamento a destra bit a bit) Operatore >>> (spostamento a destra bit a bit senza segno) expression1 >>> expression2 Uguale all'operatore di spostamento a destra (>>) ad eccezione del fatto che non conserva il segno dell'originale espressione poiché nei bit a sinistra vengono inseriti dei valori 0. I numeri a virgola mobile vengono convertiti in numeri interi scartando tutti i decimali. I numeri interi positivi vengono convertiti in un valore esadecimale senza segno con un valore massimo di 4294967295 o 0xFFFFFFFF; per i valori maggiori del valore massimo vengono scartate le cifre più significative al momento della conversione, in modo che il valore sia comunque a 32 bit. I numeri negativi vengono convertiti in un valore esadecimale senza segno tramite la notazione del complemento a due, con il minimo pari a -2147483648 o 0x800000000. I numeri minori del minimo vengono convertiti nel complemento a due con maggiore precisione; anche per questi numeri vengono scartate le cifre più significative. Disponibilità Flash Lite 2.0 Operandi expression1 : Number - Un numero o un'espressione da spostare a destra. expression2 : Number - Un numero o un'espressione convertibile in un numero intero compreso tra 0 e 31. Restituisce Number - Il risultato dell'operazione bit a bit. Esempio L'esempio seguente converte -1 in un numero intero a 32 bit e lo sposta di 1 bit verso destra: var x:Number = -1 >>> 1; trace(x); // output: 2147483647 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 91 Elementi del linguaggio ActionScript -1 decimale è 11111111111111111111111111111111 binario (trentadue volte 1), e quando si sposta verso destra (senza segno) di 1 bit, il bit meno significativo (ovvero quello all'estrema destra) viene scartato mentre quello più significativo (ovvero quello all'estrema sinistra) viene riempito con uno 0. Il risultato è 01111111111111111111111111111111 binario che rappresenta il numero intero a 2147483647 a 32 bit. Vedere anche Operatore >>= (spostamento a destra bit a bit e assegnazione) Operatore >>>= (spostamento a destra bit a bit senza segno e assegnazione) expression1 >>>= expression2 Esegue un'operazione di spostamento bit a bit verso destra senza segno e memorizza il contenuto sotto forma di risultato in expression1. Le due istruzioni seguenti sono equivalenti: A >>>= B; and A = (A >>> B); Disponibilità Flash Lite 2.0 Operandi expression1 : Number - Un numero o un'espressione da spostare a destra. expression2 : Number - Un numero o un'espressione convertibile in un numero intero compreso tra 0 e 31. Restituisce Number - Il risultato dell'operazione bit a bit. Vedere anche Operatore >>> (spostamento a destra bit a bit senza segno), Operatore >>= (spostamento a destra bit a bit e assegnazione) Operatore ^ (XOR bit a bit) expression1 ^ expression2 Converte expression1 e expression2 in numeri interi senza segno a 32 bit e restituisce un 1 in ogni posizione di bit nella quale i bit corrispondenti in expression1 o expression2, ma non in entrambi, sono 1. I numeri a virgola mobile vengono convertiti in numeri interi scartando tutti i decimali. Il risultato è un nuovo numero intero a 32 bit. I numeri interi positivi vengono convertiti in un valore esadecimale senza segno con un valore massimo di 4294967295 o 0xFFFFFFFF; per i valori maggiori del valore massimo vengono scartate le cifre più significative al momento della conversione, in modo che il valore sia comunque a 32 bit. I numeri negativi vengono convertiti in un valore esadecimale senza segno tramite la notazione del complemento a due, con il minimo pari a -2147483648 o 0x800000000. I numeri minori del minimo vengono convertiti nel complemento a due con maggiore precisione; anche per questi numeri vengono scartate le cifre più significative. Il valore restituito viene interpretato come complemento a due con segno, in modo da ottenere come valore restituito un numero intero compreso tra -2147483648 e 2147483647. Disponibilità Flash Lite 2.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 92 Elementi del linguaggio ActionScript Operandi expression1 : Number - Un numero. expression2 : Number - Un numero. Restituisce Number - Il risultato dell'operazione bit a bit. Esempio L'esempio seguente utilizza l'operatore XOR bit a bit sui decimali 15 e 9, e assegna il risultato alla variabile x: // 15 decimal = 1111 binary // 9 decimal = 1001 binary var x:Number = 15 ^ 9; trace(x); // 1111 ^ 1001 = 0110 // returns 6 decimal (0110 binary) Vedere anche Operatore & (AND bit a bit), Operatore &= (assegnazione AND bit a bit), Operatore ^= (assegnazione XOR bit a bit), Operatore | (OR bit a bit), Operatore |= (assegnazione OR bit a bit), Operatore ~ (NOT bit a bit) Operatore ^= (assegnazione XOR bit a bit) expression1 ^= expression2 Assegna a expression1 il valore di expression1 ^ expression2. Ad esempio, le due istruzioni seguenti sono equivalenti: x ^= y x = x ^ y Disponibilità Flash Lite 2.0 Operandi expression1 : Number - Numeri interi e variabili. expression2 : Number - Numeri interi e variabili. Restituisce Number - Il risultato dell'operazione bit a bit. Esempio L'esempio seguente mostra un'operazione assegnazione XOR bit a bit (^=): // 15 decimal = 1111 binary var x:Number = 15; // 9 decimal = 1001 binary var y:Number = 9; trace(x ^= y); // returns 6 decimal (0110 binary) Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 93 Elementi del linguaggio ActionScript Vedere anche Operatore & (AND bit a bit), Operatore &= (assegnazione AND bit a bit), Operatore ^ (XOR bit a bit), Operatore | (OR bit a bit)Operatore |= (assegnazione OR bit a bit), Operatore ~ (NOT bit a bit) Operatore /* (delimitatore commenti) /* comment */ /* comment comment */ Indica una o più righe di commento di script. Tutti i caratteri racchiusi tra il tag di inizio commento (/*) e il tag di fine commento (*/) vengono considerati come un commento e ignorati dall'interprete di ActionScript. Utilizzare il delimitatore commenti // per identificare i commenti su una sola riga. Utilizzare il delimitatore commenti /* per identificare i commenti su più righe successive. Quando si utilizza questo formato di delimitazione, se si omette il tag di fine commento (*/) o si cerca di nidificare i commenti, viene restituito un messaggio di errore. Dopo che è stato utilizzato un tag di inizio commento (/*), il primo tag di fine commento (*/) determina la fine del commento, indipendentemente dal numero di tag di inizio commento (/*) situati tra il primo tag di inizio e il tag di fine. Disponibilità Flash Lite 1.0 Operandi comment - Qualsiasi carattere. Esempio Lo script seguente utilizza i delimitatori commenti all'inizio dello script: /* records the X and Y positions of the ball and bat movie clips */ var ballX:Number = ball_mc._x; var ballY:Number = ball_mc._y; var batX:Number = bat_mc._x; var batY:Number = bat_mc._y; Il seguente tentativo di nidificare i commenti genera un messaggio di errore: /* this is an attempt to nest comments. /* But the first closing tag will be paired with the first opening tag */ and this text will not be interpreted as a comment */ Vedere anche Operatore // (delimitatore commenti) Operatore , (virgola) (expression1 , expression2 [, expressionN... ]) Valuta expression1 quindi expression2 e così via. Questo operatore viene utilizzato principalmente nelle istruzioni cicliche for spesso assieme all'operatore parentesi (). Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 94 Elementi del linguaggio ActionScript Disponibilità Flash Lite 1.0 Operandi expression1 : Number - Un'espressione da valutare. expression2 : Number - Un'espressione da valutare. expressionN : Number - Un numero qualsiasi di espressioni aggiuntive da valutare. Restituisce Object - Il valore di expression1, expression2, e così via. Esempio L'esempio seguente utilizza l'operatore virgola (,) in un ciclo for: for (i = 0, j = 0; i < 3 && j < 3; i++, j+=2) { trace("i = " + i + ", j = " + j); } // Output: // i = 0, j = 0 // i = 1, j = 2 L'esempio seguente utilizza l'operatore virgola (,) senza l'operatore parentesi () e mostra come l'operatore virgola restituisce solo il valore della prima espressione senza l'operatore parentesi (): var v:Number = 0; v = 4, 5, 6; trace(v); // output: 4 L'esempio seguente utilizza l'operatore virgola (,) con l'operatore parentesi () e mostra come l'operatore virgola restituisce il valore dell'ultima espressione se utilizzato con l'operatore parentesi (): var v:Number = 0; v = (4, 5, 6); trace(v); // output: 6 L'esempio seguente utilizza l'operatore virgola (,) senza l'operatore parentesi () e mostra come l'operatore virgola valuta in sequenza tutte le espressioni ma restituisce il valore della prima espressione. La seconda espressione, z++, viene valutata e z viene incrementato di uno. var v:Number = 0; var z:Number = 0; v = v + 4 , z++, v + 6; trace(v); // output: 4 trace(z); // output: 1 L'esempio seguente è identico all'esempio precedente a eccezione dell'aggiunta dell'operatore parentesi () e mostra nuovamente come l'operatore virgola (,), se utilizzato con l'operatore parentesi (), restituisce il valore dell'ultima espressione nella serie: var v:Number = 0; var z:Number = 0; v = (v + 4, z++, v + 6); trace(v); // output: 6 trace(z); // output: 1 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 95 Elementi del linguaggio ActionScript Vedere anche Operatore () (parentesi) Operatore add (concatenazione stringhe) string1 add string2 Sconsigliata a partire da Flash Player 5. Adobe consiglia di utilizzare l'operatore di addizione (+) quando si crea contenuto per Flash Player 5 o versioni successive. Nota: anche in Flash Lite 2.0 è sconsigliato l'operatore add a favore dell'operatore di addizione (+). Concatena due o più stringhe. L'operatore add sostituisce l'operatore & di Flash 4; quando vengono utilizzati nell'ambiente di creazione Flash 5 o versione successiva, i file di Flash Player 4 che utilizzano l'operatore & vengono automaticamente convertiti per utilizzare l'operatore add (+) per la concatenazione delle stringhe. Utilizzare l'operatore add (+) per concatenare le stringhe se si crea contenuto per Flash Player 4 o versioni precedenti. Disponibilità Flash Lite 1.0 Operandi string1 : String - Una stringa. string2 : String - Una stringa. Restituisce String - La stringa concatenata. Vedere anche Operatore + (addizione) Operatore condizionale ? expression1 ? expression2 : expression3 Indica a Flash di valutare expression1 e, se il valore di expression1 è true, restituisce il valore di expression2; altrimenti restituisce il valore di expression3. Disponibilità Flash Lite 1.0 Operandi expression1 : Object - Espressione che restituisce un valore booleano; solitamente un'espressione di confronto, come x < 5. expression2 : Object - Valori di qualsiasi tipo. expression3 : Object - Valori di qualsiasi tipo. Restituisce Object - Il valore di expression2 o expression3. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 96 Elementi del linguaggio ActionScript Esempio L'istruzione seguente assegna il valore della variabile x alla variabile z, poiché expression1 restituisce true: var x:Number = 5; var y:Number = 10; var z = (x < 6) ? x: y; trace (z); // returns 5 L'esempio seguente mostra un'istruzione condizionale in forma abbreviata: var timecode:String = (new Date().getHours() < 11) ? "AM" : "PM"; trace(timecode); La stessa istruzione condizionale può essere scritta anche per esteso, come nell'esempio seguente: if (new Date().getHours() < 11) { var timecode:String = "AM"; } else { var timecode:String = "PM"; } trace(timecode); Operatore -- (decremento) --expression expression-- Operatore unario di pre-decremento e post-decremento, che sottrae 1 da expression. Il valore di expression può essere una variabile, un elemento di un array o la proprietà di un oggetto. Il formato pre-decremento dell'operatore (-expression) sottrae 1 da expression e restituisce il risultato. Il formato di decremento dopo l'operazione (expression--) sottrae 1 da expression e restituisce il valore iniziale di expression (il valore prima della sottrazione). Disponibilità Flash Lite 1.0 Operandi espressione : Number - Un numero o una variabile che restituisce un numero. Restituisce Number - Il risultato del valore decrementato. Esempio Il formato pre-decremento dell'operatore decrementa x a 2 (x - 1 = 2) e restituisce il risultato come y: var x:Number = 3; var y:Number = --x; //y is equal to 2 Il formato post-decremento dell'operatore decrementa x a 2 (x - 1 = 2) e restituisce il valore originale di x come risultato y: var x:Number = 3; var y:Number = x--; //y is equal to 3 L'esempio seguente ripete da 10 a 1, e ogni iterazione del ciclo decrementa la variabile counter i di 1. for (var i = 10; i>0; i--) { trace(i); } Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 97 Elementi del linguaggio ActionScript Operatore / (divisione) expression1 / expression2 Divide expression1 per expression2. Il risultato della divisione corrisponde a un numero a virgola mobile e doppia precisione. Disponibilità Flash Lite 1.0 Operandi espressione : Number - Un numero o una variabile che restituisce un numero. Restituisce Number - Il risultato a virgola mobile dell'operazione. Esempio L'istruzione seguente divide la larghezza e l'altezza correnti dello stage, quindi visualizza il risultato nel pannello Output. trace(Stage.width/2); trace(Stage.height/2); Per una larghezza e un'altezza predefinite dello stage di 550 x 400, l'output è 275 e 150. Vedere anche Operatore % (modulo) Operatore /= (assegnazione divisione) expression1 /= expression2 Assegna a expression1 il valore di expression1 / expression2. Ad esempio, le due istruzioni seguenti sono equivalenti: x /= y; and x = x / y; Disponibilità Flash Lite 1.0 Operandi expression1 : Number - Un numero o una variabile che restituisce un numero. expression2 : Number - Un numero o una variabile che restituisce un numero. Restituisce Number - Un numero. Esempio Il codice seguente illustra l'uso dell'operatore assegnazione divisione (/=) con variabili e numeri: var x:Number = 10; var y:Number = 2; x /= y; trace(x); // output: 5 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 98 Elementi del linguaggio ActionScript Vedere anche Operatore / (divisione) Operatore punto . object.property_or_method instancename.variable instancename.childinstance instancename.childinstance.variable Utilizzato per spostarsi nelle gerarchie dei clip filmato e accedere ai clip filmato nidificati (secondari), alle variabili e alle proprietà. L'operatore punto è anche utilizzato per provare o impostare le proprietà di un oggetto o classe di livello principale, eseguire un metodo di un oggetto o classe di livello principale, o creare una struttura di dati. Disponibilità Flash Lite 1.0 Operandi object : Object - Un'istanza di una classe. L'oggetto può essere un'istanza di una qualsiasi delle classi incorporate in ActionScript o di una classe personalizzata. Questo parametro si trova sempre a sinistra dell'operatore punto (.). property_or_method - Il nome di una proprietà o di un metodo associati ad un oggetto. Tutti i metodi e le proprietà validi per le classi incorporate sono elencati nelle tabelle di riepilogo di proprietà e metodi della relativa classe. Questo parametro si trova sempre a destra dell'operatore punto (.). instancename : MovieClip - Il nome dell'istanza di un clip filmato. variable — Il nome dell'istanza a sinistra dell'operatore punto (.) può anche rappresentare una variabile nella linea temporale del clip filmato. childinstance : MovieClip - Un'istanza di clip filmato secondario, o nidificato, rispetto a un altro clip filmato. Restituisce Object - Il metodo, la proprietà o il clip filmato menzionati a destra del punto. Esempio L'esempio seguente identifica il valore corrente della variabile hairColor nel clip filmato person_mc: person_mc.hairColor L'ambiente di creazione Flash 4 non supportava la sintassi del punto, tuttavia i file di Flash MX 2004 pubblicati per Flash Player 4 possono utilizzare l'operatore punto. L'esempio precedente è equivalente alla sintassi di Flash 4 (obsoleta) seguente: /person_mc:hairColor L'esempio seguente crea un nuovo clip filmato all'interno dell'area di validità di _root. All'interno del clip filmato viene successivamente creato un campo di testo di nome container_mc. La proprietà autoSize del campo di testo viene impostata su true e successivamente viene inserita la data corrente. this.createEmptyMovieClip("container_mc", this.getNextHighestDepth()); this.container_mc.createTextField("date_txt", this.getNextHighestDepth(), 0, 0, 100, 22); this.container_mc.date_txt.autoSize = true; this.container_mc.date_txt.text = new Date(); Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 99 Elementi del linguaggio ActionScript L'operatore punto (.) viene utilizzato quando si specificano le istanze all'interno del file SWF e quando è necessario impostare le proprietà e i valori per tali istanze. Operatore == (uguaglianza) expression1 == expression2 Confronta due espressioni per verificarne l'uguaglianza. Il risultato è true se le espressioni sono uguali. La definizione di uguale dipende dal tipo di dati del parametro: • I numeri e i valori booleani vengono confrontati in base al valore e sono considerati uguali se hanno lo stesso valore. • Le espressioni stringa sono uguali se hanno lo stesso numero di caratteri e questi sono identici. • Le variabili che rappresentano oggetti, array e funzioni vengono confrontate in base ai riferimenti. Due espressioni di questo tipo sono uguali se entrambe si riferiscono allo stesso oggetto, array o funzione. Due array separati non vengono mai considerati uguali, anche se contengono lo stesso numero di elementi. Nel confronto in base al valore, se expression1 e expression2 sono tipi di dati diversi, ActionScript cerca di convertire il tipo di dati di expression2 in modo che corrisponda al tipo di dati di expression1. Disponibilità Flash Lite 1.0 Operandi expression1 : Object - Un numero, una stringa, un valore booleano, una variabile, un oggetto, un array o una funzione. expression2 : Object - Un numero, una stringa, un valore booleano, una variabile, un oggetto, un array o una funzione. Restituisce Boolean - Il risultato booleano del confronto. Esempio L'esempio seguente utilizza l'operatore uguaglianza (==) con un'istruzione if: var a:String = "David", b:String = "David"; if (a == b) { trace("David is David"); } Gli esempi seguenti mostrano i risultati delle operazioni che confrontano tipi misti: var x:Number = 5; var y:String = "5"; trace(x == y); // output: true var x:String = "5"; var y:String = "66"; trace(x == y); // output: false var x:String = "chris"; var y:String = "steve"; trace(x == y); // output: false Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 100 Elementi del linguaggio ActionScript Gli esempi seguenti mostrano il confronto in base al riferimento. Il primo confronta due array con lunghezza ed elementi identici. L'operatore uguaglianza restituisce false per i due array. Benché gli array appaiano uguali, il confronto in base al riferimento richiede che entrambi facciano riferimento allo stesso array. Il secondo esempio crea la variabile thirdArray, che punta allo stesso array della variabile firstArray. L'operatore uguaglianza restituisce true per questi due array, poiché le due variabili fanno riferimento allo stesso array. var firstArray:Array = new Array("one", "two", "three"); var secondArray:Array = new Array("one", "two", "three"); trace(firstArray == secondArray); // will output false // Arrays are only considered equal // if the variables refer to the same array. var thirdArray:Array = firstArray; trace(firstArray == thirdArray); // will output true Vedere anche Operatore ! NOT logico, Operatore != (diseguaglianza), Operatore !== (diseguaglianza rigorosa), Operatore && (AND logico)Operatore || (OR logico), Operatore === (uguaglianza rigorosa) Operatore eq (uguaglianza stringhe) expression1 eq expression2 Sconsigliata a partire da Flash Player 5. Questo operatore è stato sconsigliato a favore dell'operatore == (uguaglianza). Esegue un confronto tra due espressioni per verificarne l'uguaglianza e restituisce true se la rappresentazione sotto forma di stringa di expression1 è uguale alla rappresentazione sotto forma di stringa di expression2; in caso contrario, restituisce false. Disponibilità Flash Lite 1.0 Operandi expression1 : Object - Numeri, stringhe o variabili. expression2 : Object - Numeri, stringhe o variabili. Restituisce Boolean - Il risultato del confronto. Vedere anche Operatore == (uguaglianza) Operatore > (maggiore di) expression1 > expression2 Esegue un confronto tra due espressioni e determina se expression1 è maggiore di expression2; in caso affermativo, l'operatore restituisce true. Se expression1 è minore di o uguale aexpression2, l'operatore restituisce false. Le espressioni stringa vengono valutate in base all'ordine alfabetico; tutte le lettere maiuscole vengono prima delle minuscole. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 101 Elementi del linguaggio ActionScript Disponibilità Flash Lite 1.0 Operandi expression1 : Object - Un numero o una stringa. expression2 : Object - Un numero o una stringa. Restituisce Boolean - Il risultato booleano del confronto. Esempio Nell'esempio seguente, l'operatore maggiore di (>) viene utilizzato per determinare se il valore del campo di testo score_txt è maggiore di 90: if (score_txt.text>90) { trace("Congratulations, you win!"); } else { trace("sorry, try again"); } Operatore gt (maggiore di) (stringhe) expression1 gt expression2 Sconsigliata a partire da Flash Player 5. Questo operatore è stato sconsigliato a favore dell'operatore > (maggiore di). Esegue un confronto tra la rappresentazione sotto forma di stringa di expression1 e la rappresentazione sotto forma di stringa di expression2 e restituisce true se expression1 è maggiore di expression2; in caso contrario, restituisce false. Disponibilità Flash Lite 1.0 Operandi expression1 : Object - Numeri, stringhe o variabili. expression2 : Object - Numeri, stringhe o variabili. Restituisce Boolean - Il risultato booleano del confronto. Vedere anche Operatore > (maggiore di) Operatore >= (maggiore o uguale a) expression1 >= expression2 Esegue un confronto tra due espressioni e determina se expression1 è maggiore di o uguale a expression2 (true) o se expression1 è minore di expression2 (false) Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 102 Elementi del linguaggio ActionScript Disponibilità Flash Lite 1.0 Operandi expression1 : Object - Una stringa, un numero intero o un numero a virgola mobile. expression2 : Object - Una stringa, un numero intero o un numero a virgola mobile. Restituisce Boolean - Il risultato booleano del confronto. Esempio Nell'esempio seguente, l'operatore maggiore o uguale a (>=) viene utilizzato per determinare se l'ora corrente è maggiore o uguale a 12: if (new Date().getHours() >= 12) { trace("good afternoon"); } else { trace("good morning"); } Operatore ge (maggiore o uguale a) (stringhe) expression1 ge expression2 Sconsigliata a partire da Flash Player 5. Questo operatore è stato sconsigliato a favore dell'operatore >= (maggiore di o uguale a). Esegue un confronto tra la rappresentazione sotto forma di stringa di expression1 e la rappresentazione sotto forma di stringa di expression2 e restituisce true se expression1 è maggiore di o uguale a expression2; in caso contrario, restituisce false. Disponibilità Flash Lite 1.0 Operandi expression1 : Object - Numeri, stringhe o variabili. expression2 : Object - Numeri, stringhe o variabili. Restituisce Boolean - Il risultato del confronto. Vedere anche Operatore >= (maggiore o uguale a) Operatore ++ (incremento) ++expression expression++ Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 103 Elementi del linguaggio ActionScript Operatore unario di pre-incremento e post-incremento che aggiunge 1 a expression. Il valore di expression può essere una variabile, un elemento di un array o la proprietà di un oggetto. Il formato pre-incremento dell'operatore (++expression) aggiunge 1 a expression e restituisce il risultato. Il formato di incremento dopo l'operazione (expression++) aggiunge 1 a expression e restituisce il valore iniziale di expression (il valore prima dell'addizione). Il formato pre-incremento dell'operatore incrementa x a 2 (x + 1 = 2) e restituisce il risultato come y: var x:Number = var y:Number = trace("x:"+x); trace("y:"+y); 1; ++x; //traces x:2 //traces y:2 Il formato post-incremento dell'operatore incrementa x a 2 (x + 1 = 2) e restituisce il valore originale di x come risultato y: var x:Number = var y:Number = trace("x:"+x); trace("y:"+y); 1; x++; //traces x:2 //traces y:1 Disponibilità Flash Lite 1.0 Operandi espressione : Number - Un numero o una variabile che restituisce un numero. Restituisce Number - Il risultato dell'incremento. Esempio L'esempio seguente utilizza ++ come operatore di incremento dopo l'operazione per far eseguire cinque volte un ciclo while: var i:Number = 0; while (i++ < 5) { trace("this is execution " + i); } /* output: this is execution 1 this is execution 2 this is execution 3 this is execution 4 this is execution 5 */ L'esempio seguente utilizza ++ come operatore di pre-incremento: var a:Array = new Array(); var i:Number = 0; while (i < 10) { a.push(++i); } trace(a.toString()); //traces: 1,2,3,4,5,6,7,8,9,10 Anche l'esempio utilizza ++ come operatore di pre-incremento: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 104 Elementi del linguaggio ActionScript var a:Array = []; for (var i = 1; i <= 10; ++i) { a.push(i); } trace(a.toString()); //traces: 1,2,3,4,5,6,7,8,9,10 Questo script mostra il risultato seguente nel pannello Output 1,2,3,4,5,6,7,8,9,10 L'esempio seguente utilizza ++ come operatore di post-incremento in un ciclo while: // using a while loop var a:Array = new Array(); var i:Number = 0; while (i < 10) { a.push(i++); } trace(a.toString()); //traces 0,1,2,3,4,5,6,7,8,9 L'esempio seguente utilizza ++ come operatore di post-incremento in un ciclo for: // using a for loop var a:Array = new Array(); for (var i = 0; i < 10; i++) { a.push(i); } trace(a.toString()); //traces 0,1,2,3,4,5,6,7,8,9 Questo script mostra il risultato seguente nel pannello Output: 0,1,2,3,4,5,6,7,8,9 Operatore != (diseguaglianza) expression1 != expression2 Prova l'esatto opposto dell'operatore di uguaglianza (==). Se expression1 è uguale a expression2, il risultato è false. Come nel caso dell'operatore di uguaglianza (==), la definizione di uguale dipende dai tipi di dati confrontati, come nell'elenco seguente: • Numeri, stringhe e valori booleani vengono confrontati in base al valore. • Oggetti, array e funzioni vengono confrontati in base ai riferimenti. • Una variabile viene confrontata in base al valore o al riferimento, a seconda del suo tipo. Un confronto in base al valore significa quello che più comunemente si intende per "uguaglianza", vale a dire, che due espressioni hanno lo stesso valore. Ad esempio, l'espressione (2 + 3) equivale all'espressione (1 + 4) se le due espressioni vengono confrontate in base al valore. Il confronto in base al riferimento significa invece che due espressioni sono equivalenti solo se entrambe si riferiscono allo stesso oggetto, array o funzione. I valori all'interno dell'oggetto, dell'array o della funzione non vengono confrontati. Nel confronto in base al valore, se expression1 e expression2 sono tipi di dati diversi, ActionScript cerca di convertire il tipo di dati di expression2 in modo che corrisponda al tipo di dati di expression1. Disponibilità Flash Lite 2.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 105 Elementi del linguaggio ActionScript Operandi expression1 : Object - Un numero, una stringa, un valore booleano, una variabile, un oggetto, un array o una funzione. expression2 : Object - Un numero, una stringa, un valore booleano, una variabile, un oggetto, un array o una funzione. Restituisce Boolean - Il risultato booleano del confronto. Esempio L'esempio seguente mostra il risultato dell'operatore diseguaglianza (!=): trace(5 != 8); // returns true trace(5 != 5); //returns false L'esempio seguente mostra l'utilizzo dell'operatore di diseguaglianza (!=) in un'istruzione if: var a:String = "David"; var b:String = "Fool"; if (a != b) { trace("David is not a fool"); } L'esempio seguente mostra il confronto in base al riferimento di due funzioni: var a:Function = function() { trace("foo"); }; var b:Function = function() { trace("foo"); }; a(); // foo b(); // foo trace(a != b); // true a = b; a(); // foo b(); // foo trace(a != b); // false // trace statement output: foo foo true foo foo false L'esempio seguente mostra il confronto in base al riferimento di due array: var a:Array = [ 1, 2, 3 ]; var b:Array = [ 1, 2, 3 ]; trace(a); // 1, 2, 3 trace(b); // 1, 2, 3 trace(a!=b); // true a = b; trace(a); // 1, 2, 3 trace(b); // 1, 2, 3 trace(a != b); // false // trace statement output: 1,2,3 1,2,3 true 1,2,3 1,2,3 false Vedere anche Operatore ! NOT logico, Operatore !== (diseguaglianza rigorosa), Operatore && (AND logico), Operatore || (OR logico), Operatore == (uguaglianza), Operatore === (uguaglianza rigorosa) Operatore <> (diseguaglianza) expression1 <> expression2 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 106 Elementi del linguaggio ActionScript Sconsigliata a partire da Flash Player 5. Questo operatore è stato sconsigliato. Adobe consiglia di utilizzare l'operatore != (diseguaglianza). Prova l'esatto opposto dell'operatore di uguaglianza (==). Se expression1 è uguale a expression2, il risultato è false. Come nel caso dell'operatore di uguaglianza (==), la definizione di uguale dipende dai tipi di dati confrontati: • Numeri, stringhe e valori booleani vengono confrontati in base al valore. • Oggetti, array e funzioni vengono confrontati in base ai riferimenti. • Le variabili vengono confrontate in base al valore o al riferimento, a seconda del tipo. Disponibilità Flash Lite 1.0 Operandi expression1 : Object - Un numero, una stringa, un valore booleano, una variabile, un oggetto, un array o una funzione. expression2 : Object - Un numero, una stringa, un valore booleano, una variabile, un oggetto, un array o una funzione. Restituisce Boolean - Il risultato booleano del confronto. Vedere anche Operatore != (diseguaglianza) Operatore instanceof object instanceof classConstructor Prova se object è un'istanza di classConstructor o una sottoclasse di classConstructor. L'operatore instanceof non converte i tipi di base in oggetti wrapper. Ad esempio, il codice seguente restituisce true: new String("Hello") instanceof String; Mentre il codice seguente restituisce false: "Hello" instanceof String; Disponibilità Flash Lite 2.0 Operandi object : Object - Un oggetto ActionScript. classConstructor : Function - Un riferimento a una funzione di costruzione ActionScript, come String o Date. Restituisce Boolean - Se object è un'istanza di una sottoclasse di classConstructor, instanceof restituisce true; in caso contrario restituisce false. Anche _global instanceof Object restituisce false. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 107 Elementi del linguaggio ActionScript Vedere anche Operatore typeof Operatore < (minore di) expression1 < expression2 Esegue un confronto tra due espressioni e determina se expression1 è minore di expression2; in caso affermativo, l'operatore restituisce true. Se expression1 è minore o uguale a expression2, l'operatore restituisce false. Le espressioni stringa vengono valutate in base all'ordine alfabetico; tutte le lettere maiuscole vengono prima delle minuscole. Disponibilità Flash Lite 1.0 Operandi expression1 : Number - Un numero o una stringa. expression2 : Number - Un numero o una stringa. Restituisce Boolean - Il risultato booleano del confronto. Esempio Gli esempi seguenti mostrano i risultati true e false sia per i confronti numerici che per quelli di stringa: trace(3 < 10); // true trace(10 < 3); // false trace("Allen" < "Jack"); // true trace("Jack" < "Allen"); //false trace("11" < "3"); // true trace("11" < 3); // false (numeric comparison) trace("C" < "abc"); // true trace("A" < "a"); // true Operatore lt (minore di) (stringhe) expression1 lt expression2 Sconsigliata a partire da Flash Player 5. Questo operatore è stato sconsigliato a favore dell'operatore < (minore di). Esegue il confronto tra expression1 e expression2 e restituisce true se expression1 è minore di expression2; in caso contrario, restituisce false. Disponibilità Flash Lite 1.0 Operandi expression1 : Object - Numeri, stringhe o variabili. expression2 : Object - Numeri, stringhe o variabili. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 108 Elementi del linguaggio ActionScript Restituisce Boolean - Il risultato del confronto. Vedere anche Operatore < (minore di) Operatore <= (minore o uguale a) expression1 <= expression2 Esegue un confronto tra due espressioni e determina se expression1 è minore di o uguale a expression2; in caso affermativo, l'operatore restituisce true. Se expression1 è maggiore di expression2, l'operatore restituisce false. Le espressioni stringa vengono valutate in base all'ordine alfabetico; tutte le lettere maiuscole vengono prima delle minuscole. Disponibilità Flash Lite 1.0 Operandi expression1 : Object - Un numero o una stringa. expression2 : Object - Un numero o una stringa. Restituisce Boolean - Il risultato booleano del confronto. Esempio Gli esempi seguenti mostrano i risultati true e false sia per i confronti numerici che per quelli di stringa: trace(5 <= 10); // true trace(2 <= 2); // true trace(10 <= 3); // false trace("Allen" <= "Jack"); // true trace("Jack" <= "Allen"); // false trace("11" <= "3"); // true trace("11" <= 3); // false (numeric comparison) trace("C" <= "abc"); // true trace("A" <= a); // true Operatore le (minore o uguale a) (stringhe) expression1 le expression2 Sconsigliata a partire da Flash Player 5. Questo operatore è stato sconsigliato in Flash 5 a favore dell'operatore <= (minore di o uguale a). Esegue il confronto tra expression1 e expression2 e restituisce true se expression1 è minore o uguale a expression2; in caso contrario, restituisce false. Disponibilità Flash Lite 1.0 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 109 Ultimo aggiornamento 4/5/2010 Elementi del linguaggio ActionScript Operandi expression1 : Object - Numeri, stringhe o variabili. expression2 : Object - Numeri, stringhe o variabili. Restituisce Boolean - Il risultato del confronto. Vedere anche Operatore <= (minore o uguale a) Operatore // (delimitatore commenti) // comment Indica l'inizio di un commento di script. Tutti i caratteri racchiusi tra il delimitatore (//) e il carattere di fine riga vengono considerati commenti e ignorati dall'interprete di ActionScript. Disponibilità Flash Lite 1.0 Operandi comment - Qualsiasi carattere. Esempio Lo script seguente utilizza i delimitatori commenti per identificare la prima, terza, quinta e settima riga come commenti: // record the X position of the var ballX:Number = ball_mc._x; // record the Y position of the var ballY:Number = ball_mc._y; // record the X position of the var batX:Number = bat_mc._x; // record the Y position of the var batY:Number = bat_mc._y; ball movie clip ball movie clip bat movie clip ball movie clip Vedere anche Operatore /* (delimitatore commenti) Operatore && (AND logico) expression1 && expression2 Esegue un'operazione booleana sui valori di una delle due espressioni o di entrambe. Valuta expression1 (l'espressione a sinistra dell'operatore) e restituisce false se l'espressione equivale a false. Se expression1 restituisce true, viene valutata expression2 (l'espressione a destra dell'operatore). Se expression2 restituisce true, il risultato finale è true; in caso contrario, è false. L'espressione viene valutata come segue: true&&true a true, true&&false a false, false&&false a false e false&&true a false. Disponibilità Flash Lite 1.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 110 Elementi del linguaggio ActionScript Operandi expression1 : Number - Un valore booleano o un'espressione convertibile in un valore booleano. expression2 : Number - Un valore booleano o un'espressione convertibile in un valore booleano. Restituisce Boolean - Un risultato booleano dell'operazione logica. Esempio L'esempio seguente utilizza l'operatore AND logico (&&) per eseguire una prova che determini se un giocatore ha vinto il gioco. La variabile turns e la variabile score vengono aggiornate quando un giocatore comincia il proprio turno o realizza dei punti durante il gioco. Lo script mostra la scritta "You Win the Game!" nel pannello Output quando il punteggio del giocatore raggiunge 75 o più punti in 3 o meno turni. var turns:Number = 2; var score:Number = 77; if ((turns <= 3) && (score >= 75)) { trace("You Win the Game!"); } else { trace("Try Again!"); } // output: You Win the Game! Vedere anche Operatore ! NOT logico, Operatore != (diseguaglianza), Operatore !== (diseguaglianza rigorosa), Operatore || (OR logico)Operatore == (uguaglianza), Operatore === (uguaglianza rigorosa) Operatore and (AND logico) condition1 and condition2 Sconsigliata a partire da Flash Player 5. Adobe consiglia di utilizzare l'operatore logico AND (&&). Esegue un'operazione AND logico (&&) in Flash Player 4. Se entrambe le espressioni restituiscono true, l'intera espressione è true. Disponibilità Flash Lite 1.0 Operandi condition1 : Boolean - Condizione o espressione che restituisce true o false. condition2 : Boolean - Condizione o espressione che restituisce true o false. Restituisce Boolean - Un risultato booleano dell'operazione logica. Vedere anche Operatore && (AND logico) Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 111 Elementi del linguaggio ActionScript Operatore ! NOT logico ! expression Inverte il valore booleano di una variabile o espressione. Se expression è una variabile con un valore convertito o assoluto true, il valore di !expression è false. Se l'espressione x && y restituisce false, l'espressione !(x && y) restituisce true. Pertanto, !true restituisce false e !false restituisce true. Disponibilità Flash Lite 1.0 Operandi espressione : Boolean - Un'espressione o una variabile che restituisce un valore booleano. Restituisce Boolean - Il risultato booleano dell'operazione logica. Esempio Nell'esempio seguente, la variabile happy è impostata su false. La condizione if restituisce la condizione !happy, e se la condizione è true, l'istruzione trace() invia una stringa al pannello Output. var happy:Boolean = false; if (!happy) { trace("don't worry, be happy"); //traces don't worry, be happy } L'istruzione determina un'istruzione trace poiché !false è uguale a true. Vedere anche Operatore != (diseguaglianza), Operatore !== (diseguaglianza rigorosa), Operatore && (AND logico), Operatore || (OR logico)Operatore == (uguaglianza), Operatore === (uguaglianza rigorosa) Operatore not (NOT logico) not expression Sconsigliato a partire da Flash Player 5: questo operatore è stato sconsigliato a favore dell'operatore ! (NOT logico). Esegue un'operazione NOT logica (!) in Flash Player 4. Disponibilità Flash Lite 1.0 Operandi espressione : Object - Una variabile o altra espressione convertibile in un valore booleano. Restituisce Boolean - Il risultato dell'operazione logica. Vedere anche Operatore ! NOT logico Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 112 Elementi del linguaggio ActionScript Operatore || (OR logico) expression1 || expression2 Valuta expression1 (l'espressione a sinistra dell'operatore) e restituisce true se l'espressione equivale a true. Se expression1 restituisce false, viene valutata expression2 (l'espressione a destra dell'operatore). Se expression2 restituisce false, il risultato finale è false; in caso contrario, è true. Se si utilizza una chiamata ad una funzione come expression2, la funzione non viene eseguita dalla chiamata se expression1 restituisce true. Il risultato è true se almeno una delle espressioni restituisce true; il risultato è false solo se entrambe le espressioni restituiscono false. È possibile utilizzare l'operatore logico OR con un numero qualsiasi di operandi; se uno degli operandi restituisce true, il risultato è true. Disponibilità Flash Lite 1.0 Operandi expression1 : Number - Un valore booleano o un'espressione convertibile in un valore booleano. expression2 : Number - Un valore booleano o un'espressione convertibile in un valore booleano. Restituisce Boolean - Il risultato dell'operazione logica. Esempio L'esempio seguente utilizza l'operatore OR logico (||) in un'istruzione if. La seconda espressione restituisce true, quindi il risultato finale è true: var x:Number = 10; var y:Number = 250; var start:Boolean = false; if ((x > 25) || (y > 200) || (start)) { trace("the logical OR test passed"); // output: the logical OR test passed } Il messaggio "the logical OR test passed" viene visualizzato poiché una delle condizioni dell'istruzione if è true (y>200). Benché le altre due espressioni restituiscano false, il blocco if viene eseguito perché una condizione restituisce true. L'esempio seguente dimostra come l'uso di una chiamata di funzione come expression2 può portare a risultati imprevisti. Se l'espressione a sinistra dell'operatore restituisce true, tale risultato viene restituito senza che venga valutata l'espressione a destra (la funzione fx2() non viene chiamata). Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 113 Elementi del linguaggio ActionScript function fx1():Boolean { trace("fx1 called"); return true; } function fx2():Boolean { trace("fx2 called"); return true; } if (fx1() || fx2()) { trace("IF statement entered"); } /* The following is sent to the Output panel: /* The following is sent to the log file: fx1 called IF statement entered */ Vedere anche Operatore ! NOT logico, Operatore != (diseguaglianza), Operatore !== (diseguaglianza rigorosa), Operatore && (AND logico),Operatore == (uguaglianza), Operatore === (uguaglianza rigorosa) Operatore or (OR logico) condition1 or condition2 Sconsigliata a partire da Flash Player 5. Questo operatore è stato sconsigliato a favore dell'operatore || (OR logico). Valuta condition1 e condition2 e, se una delle espressioni è true, l'intera espressione è true. Disponibilità Flash Lite 1.0 Operandi condition1 : Boolean - Espressione che restituisce true o false. condition1 : Boolean - Espressione che restituisce true o false. Restituisce Boolean - Il risultato dell'operazione logica. Vedere anche Operatore || (OR logico), Operatore | (OR bit a bit) Operatore % (modulo) expression1 % expression2 Calcola il resto di expression1 diviso per expression2. Se nessuno dei parametri expression è numerico, l'operatore modulo (%) cerca di convertirli in numeri. expression può essere un numero o una stringa convertibile in un valore numerico. Il segno del risultato dell'operazione modulo corrisponde al segno del dividendo (ovvero il primo numero). Ad esempio, sia -4 % 3 che -4 % -3 restituiscono -1. Disponibilità Flash Lite 1.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 114 Elementi del linguaggio ActionScript Operandi expression1 : Number - Un numero o un'espressione che restituisce un numero. expression2 : Number - Un numero o un'espressione che restituisce un numero. Restituisce Number - Il risultato dell'operazione aritmetica. Esempio L'esempio numerico seguente utilizza l'operatore modulo (%): trace(12%5); // traces 2 trace(4.3%2.1); // traces 0.0999999999999996 trace(4%4); // traces 0 La prima istruzione trace restituisce 2 anziché 12/5 o 2,4, poiché l'operatore modulo (%) restituisce solo il resto. La seconda istruzione trace restituisce 0.0999999999999996 anziché il valore 0.1 previsto a causa delle limitazioni della precisione della virgola mobile nell'elaborazione binaria. Vedere anche Operatore / (divisione), round (metodo Math.round) Operatore %= (assegnazione modulo) expression1 %= expression2 Assegna a expression1 il valore di expression1 % expression2. Le due istruzioni seguenti sono equivalenti: x %= y; and x = x % y; Disponibilità Flash Lite 1.0 Operandi expression1 : Number - Un numero o un'espressione che restituisce un numero. expression2 : Number - Un numero o un'espressione che restituisce un numero. Restituisce Number - Il risultato dell'operazione aritmetica. Esempio l'esempio seguente assegna il valore 4 alla variabile x: var x:Number = 14; var y:Number = 5; trace(x %= y); // output: 4 Vedere anche Operatore % (modulo) Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 115 Elementi del linguaggio ActionScript Operatore * (moltiplicazione) expression1 * expression2 Moltiplica due espressioni numeriche. Se entrambe le espressioni sono numeri interi, il prodotto è un numero intero. Se almeno una delle due espressioni è un numero a virgola mobile, il prodotto è un numero a virgola mobile. Disponibilità Flash Lite 1.0 Operandi expression1 : Number - Un numero o un'espressione che restituisce un numero. expression2 : Number - Un numero o un'espressione che restituisce un numero. Restituisce Number - Un numero intero o un numero a virgola mobile. Esempio Uso 1: l'istruzione seguente moltiplica gli interi 2 e 3: trace(2*3); // output: 6 Il risultato è un numero intero: 6. Uso 2: questa istruzione moltiplica i numeri a virgola mobile 2.0 e 3.1416: trace(2.0 * 3.1416); // output: 6.2832 Il risultato è un numero a virgola mobile: 6,2832. Operatore *= (assegnazione moltiplicazione) expression1 *= expression2 Assegna a expression1 il valore di expression1 * expression2. Ad esempio, le due espressioni seguenti sono equivalenti: x *= y x = x * y Disponibilità Flash Lite 1.0 Operandi expression1 : Number - Un numero o un'espressione che restituisce un numero. expression2 : Number - Un numero o un'espressione che restituisce un numero. Restituisce Number - Il valore di expression1 * expression2. Se non è possibile convertire un'espressione in un valore numerico, viene restituito NaN (not a number). Esempio Uso 1: l'esempio seguente assegna il valore 50 alla variabile x: var x:Number = 5; var y:Number = 10; trace(x *= y); // output: 50 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 116 Elementi del linguaggio ActionScript Uso 2: la seconda e terza riga dell'esempio seguente calcolano le espressioni a destra del segno di uguale e assegnano i risultati a x e y: var i:Number = var x:Number = var y:Number = trace(x *= y); 5; 4 - 6; i + 2; // output: -14 Vedere anche Operatore * (moltiplicazione) Operatore new new constructor() Crea un nuovo oggetto, inizialmente anonimo, e chiama la funzione identificata dal parametro constructor. L'operatore new passa alla funzione tutti gli eventuali parametri opzionali tra parentesi, oltre all'oggetto appena creato, a cui viene fatto riferimento mediante la parola chiave this. La funzione constructor può quindi utilizzare this per impostare le variabili dell'oggetto. Disponibilità Flash Lite 2.0 Operandi constructor : Object - Una funzione seguita dagli eventuali parametri opzionali tra parentesi. Di solito, la funzione è il nome del tipo di oggetto (ad esempio, Array, Number o Object) da creare. Esempio L'esempio seguente crea la funzione Book(), quindi utilizza l'operatore new per creare gli oggetti book1 e book2. function Book(name, price){ this.name = name; this.price = price; } book1 = new Book("Confederacy of Dunces", 19.95); book2 = new Book("The Floating Opera", 10.95); L'esempio seguente utilizza l'operatore new per creare un oggetto Array con 18 elementi: golfCourse_array = new Array(18); Vedere anche Operatore [] (accesso array), Operatore {} (inizializzatore di oggetto) Operatore ne (non uguale) (stringhe) expression1 ne expression2 Sconsigliata a partire da Flash Player 5. Questo operatore è stato sconsigliato a favore dell'operatore != (diseguaglianza). Esegue il confronto tra expression1 e expression2 e restituisce true se expression1 non è uguale a expression2; in caso contrario, restituisce false. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 117 Elementi del linguaggio ActionScript Disponibilità Flash Lite 1.0 Operandi expression1 : Object - Numeri, stringhe o variabili. expression2 : Object - Numeri, stringhe o variabili. Restituisce Boolean - Restituisce true se expression1 non è uguale a expression2; in caso contrario, restituiscefalse. Vedere anche Operatore != (diseguaglianza) Operatore {} (inizializzatore di oggetto) object = { name1 : value1 , name2 : value2 ,... nameN : valueN } {expression1; [...expressionN]} Crea un nuovo oggetto e lo inizializza con le coppie di proprietà name e value specificate. L'uso di questo operatore equivale a utilizzare la sintassi new Object e indicare le coppie di proprietà mediante l'operatore di assegnazione. Il prototipo dell'oggetto appena creato viene solitamente chiamato oggetto Object. Questo operatore viene anche utilizzato per contrassegnare i blocchi di codice contigui associati alle istruzioni (for, while, if, else, switch) e funzioni. Disponibilità Flash Lite 2.0 Operandi object : Object - L'oggetto da creare. name1,2,...N I nomi delle proprietà. value1,2,...N I valori corrispondenti per ciascuna proprietà name. Restituisce Object - Uso 1: un oggetto Object. Uso 2: nessuno, ad eccezione di quando una funzione ha un'istruzione return esplicita, nel qual caso il tipo restituito viene specificato nell'implementazione della funzione. Esempio La prima riga del codice seguente crea un oggetto vuoto mediante l'operatore inizializzatore di oggetto ({}); la seconda riga crea un nuovo oggetto mediante una funzione di costruzione: var object:Object = {}; var object:Object = new Object(); L'esempio seguente crea un oggetto account e inizializza le proprietà name, address, city, state, zip e balance con i relativi valori: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 118 Elementi del linguaggio ActionScript var account:Object = {name:"Macromedia, Inc.", address:"600 Townsend Street", city:"San Francisco", state:"California", zip:"94103", balance:"1000"}; for (i in account) { trace("account." + i + " = " + account[i]); } L'esempio seguente mostra il modo in cui gli inizializzatori di array e di oggetto possono essere nidificati l'uno dentro l'altro: var person:Object = {name:"Gina Vechio", children:["Ruby", "Chickie", "Puppa"]}; L'esempio seguente utilizza le informazioni dell'esempio precedente e produce lo stesso risultato mediante le funzioni di costruzione: var person:Object = new Object(); person.name = "Gina Vechio"; person.children = new Array(); person.children[0] = "Ruby"; person.children[1] = "Chickie"; person.children[2] = "Puppa"; L'esempio di ActionScript precedente può essere scritto anche nel formato seguente: var person:Object = new Object(); person.name = "Gina Vechio"; person.children = new Array("Ruby", "Chickie", "Puppa"); Vedere anche Object Operatore () (parentesi) (expression1 [, expression2]) ( expression1, expression2 ) function ( parameter1,..., parameterN ) Esegue un'operazione di raggruppamento su uno o più parametri, esegue una valutazione sequenziale delle espressioni, oppure racchiude uno o più parametri e li trasmette come tali a una funzione fuori delle parentesi. Uso 1: controlla l'ordine di esecuzione degli operatori nell'espressione. Le parentesi hanno la priorità sul normale ordine di precedenza e le espressioni racchiuse tra parentesi vengono valutate per prime. Quando le parentesi sono nidificate, il contenuto delle parentesi interne viene valutato prima del contenuto di quelle esterne. Uso 2: valuta in sequenza una serie di espressioni separate da virgola, e restituisce il risultato dell'espressione finale. Uso 3: racchiude uno o più parametri e li trasmette sotto forma di parametri alla funzione che si trova fuori dalle parentesi. Disponibilità Flash Lite 1.0 Operandi expression1 : Object - Numeri, stringhe, variabili o testo. expression2 : Object - Numeri, stringhe, variabili o testo. function : Function - La funzione da eseguire sul contenuto delle parentesi. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 119 Elementi del linguaggio ActionScript parameter1...parameterN : Object - Una serie di parametri da eseguire prima che i risultati vengano trasmessi come parametri alla funzione che si trova fuori dalle parentesi. Esempio Uso 1: le istruzioni seguenti mostrano l'uso delle parentesi per controllare l'ordine con cui vengono eseguite le espressioni (il valore di ciascuna espressione viene visualizzato nel pannello Output): trace((2 + 3)*(4 + 5)); // displays 45 trace((2 + 3) * (4 + 5)); // writes 45 trace(2 + (3 * (4 + 5))); // displays 29 trace(2 + (3 * (4 + 5))); // writes 29 trace(2+(3*4)+5); // displays 19 trace(2 + (3 * 4) + 5); // writes19 Uso 2: l'esempio seguente valuta la funzione foo(), quindi restituisce la funzione bar() e restituisce il risultato dell'espressione a + b: var a:Number = 1; var b:Number = 2; function foo() { a += b; } function bar() { b *= 10; } trace((foo(), bar(), a + b)); // outputs 23 Uso 3: l'esempio seguente mostra l'uso delle parentesi con le funzioni: var today:Date = new Date(); trace(today.getFullYear()); // traces current year function traceParameter(param):Void { trace(param); } traceParameter(2 * 2); //traces 4 Vedere anche Istruzione with Operatore === (uguaglianza rigorosa) expression1 === expression2 Confronta due espressioni per verificarne l'uguaglianza. L'operatore di uguaglianza rigorosa (===) si comporta come l'operatore di uguaglianza (==), ma non converte i tipi di dati. Il risultato è true se le due espressioni sono uguali, inclusi i tipi di dati. La definizione di uguale dipende dal tipo di dati del parametro: • I numeri e i valori booleani vengono confrontati in base al valore e sono considerati uguali se hanno lo stesso valore. • Le espressioni stringa sono uguali se hanno lo stesso numero di caratteri e questi sono identici. • Le variabili che rappresentano oggetti, array e funzioni vengono confrontate in base ai riferimenti. Due espressioni di questo tipo sono uguali se entrambe si riferiscono allo stesso oggetto, array o funzione. Due array separati non vengono mai considerati uguali, anche se contengono lo stesso numero di elementi. Disponibilità Flash Lite 2.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 120 Elementi del linguaggio ActionScript Operandi expression1 : Object - Un numero, una stringa, un valore booleano, una variabile, un oggetto, un array o una funzione. expression2 : Object - Un numero, una stringa, un valore booleano, una variabile, un oggetto, un array o una funzione. Restituisce Boolean - Il risultato booleano del confronto. Esempio I commenti nel codice seguente mostrano il valore restituito dalle operazioni che utilizzano gli operatori uguaglianza e uguaglianza rigorosa: // Both return true because no conversion is done var string1:String = "5"; var string2:String = "5"; trace(string1 == string2); // true trace(string1 === string2); // true // Automatic data typing in this example converts 5 to "5" var string1:String = "5"; var num:Number = 5; trace(string1 == num); // true trace(string1 === num); // false // Automatic data typing in this example converts true to "1" var string1:String = "1"; var bool1:Boolean = true; trace(string1 == bool1); // true trace(string1 === bool1); // false // Automatic data typing in this example converts false to "0" var string1:String = "0"; var bool2:Boolean = false; trace(string1 == bool2); // true trace(string1 === bool2); // false Gli esempi seguenti mostrano come l'uguaglianza rigorosa tratta in modo diverso le variabili che sono dei riferimenti rispetto a quelle che contengono valori letterali. Per tale motivo è opportuno utilizzare in modo coerente i valori letterali di stringa dell'operatore new con la classe String. // Create a string variable using a literal value var str:String = "asdf"; // Create a variable that is a reference var stringRef:String = new String("asdf"); // The equality operator does not distinguish among literals, variables, // and references trace(stringRef == "asdf"); // true trace(stringRef == str); // true trace("asdf" == str); // true // The strict equality operator considers variables that are references // distinct from literals and variables trace(stringRef === "asdf"); // false trace(stringRef === str); // false Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 121 Elementi del linguaggio ActionScript Vedere anche Operatore ! NOT logico, Operatore != (diseguaglianza), Operatore !== (diseguaglianza rigorosa), Operatore && (AND logico)Operatore || (OR logico), Operatore == (uguaglianza) Operatore !== (diseguaglianza rigorosa) expression1 !== expression2 Prova l'esatto opposto dell'operatore di uguaglianza rigorosa (===). L'operatore di diseguaglianza rigorosa si comporta come l'operatore di diseguaglianza ma non converte i tipi di dati. Se expression1 è uguale a expression2 e i loro tipi di dati sono uguali, il risultato è false. Come nel caso dell'operatore di uguaglianza rigorosa (===), la definizione di uguale dipende dai tipi di dati confrontati, come nell'elenco seguente: • Numeri, stringhe e valori booleani vengono confrontati in base al valore. • Oggetti, array e funzioni vengono confrontati in base ai riferimenti. • Una variabile viene confrontata in base al valore o al riferimento, a seconda del suo tipo. Disponibilità Flash Lite 2.0 Operandi expression1 : Object - Un numero, una stringa, un valore booleano, una variabile, un oggetto, un array o una funzione. expression2 : Object - Un numero, una stringa, un valore booleano, una variabile, un oggetto, un array o una funzione. Restituisce Boolean - Il risultato booleano del confronto. Esempio I commenti nel codice seguente mostrano il valore restituito dalle operazioni che utilizzano gli operatori uguaglianza (==), uguaglianza rigorosa (===) e diseguaglianza rigorosa (!==): var s1:String = "5"; var s2:String = "5"; var s3:String = "Hello"; var n:Number = 5; var b:Boolean = true; trace(s1 == s2); // true trace(s1 == s3); // false trace(s1 == n); // true trace(s1 == b); // false trace(s1 === s2); // true trace(s1 === s3); // false trace(s1 === n); // false trace(s1 === b); // false trace(s1 !== s2); // false trace(s1 !== s3); // true trace(s1 !== n); // true trace(s1 !== b); // true Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 122 Elementi del linguaggio ActionScript Vedere anche Operatore ! NOT logico, Operatore != (diseguaglianza), Operatore && (AND logico), Operatore || (OR logico), Operatore == (uguaglianza), Operatore === (uguaglianza rigorosa) Operatore " (delimitatore di stringa) "text" Se utilizzate prima e dopo i caratteri, le virgolette (") indicano che tali caratteri hanno un valore letterale e devono essere considerati come una stringa, non una variabile, un valore numerico o un altro elemento di ActionScript. Disponibilità Flash Lite 1.0 Operandi text : String - Una sequenza di zero o più caratteri. Esempio L'esempio seguente utilizza le virgolette (") per indicare che il valore della variabile yourGuess è il valore letterale di stringa "Prince Edward Island" e non il nome di una variabile. Il valore di province è una variabile, non un valore letterale; per determinare il valore di province, è necessario individuare il valore di yourGuess. var yourGuess:String = "Prince Edward Island"; submit_btn.onRelease = function() { trace(yourGuess); }; // displays Prince Edward Island in the Output panel // writes Prince Edward Island to the log file Vedere anche String, Funzione String Operatore - (sottrazione) (Negation) -expression (Subtraction) expression1 - expression2 Utilizzato per negare o sottrarre. Uso 1: quando viene utilizzato per la negazione, inverte il segno dell'espressione numerica. Uso 2: quando viene utilizzato per la sottrazione, esegue una sottrazione aritmetica su due espressioni numeriche, sottraendo expression2 da expression1. Se entrambe le espressioni sono numeri interi, la differenza è un numero intero. Se almeno una delle due espressioni è un numero a virgola mobile, la differenza è un numero a virgola mobile. Disponibilità Flash Lite 1.0 Operandi expression1 : Number - Un numero o un'espressione che restituisce un numero. expression2 : Number - Un numero o un'espressione che restituisce un numero. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 123 Elementi del linguaggio ActionScript Restituisce Number - Un numero intero o un numero a virgola mobile. Esempio Uso 1: l'istruzione seguente inverte il segno dell'espressione 2 + 3: trace(-(2+3)); // output: -5 Uso 2: l'istruzione seguente sottrae il numero intero 2 dal numero intero 5: trace(5-2); // output: 3 Il risultato è un numero intero: 3. l'istruzione seguente sottrae il numero a virgola mobile 1.5 dal numero a virgola mobile 3.25: trace(3.25-1.5); // output: 1.75 Il risultato è un numero a virgola mobile: 1,75. Operatore -= (assegnazione sottrazione) expression1 -= expression2 Assegna a expression1 il valore di expression1 - expression2. Ad esempio, le due istruzioni seguenti sono equivalenti: x -= y ; x = x - y; Le espressioni stringa devono essere convertite in numeri; in caso contrario, viene restituito NaN (not a number). Disponibilità Flash Lite 1.0 Operandi expression1 : Number - Un numero o un'espressione che restituisce un numero. expression2 : Number - Un numero o un'espressione che restituisce un numero. Restituisce Number - Il risultato dell'operazione aritmetica. Esempio L'esempio seguente utilizza l'operatore assegnazione sottrazione (-=) per sottrarre 10 da 5 e assegnare il risultato alla variabile x: var x:Number = 5; var y:Number = 10; x -= y; trace(x); // output: -5 l'esempio seguente mostra il modo in cui le stringhe vengono convertite in numeri: var x:String = "5"; var y:String = "10"; x -= y; trace(x); // output: -5 Vedere anche Operatore - (sottrazione) Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 124 Elementi del linguaggio ActionScript Operatore : (tipo) [ modifiers ] var variableName : type function functionName () : type { ... } function functionName ( parameter1:type , ... , parameterN:type ) [ :type ]{ ... } Utilizzato per la tipizzazione forte dei dati; specifica i tipi di variabili, i tipi di funzioni restituite o i tipi di parametri funzione. Se utilizzato in una dichiarazione o assegnazione di variabile, questo operatore specifica il tipo di variabile; quando viene utilizzato in una dichiarazione o definizione della funzione, specifica il tipo restituito da una funzione; se viene utilizzato con un parametro di funzione nella definizione di una funzione, specifica il tipo di variabile prevista per quel parametro. I tipi sono una funzione solo di compilazione. Vengono tutti verificati al momento della compilazione e, in caso di mancata corrispondenza, vengono generati i relativi errori. Gli errori di corrispondenza possono verificarsi durante le operazioni di assegnazione, le chiamate di funzione e l'annullamento dei membri di classe mediante l'operatore punto (.). Per evitare errori di tipo non corrispondente, utilizzare la tipizzazione forte dei dati. Possono essere utilizzati tutti i tipi di oggetti nativi, le classi e interfacce definite dall'utente, Function e Void. I tipi nativi riconosciuti sono Boolean, Number e String. Anche tutte le classi incorporate sono supportate come tipi nativi. Disponibilità Flash Lite 2.0 Operandi variableName : Object - Un identificativo per una variabile. type : Un tipo di dati nativo, un nome di classe definito dall'utente o un nome di interfaccia. functionName : Un identificativo per una funzione. parameter : Un identificatore per un parametro di funzione. Esempio Uso 1: l'esempio seguente dichiara una variabile pubblica di nome userName il cui tipo è String e le assegna una stringa vuota: var userName:String = ""; Uso 2: l'esempio seguente mostra come specificare il tipo di parametro di una funzione definendo una funzione di nome randomInt() che usa un parametro di nome integer di tipo Number: function randomInt(integer:Number):Number { return Math.round(Math.random()*integer); } trace(randomInt(8)); Uso 3: l'esempio seguente definisce una funzione di nome squareRoot() che usa un parametro di nome val del tipo Number e restituisce la radice quadrata di val, anch'essa di tipo Number: function squareRoot(val:Number):Number { return Math.sqrt(val); } trace(squareRoot(121)); Vedere anche Istruzione set variable, Funzione Array GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 125 Ultimo aggiornamento 4/5/2010 Elementi del linguaggio ActionScript Operatore typeof typeof(expression) L'operatore typeof valuta l'espressione e restituisce una stringa che specifica se è un valore String, MovieClip, Object, Function, Number o Boolean. Disponibilità Flash Lite 2.0 Operandi espressione : Object - Una stringa, un clip filmato, un pulsante, un oggetto o una funzione. Restituisce String - Una rappresentazione String del tipo di expression. La tabella seguente mostra i risultati dell'operatore typeof su ciascun tipo di expression. Tipo di espressione Risultato String stringa Clip filmato movieclip Pulsante object Campo di testo object Number number Boolean boolean Object object Function function Vedere anche Operatore instanceof Operatore void void expression L'operatore void valuta un'espressione, quindi ne scarta il valore e restituisce undefined. L'operatore void viene spesso utilizzato nei confronti che utilizzano l'operatore == per verificare i valori non definiti. Disponibilità Flash Lite 2.0 Operandi espressione : Object - Un'espressione da valutare. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 126 Elementi del linguaggio ActionScript istruzioni Le istruzioni sono elementi del linguaggio che eseguono o specificano un'azione. L'istruzione return, ad esempio, restituisce un risultato sotto forma di valore della funzione in cui l'istruzione viene eseguita. L'istruzione if valuta una condizione per determinare l'azione successiva da eseguire. L'istruzione switch crea una struttura ad albero per le istruzioni ActionScript. Riepilogo delle istruzioni Istruzione Descrizione break Viene visualizzata all'interno di un ciclo (for, for..in, do..while o while) oppure in un blocco di istruzioni associate a un caso particolare all'interno dell'istruzione switch. case Definisce una condizione per l'istruzione switch. classe Definisce una classe personalizzata, che consente di creare le istanze degli oggetti che condividono i metodi e le proprietà definite dall'utente. continue Passa oltre tutte le istruzioni rimanenti nel ciclo più interno e avvia l'iterazione successiva del ciclo come se il controllo fosse arrivato normalmente alla fine del ciclo. predefinito Definisce il caso predefinito di un'istruzione switch. delete Elimina il riferimento specificato dal parametro reference e restituisce true se il riferimento viene correttamente eliminato; in caso contrario, restituisce false. do..while Simile ad un ciclo while, ad eccezione del fatto che le istruzioni vengono eseguite una volta prima della valutazione iniziale della condizione. dinamici Indica che gli oggetti basati sulla classe specificata possono aggiungere proprietà dinamiche e accedervi in fase di runtime. else Specifica le istruzioni da eseguire se la condizione nell'istruzione if restituisce false. else if Valuta una condizione e specifica le istruzioni da eseguire se la condizione nell'istruzione if iniziale restituisce false. extends Definisce una classe che è una sottoclasse di un'altra classe; quest'ultima rappresenta la superclasse. for Valuta l'espressione init (inizializza) una volta, quindi avvia una sequenza di ripetizione ciclica. for..in Esegue iterazioni sulle proprietà di un oggetto o sugli elementi di un array ed esegue statement per ogni proprietà o elemento. function Comprende un set di istruzioni definite dall'utente per eseguire una determinata attività. get Consente l'acquisizione implicita delle proprietà associate agli oggetti basati sulle classi definite nei file di classe esterni. if Valuta una condizione per determinare l'azione successiva da eseguire in un file SWF. implements Specifica che una classe deve definire tutti i metodi dichiarati nell'interfaccia (o interfacce) in fase di implementazione. import Consente di accedere alle classi senza doverne specificare il nome completo. interface Definisce un'interfaccia. intrinsic Consente la verifica del tipo in fase di compilazione delle classi definite in precedenza. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 127 Elementi del linguaggio ActionScript Istruzione Descrizione private Specifica che una variabile o una funzione sono disponibili solo per la classe (o relative sottoclassi) che le dichiara o definisce. public Specifica che una variabile o una funzione sono disponibili a qualsiasi chiamante. return Specifica il valore restituito da una funzione. set Consente l'impostazione implicita delle proprietà associate agli oggetti basati sulle classi definite nei file di classe esterni. set variable Assegna un valore a una variabile. static Specifica che una variabile o una funzione vengono create solo una volta per ogni classe e non in ogni oggetto basato sulla classe. super Richiama la versione superclasse di un metodo o di una funzione di costruzione. switch Crea una struttura ad albero per le istruzioni ActionScript. throw Crea, o genera, un errore che può essere gestito, o rilevato, mediante un blocco di codice catch{}. try..catch..finally Si racchiude un blocco di codice nel quale può verificarsi un errore, quindi si risponde all'errore. var Utilizzata per dichiarare le variabili locali o della linea temporale. while Valuta una condizione e, se questa restituisce true, esegue un'istruzione o una serie di istruzioni prima di tornare a valutare la condizione. with Consente di specificare un oggetto (come un clip filmato) con il parametro object e valutare espressioni e azioni all'interno di quell'oggetto mediante il parametro statement(s). Istruzione break break Viene visualizzata all'interno di un ciclo (for, for..in, do..while o while) oppure in un blocco di istruzioni associate a un caso particolare all'interno dell'istruzione switch. Quando viene utilizzata in un ciclo, l'istruzione break indica a Flash di ignorare il resto del corpo del ciclo, arrestare la ripetizione ciclica ed eseguire l'istruzione che segue l'istruzione ciclica. Quando viene utilizzata in uno switch, l'istruzione break indica a Flash di ignorare il resto delle istruzioni in quel blocco case e passare alla prima istruzione che segue l'istruzione switch che le racchiude. Nei cicli nidificati, l'istruzione break ignora solo il resto del ciclo immediato e non esce dalla serie di cicli nidificati. Per uscire da una serie completa di cicli nidificati, vedere try..catch..finally. Disponibilità Flash Lite 1.0 Esempio L'esempio seguente utilizza l'istruzione break per uscire da un ciclo altrimenti infinito: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 128 Elementi del linguaggio ActionScript var i:Number = 0; while (true) { trace(i); if (i >= 10) { break; // this will terminate/exit the loop } i++; } che traccia l'output seguente: 0 1 2 3 4 5 6 7 8 9 10 Vedere anche Proprietà _forceframerate Istruzione case case expression : statement(s) Definisce una condizione per l'istruzione switch. Se il parametro expression è uguale al parametro expression dell'istruzione switch mediante uguaglianza rigorosa (===), quindi Flash Player esegue istruzioni nel parametro statement(s) finché non incontra un'istruzione break o la fine dell'istruzione switch. Se si utilizza l'istruzione case al di fuori di un'istruzione switch, si verifica un errore e lo script non viene compilato. Nota: il parametro statement(s) deve sempre terminare con un'istruzione break. Se si omette l'istruzione break statement dal parametro statement(s), l'esecuzione prosegue con l'istruzione case successiva invece di uscire dall'istruzione switch. Disponibilità Flash Lite 1.0 Parametri expression:String - Qualsiasi espressione. Esempio L'esempio seguente definisce le condizioni per l'istruzione switchthisMonth. Se thisMonth è uguale all'espressione nell'istruzione case, l'istruzione viene eseguita. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 129 Elementi del linguaggio ActionScript var thisMonth:Number = new Date().getMonth(); switch (thisMonth) { case 0 : trace("January"); break; case 1 : trace("February"); break; case 5 : case 6 : case 7 : trace("Some summer month"); break; case 8 : trace("September"); break; default : trace("some other month"); } Vedere anche Istruzione break Istruzione class [dynamic] class className [ extends superClass ] [ implements interfaceName[, interfaceName... ] ] { // class definition here} Definisce una classe personalizzata, che consente di creare le istanze degli oggetti che condividono i metodi e le proprietà definite dall'utente. Ad esempio, se si sta sviluppando un sistema di registrazione delle fatture, è possibile creare un'apposita classe che definisca tutti i metodi e le proprietà richiesti per le fatture. A quel punto, si può utilizzare il nuovo comando new invoice() per creare i relativi oggetti invoice. Il nome della classe deve corrispondere al nome del file esterno che la contiene e il nome del file esterno deve essere il nome della classe seguito dall'estensione di file .as. Ad esempio, se la classe viene denominata Studente, il file che la definisce dovrà chiamarsi Studente.as. Se una classe si trova all'interno di un pacchetto, la dichiarazione di classe deve utilizzare il nome di classe completo del modulo base.sub1.sub2.MyClass. Inoltre, il file AS della classe deve essere memorizzato nel percorso di una struttura di directory che rifletta la struttura del pacchetto, come ad esempio base/sub1/sub2/MyClass.as. Se la definizione di una classe utilizza il formato "class MyClass," questa si trova nel pacchetto predefinito e il file MyClass.as deve trovarsi al primo livello di alcune directory del percorso. Per questo motivo, è consigliabile pianificare la struttura delle directory prima di iniziare a creare le classi. In caso contrario, se si decide di spostare i file di classe dopo averli creati, sarà necessario modificare le istruzioni di dichiarazione delle classi affinché riflettano la nuova posizione. Le definizioni di classe non possono essere nidificate, vale a dire non è possibile definire altre classi all'interno di una definizione di classe. Per indicare che gli oggetti possono aggiungere le proprietà dinamiche e accedervi in fase di runtime, specificare la parola chiave dynamic prima dell'istruzione di classe. Per dichiarare che la classe implementa un'interfaccia, utilizzare la parola chiave implements. Per creare sottoclassi di una classe, utilizzare la parola chiave extends. (Una classe può estendere solo una classe, ma può implementare diverse interfacce). È possibile utilizzare implements ed extends in un'unica istruzione. Gli esempi seguenti mostrano gli usi più comuni delle parole chiave implements ed extends: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 130 Elementi del linguaggio ActionScript class C implements Interface_i, Interface_j // OK class C extends Class_d implements Interface_i, Interface_j // OK class C extends Class_d, Class_e // not OK Disponibilità Flash Lite 2.0 Parametri className:String - Il nome completo della classe. Esempio Nell'esempio seguente viene creata una classe di nome Plant. La funzione di costruzione Plant richiede due parametri. // Filename Plant.as class Plant { // Define property names and types var leafType:String; var bloomSeason:String; // Following line is constructor // because it has the same name as the class function Plant(param_leafType:String, param_bloomSeason:String) { // Assign passed values to properties when new Plant object is created this.leafType = param_leafType; this.bloomSeason = param_bloomSeason; } // Create methods to return property values, because best practice // recommends against directly referencing a property of a class function getLeafType():String { return leafType; } function getBloomSeason():String { return bloomSeason; } } In un file di script esterno o nel pannello Azioni, utilizzare l'operatore new per creare un oggetto Plant. var pineTree:Plant = new Plant("Evergreen", "N/A"); // Confirm parameters were passed correctly trace(pineTree.getLeafType()); trace(pineTree.getBloomSeason()); Nell'esempio seguente viene creata una classe di nome ImageLoader. La funzione di costruzione ImageLoader richiede tre parametri. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 131 Elementi del linguaggio ActionScript // Filename ImageLoader.as class ImageLoader extends MovieClip { function ImageLoader(image:String, target_mc:MovieClip, init:Object) { var listenerObject:Object = new Object(); listenerObject.onLoadInit = function(target) { for (var i in init) { target[i] = init[i]; } }; var JPEG_mcl:MovieClipLoader = new MovieClipLoader(); JPEG_mcl.addListener(listenerObject); JPEG_mcl.loadClip(image, target_mc); } } In un file di script esterno o nel pannello Azioni, utilizzare l'operatore new per creare un oggetto ImageLoader. var jakob_mc:MovieClip = this.createEmptyMovieClip("jakob_mc", this.getNextHighestDepth()); var jakob:ImageLoader = new ImageLoader("http://www.helpexamples.com/flash/images/image1.jpg", jakob_mc, {_x:10, _y:10, _alpha:70, _rotation:-5}); Vedere anche Istruzione dynamic Istruzione continue continue Passa oltre tutte le istruzioni rimanenti nel ciclo più interno e avvia l'iterazione successiva del ciclo come se il controllo fosse arrivato normalmente alla fine del ciclo. Non ha alcun effetto al di fuori di un ciclo. Disponibilità Flash Lite 1.0 Esempio In un ciclo while, continue indica all'interprete di Flash di ignorare il resto del corpo del ciclo e di passare all'inizio del ciclo, dove viene provata la condizione: trace("example 1"); var i:Number = 0; while (i < 10) { if (i % 3 == 0) { i++; continue; } trace(i); i++; } In un ciclo do..while, continue indica all'interprete di Flash di ignorare il resto del corpo del ciclo e di passare all'inizio del ciclo, dove viene provata la condizione: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 132 Elementi del linguaggio ActionScript trace("example 2"); var i:Number = 0; do { if (i % 3 == 0) { i++; continue; } trace(i); i++; } while (i < 10); In un ciclo for, continue indica all'interprete di Flash di ignorare il resto del corpo del ciclo. Nell'esempio seguente, se il modulo i 3 è uguale a 0, l'istruzione trace(i) viene ignorata: trace("example 3"); for (var i = 0; i < 10; i++) { if (i % 3 == 0) { continue; } trace(i); } Nel ciclo for..in, continue indica all'interprete di Flash di ignorare il resto del corpo del ciclo e di passare all'inizio del ciclo, dove viene elaborato il valore successivo dell'enumerazione: for (i in _root) { if (i == "$version") { continue; } trace(i); } Vedere anche Istruzione do..while Istruzione default default: statements Definisce il caso predefinito di un'istruzione switch. Le istruzioni vengono eseguite se il parametro expression dell'istruzione switch non è uguale (in base all'operazione di uguaglianza rigorosa [===]) ad alcuno dei parametri expression che seguono le parole chiave case per una data istruzione switch. Non è richiesta un'istruzione switch per un'istruzione case default. Un'istruzione case default non deve necessariamente essere l'ultima dell'elenco. Se si utilizza l'istruzione default al di fuori di un'istruzione switch, si verifica un errore e lo script non viene compilato. Disponibilità Flash Lite 2.0 Parametri statements:String - Qualsiasi istruzione. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 133 Elementi del linguaggio ActionScript Esempio Nell'esempio seguente, l'espressione A non equivale all'espressione B o D, pertanto l'istruzione che segue la parola chiave default viene eseguita e l'istruzione trace() viene inviata al pannello Output. var dayOfWeek:Number = new Date().getDay(); switch (dayOfWeek) { case 1 : trace("Monday"); break; case 2 : trace("Tuesday"); break; case 3 : trace("Wednesday"); break; case 4 : trace("Thursday"); break; case 5 : trace("Friday"); break; default : trace("Weekend"); } Vedere anche Istruzione switch Istruzione delete delete reference Elimina il riferimento specificato dal parametro reference e restituisce true se il riferimento viene correttamente eliminato; in caso contrario, restituisce false. Questo operatore è utile per liberare la memoria utilizzata dagli script. Per rimuovere i riferimenti agli oggetti, è possibile utilizzare l'operatore delete. Dopo che sono stati rimossi tutti i riferimenti a un oggetto, Flash Player rimuove l'oggetto e libera lo spazio di memoria che questo occupava. Benché delete sia un operatore, solitamente viene utilizzato come istruzione, come dimostra il seguente esempio: delete x; L'operatore delete può non riuscire e restituire false se il parametro reference non esiste o non può essere eliminato. Non è possibile eliminare gli oggetti e le proprietà predefinite, né le variabili che vengono dichiarate all'interno di una funzione con l'istruzione var. L'operatore delete non consente di rimuovere i clip filmato. Disponibilità Flash Lite 2.0 Restituisce Boolean - Un valore booleano. Parametri reference:Object - Il nome della variabile o dell'oggetto da eliminare. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 134 Elementi del linguaggio ActionScript Esempio Uso 1: l'esempio seguente crea un oggetto, lo utilizza e lo elimina quando non è più richiesto: var account:Object = new Object(); account.name = "Jon"; account.balance = 10000; trace(account.name); //output: Jon delete account; trace(account.name); //output: undefined Uso 2: l'esempio seguente elimina una proprietà di un oggetto: // create the new object "account" var account:Object = new Object(); // assign property name to the account account.name = "Jon"; // delete the property delete account.name; Uso 3: l'esempio seguente elimina una proprietà dell'oggetto: var my_array:Array = new Array(); my_array[0] = "abc"; // my_array.length == 1 my_array[1] = "def"; // my_array.length == 2 my_array[2] = "ghi"; // my_array.length == 3 // my_array[2] is deleted, but Array.length is not changed delete my_array[2]; trace(my_array.length); // output: 3 trace(my_array); // output: abc,def,undefined Uso 4: l'esempio seguente mostra il comportamento di delete sui riferimenti agli oggetti: var ref1:Object = new Object(); ref1.name = "Jody"; // copy the reference variable into a new variable // and delete ref1 ref2 = ref1; delete ref1; trace("ref1.name "+ref1.name); //output: ref1.name undefined trace("ref2.name "+ref2.name); //output: ref2.name Jody Se ref1 non fosse stato copiato in ref2, l'oggetto sarebbe stato eliminato al momento dell'eliminazione di ref1 poiché non vi sarebbe stato più presente alcun riferimento. Se si elimina ref2 non sono più presenti riferimenti all'oggetto, pertanto viene distrutto e viene resa disponibile la memoria utilizzata da esso. Vedere anche Istruzione set variable Istruzione do..while do { statement(s) } while (condition) Simile ad un ciclo while, ad eccezione del fatto che le istruzioni vengono eseguite una volta prima della valutazione iniziale della condizione. Quindi, le istruzioni vengono eseguite solo se la condizione restituisce true. Un ciclo do..while fa in modo che il codice all'interno del ciclo venga eseguito almeno una volta. Questa operazione può essere svolta anche mediante un ciclo while posizionando una copia delle istruzioni da eseguire prima che il ciclo while cominci, ma molti programmatori ritengono che i cicli do..while siano più semplici da leggere. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 135 Elementi del linguaggio ActionScript Se la condizione restituisce sempre true, il ciclo do..while è infinito. Se si entra in un ciclo infinito, si verificano dei problemi in Flash Player e viene visualizzato un messaggio di errore o il lettore si blocca. Quando possibile, se si conosce il numero di volte che si desidera ripetere il ciclo, utilizzare un ciclo for. I cicli for sono facili da leggere e sottoporre a debug, ma non sostituiscono i cicli do...while in tutte le circostanze. Disponibilità Flash Lite 1.0 Parametri condition:Boolean - La condizione da valutare. statement(s) all'interno del blocco di codice do vengono eseguite a condizione che il parametro condition restituisca true. Esempio L'esempio seguente utilizza un ciclo do..while per valutare se una condizione è true e traccia myVar finché myVar è maggiore di 5. Quando myVar è maggiore di 5, il ciclo termina. var myVar:Number = 0; do { trace(myVar); myVar++; } while (myVar < 5); /* output: 0 1 2 3 4 */ Vedere anche Istruzione break Istruzione dynamic dynamic class className [ extends superClass ] [ implements interfaceName[, interfaceName... ] ] { // class definition here } Indica che gli oggetti basati sulla classe specificata possono aggiungere proprietà dinamiche e accedervi in fase di runtime. La verifica del tipo eseguita sulle classi dinamiche è meno rigorosa di quella eseguita sulle classi non dinamiche, in quanto i membri cui si accede all'interno della definizione di classe e nelle istanze di classe non vengono confrontati con quelli definiti nell'area di validità della classe. Le funzioni dei membri di classe, tuttavia, possono essere verificate per quanto riguarda i tipi restituiti e i tipi di parametro. Questo comportamento è particolarmente utile quando si lavora con oggetti MovieClips, in quanto ci sono molti modi per aggiungere proprietà e oggetti in modo dinamico a un clip filmato, ad esempio mediante MovieClip.createEmptyMovieClip() e MovieClip.createTextField(). Anche le sottoclassi delle classi dinamiche sono dinamiche. Disponibilità Flash Lite 2.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 136 Elementi del linguaggio ActionScript Esempio Nell'esempio seguente, la classe Person2 non è ancora stata contrassegnata come dynamic; pertanto, se si chiama una funzione non dichiarata, viene generato un errore in fase di compilazione: class Person2 { var name:String; var age:Number; function Person2(param_name:String, param_age:Number) { trace ("anything"); this.name = param_name; this.age = param_age; } } In un file FLA o AS che si trova nella stessa directory, aggiungere il codice ActionScript seguente al fotogramma 1 sulla linea temporale: // Before dynamic is added var craig:Person2 = new Person2("Craiggers", 32); for (i in craig) { trace("craig." + i + " = " + craig[i]); } /* output: craig.age = 32 craig.name = Craiggers */ Se si aggiunge una funzione non dichiarata, dance, viene generato un errore, come mostrato nell'esempio seguente: trace(""); craig.dance = true; for (i in craig) { trace("craig." + i + " = " + craig[i]); } /* output: **Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 14: There is no property with the name 'dance'. craig.dance = true; Total ActionScript Errors: 1 Reported Errors: 1 */ Aggiungere la parola chiave dynamic alla classe Person2, in modo che la prima riga sia uguale alla seguente: dynamic class Person2 { Riprovare il codice: viene generato l'output seguente: craig.dance = true craig.age = 32 craig.name = Craiggers Vedere anche Istruzione class Istruzione else if (condition){ statement(s); } else { statement(s); } Specifica le istruzioni da eseguire se la condizione nell'istruzione if restituisce false. le parentesi graffe ({}) utilizzate per racchiudere il blocco di istruzioni che devono essere eseguite dall'istruzione else non sono necessarie se viene eseguita una sola istruzione. Disponibilità Flash Lite 1.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 137 Elementi del linguaggio ActionScript Parametri condition:Boolean - Espressione che restituisce true o false. Esempio Nell'esempio seguente, la condizione else viene utilizzata per verificare se la variabile age_txt è maggiore o minore di 18: if (age_txt.text>=18) { trace("welcome, user"); } else { trace("sorry, junior"); userObject.minor = true; userObject.accessAllowed = false; } Nell'esempio seguente, le parentesi graffe ({}) non sono necessarie poiché solo un'istruzione segue l'istruzione else: if (age_txt.text>18) { trace("welcome, user"); } else trace("sorry, junior"); Vedere anche Funzione ifFrameLoaded Istruzione else if if (condition){ statement(s); } else if (condition){ statement(s);} Valuta una condizione e specifica le istruzioni da eseguire se la condizione nell'istruzione if iniziale restituisce false. Se la condizione else if restituisce true, l'interprete di Flash esegue le istruzioni che seguono la condizione all'interno delle parentesi graffe ({}). Se la condizione else if è false, Flash ignora le istruzioni all'interno delle parentesi graffe ed esegue le istruzioni dopo le parentesi. Utilizzare l'istruzione else if per creare una struttura logica ad albero negli script. Se ci sono più rami, è opportuno utilizzare un'istruzione switch. Disponibilità Flash Lite 1.0 Parametri condition:Boolean - Espressione che restituisce true o false. Esempio L'esempio seguente utilizza le istruzioni else if per confrontare score_txt con un valore specificato: if (score_txt.text>90) { trace("A"); } else if (score_txt.text>75) { trace("B"); } else if (score_txt.text>60) { trace("C"); } else { trace("F"); } Vedere anche Funzione ifFrameLoaded Istruzione extends Uso 1: class className extends otherClassName {} Uso 2: interface interfaceName extends otherInterfaceName {} Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 138 Elementi del linguaggio ActionScript Nota: per utilizzare questa parola chiave, è necessario specificare ActionScript 2.0 e Flash Player 6 o superiore nella scheda Flash della finestra di dialogo Impostazioni pubblicazione del file FLA. Questa parola chiave è supportata solo quando è utilizzata nei file di script esterni, non negli script scritti nel pannello Azioni. Definisce una classe che è una sottoclasse di un'altra classe; quest'ultima rappresenta la superclasse. La sottoclasse eredita tutti i metodi, le proprietà e le funzioni definiti nella superclasse. Anche le interfacce possono essere estese mediante la parola chiave extends. Un'interfaccia che estende un'altra interfaccia include tutte le dichiarazioni di metodo dell'interfaccia originale. Disponibilità Flash Lite 2.0 Parametri className:String - Il nome della classe in fase di definizione. Esempio Nell'esempio seguente, la classe Car estende la classe Vehicle in modo che tutti i metodi, le proprietà e le funzioni vengano ereditate. Se lo script crea un'istanza di un oggetto Car, è possibile utilizzare sia i metodi della classe Car che quelli della classe Vehicle. L'esempio seguente mostra il contenuto di un file di nome Vehicle.as, che definisce la classe Vehicle: class Vehicle { var numDoors:Number; var color:String; function Vehicle(param_numDoors:Number, param_color:String) { this.numDoors = param_numDoors; this.color = param_color; } function start():Void { trace("[Vehicle] start"); } function stop():Void { trace("[Vehicle] stop"); } function reverse():Void { trace("[Vehicle] reverse"); } } L'esempio seguente mostra un secondo file AS, denominato Car.as, nella stessa directory. Questa classe estende la classe Vehicle, modificandola in tre modi. Innanzi tutto, la classe Car aggiunge una variabile fullSizeSpare per verificare se l'oggetto Car ha una gomma di scorta di dimensione regolare. Quindi, aggiunge un nuovo metodo specifico delle auto, activateCarAlarm(), che attiva l'antifurto dell'auto. Infine, ignora la funzione stop() per aggiungere il fatto che la classe Car utilizza un sistema di frenata anti-bloccaggio. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 139 Elementi del linguaggio ActionScript class Car extends Vehicle { var fullSizeSpare:Boolean; function Car(param_numDoors:Number, param_color:String, param_fullSizeSpare:Boolean) { this.numDoors = param_numDoors; this.color = param_color; this.fullSizeSpare = param_fullSizeSpare; } function activateCarAlarm():Void { trace("[Car] activateCarAlarm"); } function stop():Void { trace("[Car] stop with anti-lock brakes"); } } L'esempio seguente crea un'istanza di un oggetto Car, chiama un metodo definito nella classe Vehicle (start()), quindi chiama il metodo ignorato dalla classe Car (stop()), infine chiama un metodo della classe Car (activateCarAlarm()): var myNewCar:Car = new Car(2, "Red", true); myNewCar.start(); // output: [Vehicle] start myNewCar.stop(); // output: [Car] stop with anti-lock brakes myNewCar.activateCarAlarm(); // output: [Car] activateCarAlarm È anche possibile scrivere una sottoclasse della classe Vehicle mediante la parola chiave super che può essere utilizzata dalla sottoclasse per accedere alle proprietà e ai metodi della superclasse. L'esempio seguente mostra un terzo file AS, denominato Truck.as, sempre nella stessa directory. La classe Truck utilizza la parola chiave super nella funzione di costruzione e anche nella funzione reverse() ignorata. class Truck extends Vehicle { var numWheels:Number; function Truck(param_numDoors:Number, param_color:String, param_numWheels:Number) { super(param_numDoors, param_color); this.numWheels = param_numWheels; } function reverse():Void { beep(); super.reverse(); } function beep():Void { trace("[Truck] make beeping sound"); } } L'esempio seguente crea un'istanza di un oggetto Truck, chiama un metodo ignorato dalla classe Truck (reverse()), quindi chiama un metodo definito nella classe Vehicle (stop()): var myTruck:Truck = new Truck(2, "White", 18); myTruck.reverse(); // output: [Truck] make beeping sound [Vehicle] reverse myTruck.stop(); // output: [Vehicle] stop Vedere anche Istruzione class Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 140 Elementi del linguaggio ActionScript Istruzione for for(init; condition; next) { statement(s); } Valuta l'espressione init (inizializza) una volta, quindi avvia una sequenza di ripetizione ciclica. La sequenza di ripetizione ciclica dalla valutazione dell'espressione condition. Se l'espressione condition restituisce true, viene eseguito statement e viene valutata l'espressione next. La sequenza di ripetizione ciclica che riprende dalla valutazione dell'espressione condition. Le parentesi graffe ({}) utilizzate per racchiudere il blocco di istruzioni che devono essere eseguite dall'istruzione for non sono necessarie se viene eseguita una sola istruzione. Disponibilità Flash Lite 1.0 Parametri init - Un'espressione da valutare prima dell'inizio della sequenza di ripetizione ciclica; solitamente un'espressione di assegnazione. Per questo parametro è consentito anche l'uso dell'istruzione var. Esempio L'esempio seguente utilizza for per aggiungere gli elementi in un array: var my_array:Array = new Array(); for (var i:Number = 0; i < 10; i++) { my_array[i] = (i + 5) * 10; } trace(my_array); // output: 50,60,70,80,90,100,110,120,130,140 L'esempio seguente utilizza for per eseguire ripetutamente la stessa azione. Nel codice, il ciclo for aggiunge i numeri compresi tra 1 e 100. var sum:Number = 0; for (var i:Number = 1; i <= 100; i++) { sum += i; } trace(sum); // output: 5050 L'esempio seguente mostra che le parentesi graffe ({}) non sono necessarie se viene eseguita una sola istruzione: var sum:Number = 0; for (var i:Number = 1; i <= 100; i++) sum += i; trace(sum); // output: 5050 Vedere anche Operatore ++ (incremento) Istruzione for..in for (variableIterant in object) { ] statement(s); } Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 141 Elementi del linguaggio ActionScript Esegue iterazioni sulle proprietà di un oggetto o sugli elementi di un array ed esegue statement per ogni proprietà o elemento. I metodi di un oggetto non vengono enumerati dall'azione for..in. Alcune proprietà non possono essere elencate dall'azione for..in. ad esempio, le proprietà di clip filmato come _x e _y. Nei file di classe esterni, i membri statici, a differenza dei membri di un'istanza, non possono essere enumerati. L'istruzione for..in esegue iterazioni sulle proprietà degli oggetti nella catena di prototipi degli oggetti di cui si esegue l'iterazione. Per prime vengono enumerate le proprietà dell'oggetto, quindi le proprietà del suo prototipo immediato, quindi quelle del prototipo e così via. L'istruzione for..in non enumera lo stesso nome di proprietà due volte. Se l'elemento child dell'oggetto ha un prototipo parent ed entrambi contengono la proprietà prop, l'istruzione for..in chiamata sull'elemento child enumera la prop dell'elemento child, ma ignora quella dell'elemento parent. Le parentesi graffe ({}) utilizzate per racchiudere il blocco di istruzioni che devono essere eseguite dall'istruzione for..in non sono necessarie se viene eseguita una sola istruzione. Se si scrive un ciclofor..in in un file di classe (un file AS esterno), i membri dell'istanza non sono disponibili per il ciclo, ma i membri statici sì. Tuttavia, se si scrive un ciclo for..in in un file FLA per un'istanza della classe, i membri dell'istanza sono disponibili ma i membri statici no. Disponibilità Flash Lite 2.0 Parametri variableIterant:String - Il nome di una variabile che deve agire come elemento di iterazione, creando un riferimento a ciascuna proprietà di un oggetto o elemento di un array. Esempio L'esempio seguente mostra come usare for..in per eseguire l'iterazione nelle proprietà di un oggetto: var myObject:Object = {firstName:"Tara", age:27, city:"San Francisco"}; for (var prop in myObject) { trace("myObject."+prop+" = "+myObject[prop]); } //output myObject.firstName = Tara myObject.age = 27 myObject.city = San Francisco L'esempio seguente mostra come usare for..in per eseguire l'iterazione negli elementi di un oggetto: var myArray:Array = new Array("one", "two", "three"); for (var index in myArray) trace("myArray["+index+"] = " + myArray[index]); // output: myArray[2] = three myArray[1] = two myArray[0] = one L'esempio seguente utilizza l'operatore typeof con for..in per eseguire l'iterazione in un tipo particolare di elemento secondario: for (var name in this) { if (typeof (this[name]) == "movieclip") { trace("I have a movie clip child named "+name); } } Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 142 Elementi del linguaggio ActionScript Nota: in presenza di più clip filmato, l'output consiste nei nomi di istanza di tali clip. L'esempio seguente enumera gli elementi secondari di un clip filmato e invia ciascuno di essi al fotogramma 2 nelle rispettive linee temporali. Il clip filmato RadioButtonGroup è un elemento principale con diversi secondari: _RedRadioButton_, _GreenRadioButton_ e _BlueRadioButton_. for (var name in RadioButtonGroup) { RadioButtonGroup[name].gotoAndStop(2); } Istruzione function Uso 1: (Dichiara una funzione denominata). function functionname([parameter0, parameter1,...parameterN]){statement(s)} Uso 2: (Dichiara una funzione anonima e restituisce un riferimento ad essa). function ([parameter0, parameter1,...parameterN]){ statement(s) } Comprende un set di istruzioni definite dall'utente per eseguire una determinata attività. È possibile definire una funzione in una posizione e invocarla, o chiamarla, da diversi script in un file SWF. Quando si definisce una funzione, è possibile anche specificare gli eventuali parametri, vale a dire i segnaposto dei valori su cui la funzione agisce. È possibile trasmettere diversi parametri a una funzione ogni volta che viene chiamata in modo da poter riutilizzare la funzione in situazioni diverse. Utilizzare l'istruzione return negli statement(s) di una funzione per fare in modo che la funzione generi, o restituisca, un valore. È possibile utilizzare questa istruzione per definire una function per cui sono specificati functionname, parameters e statement(s). Quando uno script chiama una funzione, vengono eseguite le istruzioni nella definizione della funzione. È consentito utilizzare riferimenti di inoltro; all'interno dello stesso script, una funzione può essere dichiarata dopo che è stata chiamata. Una definizione di funzione sostituisce l'eventuale definizione preesistente della stessa funzione. Questa sintassi può essere utilizzata in tutti i casi in cui è consentita un'istruzione. È anche possibile utilizzare questa istruzione per creare una funzione anonima e restituire un riferimento alla funzione. Questa sintassi è utilizzata nelle espressioni ed è particolarmente utile per installare i metodi negli oggetti. Per ulteriori funzionalità, è possibile utilizzare l'oggetto arguments nella definizione della funzione. L'oggetto arguments è comunemente utilizzato per creare funzioni che accettano un numero variabile di parametri e funzioni anonime ricorsive. Disponibilità Flash Lite 2.0 Restituisce String - Uso 1: Il modulo di restituzione non restituisce nulla. Uso 2: un riferimento alla funzione anonima. Parametri functionname:String - Il nome della nuova funzione. Esempio L'esempio seguente definisce la funzione sqr, che accetta un parametro e restituisce il valore Math.pow(x, 2) del parametro: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 143 Elementi del linguaggio ActionScript function sqr(x:Number) { return Math.pow(x, 2); } var y:Number = sqr(3); trace(y); // output: 9 Se la funzione è definita e viene utilizzata nello stesso script, è possibile che dopo l'uso della funzione ne compaia la definizione: var y:Number = sqr(3); trace(y); // output: 9 function sqr(x:Number) { return Math.pow(x, 2); } La funzione seguente crea un oggetto LoadVars e carica params.txt nel file SWF. Una volta caricato correttamente il file, viene tracciato variables loaded: var myLV:LoadVars = new LoadVars(); myLV.load("params.txt"); myLV.onLoad = function(success:Boolean) { trace("variables loaded"); } Istruzione get function get property () { // your statements here } Nota: per utilizzare questa parola chiave, è necessario specificare ActionScript 2.0 e Flash Player 6 o superiore nella scheda Flash della finestra di dialogo Impostazioni pubblicazione del file FLA. Questa parola chiave è supportata solo quando è utilizzata nei file di script esterni, non negli script scritti nel pannello Azioni. Consente l'acquisizione implicita delle proprietà associate agli oggetti basati sulle classi definite nei file di classe esterni. L'uso dei metodi get impliciti consente di accedere alle proprietà degli oggetti senza accedere alla proprietà direttamente. I metodi impliciti get/set rappresentano un'abbreviazione sintattica del metodo Object.addProperty() in ActionScript 1. Disponibilità Flash Lite 2.0 Parametri property:String - La parola utilizzata per fare riferimento alla proprietà a cui get accede; questo valore deve essere uguale a quello utilizzato nel comando set corrispondente. Esempio Nell'esempio seguente viene definita una classe Team. La classe Team comprende i metodi get/set che consentono di recuperare e impostare le proprietà all'interno della classe: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 144 Elementi del linguaggio ActionScript class Team { var teamName:String; var teamCode:String; var teamPlayers:Array = new Array(); function Team(param_name:String, param_code:String) { this.teamName = param_name; this.teamCode = param_code; } function get name():String { return this.teamName; } function set name(param_name:String):Void { this.teamName = param_name; } } Immettere il codice ActionScript seguente in un fotogramma della linea temporale: var giants:Team = new Team("San Fran", "SFO"); trace(giants.name); giants.name = "San Francisco"; trace(giants.name); /* output: San Fran San Francisco */ Quando si traccia giants.name, si utilizza il metodo get per restituire il valore della proprietà. Vedere anche addProperty (metodo Object.addProperty) Istruzione if if(condition) { statement(s); } Valuta una condizione per determinare l'azione successiva da eseguire in un file SWF. Se la condizione restituisce true, Flash esegue le istruzioni che seguono la condizione all'interno delle parentesi graffe ({}). Se la condizione è false, Flash ignora le istruzioni all'interno delle parentesi graffe ed esegue le istruzioni dopo le parentesi. Utilizzare le istruzioni if, else e else if per creare una logica ad albero negli script. Le parentesi graffe ({}) utilizzate per racchiudere il blocco di istruzioni che devono essere eseguite dall'istruzione if non sono necessarie se viene eseguita una sola istruzione. Disponibilità Flash Lite 1.0 Parametri condition:Boolean - Espressione che restituisce true o false. Esempio Nell'esempio seguente, la condizione tra parentesi restituisce la variabile nome per verificare se contiene il valore letterale "Erica". In caso affermativo, viene eseguita la funzione play() tra parentesi graffe. if(name == "Erica"){ play(); } Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 145 Elementi del linguaggio ActionScript L'esempio seguente utilizza un'istruzione if per valutare quanto tempo trascorre prima che un utente faccia clic su submit_btn in un file SWF. Se un utente fa clic sul pulsante dopo più di 10 secondi dall'inizio della riproduzione del file SWF, la condizione restituisce true e il messaggio tra parentesi graffe ({}) viene visualizzato in un campo di testo che viene creato in fase di runtime (mediante createTextField()). Se l'utente fa clic entro 10 secondi dalla riproduzione del file SWF, la condizione restituisce false e viene visualizzato un messaggio diverso. this.createTextField("message_txt", this.getNextHighestDepth, 0, 0, 100, 22); message_txt.autoSize = true; var startTime:Number = getTimer(); this.submit_btn.onRelease = function() { var difference:Number = (getTimer() - startTime) / 1000; if (difference > 10) { this._parent.message_txt.text = "Not very speedy, you took "+difference+" seconds."; } else { this._parent.message_txt.text = "Very good, you hit the button in "+difference+" seconds."; } }; Vedere anche Istruzione else Istruzione implements className implements interface01 [, interface02 , ...] Nota: per utilizzare questa parola chiave, è necessario specificare ActionScript 2.0 e Flash Player 6 o superiore nella scheda Flash della finestra di dialogo Impostazioni pubblicazione del file FLA. Questa parola chiave è supportata solo quando è utilizzata nei file di script esterni, non negli script scritti nel pannello Azioni. Specifica che una classe deve definire tutti i metodi dichiarati nell'interfaccia (o interfacce) in fase di implementazione. Disponibilità Flash Lite 2.0 Esempio Vedere interface. Vedere anche Istruzione class istruzione import import className import packageName.* Nota: per utilizzare questa parola chiave, è necessario specificare ActionScript 2.0 e Flash Player 6 o superiore nella scheda Flash della finestra di dialogo Impostazioni pubblicazione del file FLA. Questa istruzione è supportata nel pannello Azioni e nei file di classe esterni. Consente di accedere alle classi senza doverne specificare il nome completo. Ad esempio, se si desidera utilizzare una classe personalizzata macr.util.users.UserClass in uno script, è necessario farvi riferimento utilizzando il suo nome completo oppure importarla; se la si importa, è possibile farvi riferimento mediante il nome della classe: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 146 Elementi del linguaggio ActionScript // before importing var myUser:macr.util.users.UserClass = new macr.util.users.UserClass(); // after importing import macr.util.users.UserClass; var myUser:UserClass = new UserClass(); Se il pacchetto contiene più file di classe (working_directory/macr/utils/users) a cui si desidera accedere, è possibile importarli tutti in un'unica istruzione, come nell'esempio seguente: import macr.util.users.*; È necessario emettere l'istruzione import prima di cercare di accedere alla classe importata senza specificare il suo nome completo. Se si importa una classe ma non la si utilizza nello script, la classe non viene esportata nel file SWF. Questo significa che è possibile importare pacchetti di grandi dimensioni senza doversi preoccupare delle dimensioni del file SWF; il codice byte associato a una classe viene incluso in un file SWF solo se tale classe viene effettivamente utilizzata. L'istruzione import si applica solo allo script corrente (fotogramma oppure oggetto) in cui viene chiamata. Ad esempio, se nel fotogramma 1 di un documento Flash si importano tutte le classi presenti nel pacchetto macr.util, in quel fotogramma è possibile fare riferimento alle classi del pacchetto utilizzando i semplici nomi: // On Frame 1 of a FLA: import macr.util.*; var myFoo:foo = new foo(); In un altro script di fotogramma, tuttavia, sarebbe necessario fare riferimento alle classi di quel pacchetto mediante i loro nomi completi (var myFoo:foo = new macr.util.foo();) o aggiungere un'istruzione import all'altro fotogramma che importa le classi di quel pacchetto. Disponibilità Flash Lite 2.0 Parametri className:String - Il nome completo di una classe definita in un file di classe esterno. Istruzione interface interface InterfaceName [extends InterfaceName ] {} Nota: per utilizzare questa parola chiave, è necessario specificare ActionScript 2.0 e Flash Player 6 o superiore nella scheda Flash della finestra di dialogo Impostazioni pubblicazione del file FLA. Questa parola chiave è supportata solo quando è utilizzata nei file di script esterni, non negli script scritti nel pannello Azioni. Definisce un'interfaccia. Un'interfaccia è simile a una classe, con le eccezioni seguenti: • Le interfacce contengono solo le dichiarazioni dei metodi, non le loro implementazioni; vale a dire, ogni classe che implementa un'interfaccia deve fornire un'implementazione per ciascun metodo dichiarato nell'interfaccia. • Nella definizione di un'interfaccia sono consentiti solo membri pubblici e non membri di classe e istanza. • Le istruzioni get e set non sono consentite nelle definizioni di interfaccia. Esempio L'esempio seguente mostra alcuni modi per definire e implementare le interfacce: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 147 Elementi del linguaggio ActionScript (in top-level package .as files Ia, B, C, Ib, D, Ic, E) // filename Ia.as interface Ia { function k():Number; // method declaration only function n(x:Number):Number; // without implementation } // filename B.as class B implements Ia { function k():Number { return 25; } function n(x:Number):Number { return x + 5; } } // external script or Actions panel // script file var mvar:B = new B(); trace(mvar.k()); // 25 trace(mvar.n(7)); // 12 // filename c.as class C implements Ia { function k():Number { return 25; } } // error: class must implement all interface methods // filename Ib.as interface Ib { function o():Void; } class D implements Ia, Ib { function k():Number { return 15; } function n(x:Number):Number { return x * x; } function o():Void { trace("o"); } } // external script or Actions panel // script file mvar = new D(); Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 148 Elementi del linguaggio ActionScript trace(mvar.k()); // 15 trace(mvar.n(7)); // 49 trace(mvar.o()); // "o" interface Ic extends Ia { function p():Void; } class E implements Ib, Ic { function k():Number { return 25; } function n(x:Number):Number { return x + 5; } function o():Void { trace("o"); } function p():Void { trace("p"); } } Vedere anche Istruzione class Istruzione intrinsic intrinsic class className [extends superClass] [implements interfaceName [, interfaceName...] ] { //class definition here } Consente la verifica del tipo in fase di compilazione delle classi definite in precedenza. Flash utilizza le dichiarazioni della classe intrinsic per abilitare la verifica in fase di compilazione delle classi incorporate, quali Array, Object e String. Questa parola chiave indica al compilatore che non è richiesta alcuna implementazione di funzione e che per essa non deve essere generato alcun codice byte. La parola chiave intrinsic può essere utilizzata anche con le dichiarazioni di variabile e di funzione. Flash la utilizza per abilitare la verifica del tipo in fase di compilazione per le funzioni e le proprietà globali. La parola chiave intrinsic è stata specificamente creata per abilitare la verifica del tipo in fase di compilazione per le classi e gli oggetti incorporati, oltre che per le variabili e le funzioni globali. Non è dedicata all'uso generico, ma può essere di aiuto per gli sviluppatori che desiderano abilitare la verifica del tipo in fase di compilazione con classi definite in precedenza, in particolare se le classi sono state definite mediante ActionScript 1.0. Questa parola chiave è supportata solo quando è utilizzata nei file di script esterni, non negli script scritti nel pannello Azioni. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente mostra come abilitare la verifica del tipo in fase di compilazione per una classe definita in precedenza mediante ActionScript 1.0. Il codice genera un errore in fase di compilazione poiché la chiamata a myCircle.setRadius() invia come parametro un valore String anziché un valore Number. L'errore può essere evitato trasformando il parametro in un valore Number (ad esempio, sostituendo "10" con 10). Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 149 Elementi del linguaggio ActionScript // The following code must be placed in a file named Circle.as // that resides within your classpath: intrinsic class Circle { var radius:Number; function Circle(radius:Number); function getArea():Number; function getDiameter():Number; function setRadius(param_radius:Number):Number; } // This ActionScript 1.0 class definition may be placed in your FLA file. // Circle class is defined using ActionScript 1.0 function Circle(radius) { this.radius = radius; this.getArea = function(){ return Math.PI*this.radius*this.radius; }; this.getDiameter = function() { return 2*this.radius; }; this.setRadius = function(param_radius) { this.radius = param_radius; } } // ActionScript 2.0 code that uses the Circle class var myCircle:Circle = new Circle(5); trace(myCircle.getArea()); trace(myCircle.getDiameter()); myCircle.setRadius("10"); trace(myCircle.radius); trace(myCircle.getArea()); trace(myCircle.getDiameter()); Vedere anche Istruzione class Istruzione private class className{ private var name; private function name() { // your statements here } } Nota: per utilizzare questa parola chiave, è necessario specificare ActionScript 2.0 e Flash Player 6 o superiore nella scheda Flash della finestra di dialogo Impostazioni pubblicazione del file FLA. Questa parola chiave è supportata solo quando è utilizzata nei file di script esterni, non negli script scritti nel pannello Azioni. Specifica che una variabile o una funzione sono disponibili solo per la classe (o relative sottoclassi) che le dichiara o definisce. Per impostazione predefinita, una variabile o una funzione sono disponibili a qualsiasi chiamante. Utilizzare questa parola chiave se si desidera limitare l'accesso a una variabile o funzione. È possibile utilizzare questa parola chiave solo nelle definizioni di classe, non nelle definizioni di interfaccia. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 150 Elementi del linguaggio ActionScript Disponibilità Flash Lite 2.0 Parametri name:String - Il nome della variabile o funzione che si desidera specificare come privata. Esempio L'esempio seguente mostra il modo in cui nascondere determinate proprietà all'interno di una classe utilizzando la parola chiave private. Creare un nuovo file AS denominato Login.as. class Login { private var loginUserName:String; private var loginPassword:String; public function Login(param_username:String, param_password:String) { this.loginUserName = param_username; this.loginPassword = param_password; } public function get username():String { return this.loginUserName; } public function set username(param_username:String):Void { this.loginUserName = param_username; } public function set password(param_password:String):Void { this.loginPassword = param_password; } } Nella stessa directory di Login.as, creare un nuovo documento FLA o AS. Immettere il codice ActionScript seguente nel fotogramma 1 della linea temporale. import Login; var gus:Login = new Login("Gus", "Smith"); trace(gus.username); // output: Gus trace(gus.password); // output: undefined trace(gus.loginPassword); // error Dal momento che loginPassword è una variabile private, non è possibile accedervi da fuori del file di classe Login.as. I tentativi di accedere alla variabile private generano un messaggio di errore. Vedere anche Istruzione public Istruzione public class className{ public var name; public function name() { // your statements here } } Nota: per utilizzare questa parola chiave, è necessario specificare ActionScript 2.0 e Flash Player 6 o superiore nella scheda Flash della finestra di dialogo Impostazioni pubblicazione del file FLA. Questa parola chiave è supportata solo quando è utilizzata nei file di script esterni, non negli script scritti nel pannello Azioni. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 151 Elementi del linguaggio ActionScript Specifica che una variabile o una funzione sono disponibili a qualsiasi chiamante. Poiché le variabili e le funzioni per impostazione predefinita sono pubbliche, questa parola chiave viene utilizzata principalmente per ragioni di stile. Ad esempio, la si può utilizzare per motivi di continuità in un blocco di codice che contiene anche variabili private o statiche. Disponibilità Flash Lite 2.0 Parametri name:String - Il nome della variabile o funzione che si desidera specificare come pubblica. Esempio L'esempio seguente mostra come utilizzare le variabili public in un file di classe. Creare un nuovo file di classe denominato User.as e immettere il codice seguente: class User { public var age:Number; public var name:String; } Quindi, creare un nuovo file FLA o AS nella stessa directory e immettere il codice ActionScript seguente nel fotogramma 1 della linea temporale: import User; var jimmy:User = new User(); jimmy.age = 27; jimmy.name = "jimmy"; Se si trasforma una delle variabili public nella classe User in una variabile private, viene generato un errore quando si tenta di accedere alla proprietà. Vedere anche Istruzione private Istruzione return return[expression] Specifica il valore restituito da una funzione. L'istruzione return valuta expression e restituisce il risultato come valore della funzione in cui viene eseguita. L'istruzione return fa in modo che l'esecuzione torni immediatamente alla funzione di chiamata. Se l'istruzione return è utilizzata da sola, restituisce il valore undefined Non è possibile eseguire return su più valori; se si tenta di eseguire questa operazione, viene restituito solo l'ultimo valore. Nel seguente esempio, viene restituito c: return a, b, c ; Per fare in modo che vengano restituiti più valori, si consiglia di utilizzare un array o un oggetto. Disponibilità Flash Lite 2.0 Restituisce String - Il parametro expression valutato, se fornito. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 152 Elementi del linguaggio ActionScript Parametri expression - Una stringa, un numero, un valore booleano, un array o un oggetto da valutare e restituire come valore della funzione. Questo parametro è opzionale. Esempio L'esempio seguente utilizza l'istruzione return all'interno del corpo della funzione sum() per restituire il valore aggiunto dei tre parametri. La successiva riga di codice chiama sum() e assegna il valore restituito alla variabile newValue. function sum(a:Number, b:Number, c:Number):Number { return (a + b + c); } var newValue:Number = sum(4, 32, 78); trace(newValue); // output: 114 Vedere anche Funzione Array Istruzione set function set property(varName) { // your statements here } Nota: per utilizzare questa parola chiave, è necessario specificare ActionScript 2.0 e Flash Player 6 o superiore nella scheda Flash della finestra di dialogo Impostazioni pubblicazione del file FLA. Questa parola chiave è supportata solo quando è utilizzata nei file di script esterni, non negli script scritti nel pannello Azioni. Consente l'impostazione implicita delle proprietà associate agli oggetti basati sulle classi definite nei file di classe esterni. L'uso dei metodi set impliciti consente di modificare il valore di una proprietà dell'oggetto senza accedere alla proprietà direttamente. I metodi impliciti get/set rappresentano un'abbreviazione sintattica del metodo Object.addProperty() in ActionScript 1. Disponibilità Flash Lite 2.0 Parametri property:String - Parola che fa riferimento alla proprietà a cui set accede; questo valore deve essere uguale al valore utilizzato nel comando get corrispondente. Esempio L'esempio seguente crea una classe Login che mostra il modo in cui è possibile utilizzare la parola chiave set per impostare le variabili private: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 153 Elementi del linguaggio ActionScript class Login { private var loginUserName:String; private var loginPassword:String; public function Login(param_username:String, param_password:String) { this.loginUserName = param_username; this.loginPassword = param_password; } public function get username():String { return this.loginUserName; } public function set username(param_username:String):Void { this.loginUserName = param_username; } public function set password(param_password:String):Void { this.loginPassword = param_password; } } In un file FLA o AS che si trova nella stessa directory di Login.as, aggiungere il codice ActionScript seguente al fotogramma 1 sulla linea temporale: var gus:Login = new Login("Gus", "Smith"); trace(gus.username); // output: Gus gus.username = "Rupert"; trace(gus.username); // output: Rupert In questo esempio, la funzione get viene eseguita quando viene tracciato il valore. La funzione set viene attivata solo quando a essa si passa un valore, come mostrato nella riga seguente: gus.username = "Rupert"; Vedere anche Funzione getProperty Istruzione set variable set("variableString",expression) Assegna un valore a una variabile. Una variabile è un "contenitore" di dati; il contenitore resta sempre invariato, ma il contenuto può variare. Mediante la modifica del valore di una variabile durante la riproduzione del file SWF, è possibile registrare e salvare informazioni sulle azioni svolte dall'utente, registrare i valori che vengono modificati durante la riproduzione del file o verificare se una condizione è true o false. Le variabili possono contenere qualsiasi tipo di dati (quali stringa, numero, booleano, oggetto o clip filmato). La linea temporale di ciascun file SWF e clip filmato dispone del proprio set di variabili, e ogni variabile ha il proprio valore, indipendente dalle variabili delle altre linee temporali. La tipizzazione forte dei dati non è supportata all'interno delle istruzioni set. Se si utilizza questa istruzione per impostare una variabile su un valore il cui tipo di dati è diverso da quello associato alla variabile in un file di classe, non viene generato alcun errore di compilazione. Una lieve ma importante differenza da ricordare, è il fatto che il parametro variableString è una stringa, non un nome di variabile. Se si trasmette un nome di variabile esistente come primo parametro a set() senza racchiudere il nome tra virgolette (""), la variabile viene valutata prima che le venga assegnato il valore di expression. Ad esempio, se si crea una variabile stringa chiamata myVariable e le si assegna il valore "Tuesday" dimenticando poi di utilizzare le virgolette, viene erroneamente creata una nuova variabile chiamata Tuesday contenente il valore che si voleva assegnare a myVariable: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 154 Elementi del linguaggio ActionScript var myVariable:String = "Tuesday"; set (myVariable, "Saturday"); trace(myVariable); // outputs Tuesday trace(Tuesday); // outputs Saturday Questa situazione può essere evitata utilizzando le virgolette (""): set ("myVariable", "Saturday"); trace(myVariable); //outputs Saturday Disponibilità Flash Lite 2.0 Parametri variableString:String - Stringa che indica una variabile che contiene il valore del parametro expression. Esempio Nell'esempio seguente viene assegnato il valore "Jakob" alla variabile name. set("name", "Jakob"); trace(name); Il codice seguente viene ripetuto tre volte e crea tre nuove variabili denominate caption0, caption1 e caption2: for (var i = 0; i < 3; i++) { set("caption" + i, "this is caption " + i); } trace(caption0); trace(caption1); trace(caption2); Istruzione static class className{ static var name; static function name() { // your statements here } } Nota: per utilizzare questa parola chiave, è necessario specificare ActionScript 2.0 e Flash Player 6 o superiore nella scheda Flash della finestra di dialogo Impostazioni pubblicazione del file FLA. Questa parola chiave è supportata solo quando è utilizzata nei file di script esterni, non negli script scritti nel pannello Azioni. Specifica che una variabile o una funzione vengono create solo una volta per ogni classe e non in ogni oggetto basato sulla classe. È possibile accedere a un membro di classe statico senza creare un'istanza della classe, utilizzando la sintassi someClassName.name. Se si crea un'istanza della classe, è possibile anche accedere a un membro statico utilizzando l'istanza, ma solo attraverso una funzione non statica che accede al membro statico. Questa parola chiave può essere utilizzata solo nelle definizioni di classe, non nelle definizioni di interfaccia. Disponibilità Flash Lite 2.0 Parametri name:String - Il nome della variabile o funzione che si desidera specificare come statica. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 155 Elementi del linguaggio ActionScript Esempio L'esempio seguente mostra il modo in cui è possibile utilizzare la parola chiave static per creare un contatore che tenga traccia del numero di istanze che sono state create per la classe. Dal momento che la variabile numInstances è static, viene creata solo una volta per l'intera classe e non per ogni singola istanza. Creare un nuovo file AS denominato Users.as e immettere il codice seguente: class Users { private static var numInstances:Number = 0; function Users() { numInstances++; } static function get instances():Number { return numInstances; } } Creare un documento FLA o AS nella stessa directory e immettere il codice ActionScript seguente nel fotogramma 1 della linea temporale: trace(Users.instances); var user1:Users = new Users(); trace(Users.instances); var user2:Users = new Users(); trace(Users.instances); Vedere anche Istruzione private Istruzione super super.method([arg1, ..., argN]) super([arg1, ..., argN]) Il primo stile di sintassi può essere utilizzato nel corpo del metodo di un oggetto per chiamare la versione superclasse di un metodo, e può facoltativamente trasmettere parametri (arg1 ... argN) al metodo della superclasse. Questo è utile per creare metodi della sottoclasse che oltre ad aggiungere comportamenti supplementari ai metodi della superclasse, li chiamano affinché eseguano il loro comportamento originale. Il secondo stile di sintassi può essere utilizzato nel corpo di una funzione di costruzione per chiamare la versione superclasse della funzione di costruzione, a cui può facoltativamente trasmettere parametri. Questo è utile per creare una sottoclasse che oltre a eseguire un'ulteriore inizializzazione, chiama la funzione di costruzione della superclasse affinché esegua l'inizializzazione della superclasse. Disponibilità Flash Lite 2.0 Restituisce Entrambe le forme chiamano una funzione, che può restituire qualsiasi valore. Parametri method:Function - Il metodo da chiamare nella superclasse. argN - Parametri opzionali che vengono trasmessi alla versione superclasse del metodo (sintassi 1) o alla funzione di costruzione della superclasse (sintassi 2). Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 156 Elementi del linguaggio ActionScript Istruzione switch switch (expression){caseClause: [defaultClause:] } Crea una struttura ad albero per le istruzioni ActionScript. Come nel caso dell'istruzione if, l'istruzione switch prova una condizione ed esegue le istruzioni se la condizione restituisce il valore true. Tutte le istruzioni switch dovrebbero comprendere un'etichetta case default che a sua volta dovrebbe comprendere un'istruzione break che consente di uscire dall'istruzione switch quando viene soddisfatta la condizione. Un'etichetta case che non consente di uscire dall'istruzione non include un'istruzione break. Disponibilità Flash Lite 1.0 Parametri expression - Qualsiasi espressione. Esempio Nell'esempio seguente, se il parametro String.fromCharCode(Key.getAscii()) restituisce A, viene eseguita l'istruzione trace() che segue case "A"; se il parametro restituisce a, viene eseguita l'istruzione trace() che segue case "a"; e così via. Se nessuna espressione case corrisponde al parametro String.fromCharCode(Key.getAscii()), viene eseguita l'istruzione trace() che segue la parola chiave default. var listenerObj:Object = new Object(); listenerObj.onKeyDown = function() { switch (String.fromCharCode(Key.getAscii())) { case "A" : trace("you pressed A"); break; case "a" : trace("you pressed a"); break; case "E" : case "e" : trace("you pressed E or e"); break; case "I" : case "i" : trace("you pressed I or i"); break; default : trace("you pressed some other key"); break; } }; Key.addListener(listenerObj); Vedere anche Operatore === (uguaglianza rigorosa) Istruzione throw throw expression Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 157 Elementi del linguaggio ActionScript Crea, o genera, un errore che può essere gestito, o rilevato, mediante un blocco di codice catch{}. Se un'eccezione non viene rilevata da un blocco catch, la rappresentazione sotto forma di stringa del valore generato viene inviata al pannello Output. Tipicamente, vengono generate istanze della classe Error o delle sue sottoclassi (consultare la sezione degli esempi). Disponibilità Flash Lite 2.0 Parametri expression:Object - Un oggetto o espressione ActionScript. Esempio In questo esempio, una funzione denominata checkEmail() verifica se la stringa che le viene passata è un indirizzo e-mail dal formato corretto. Se la stringa non contiene il simbolo @, viene generato un errore. function checkEmail(email:String) { if (email.indexOf("@") == -1) { throw new Error("Invalid email address"); } } checkEmail("someuser_theirdomain.com"); Quindi, il codice seguente chiama la funzione checkEmail() all'interno del blocco di codice try. Se email_txt non contiene un indirizzo e-mail valido, il messaggio di errore viene visualizzato in un campo di testo (error_txt). try { checkEmail("Joe Smith"); } catch (e) { error_txt.text = e.toString(); } Nell'esempio seguente, viene generata una sottoclasse della classe Error. La funzione checkEmail() viene modificata in modo da generare un'istanza di tale classe. // Define Error subclass InvalidEmailError // In InvalidEmailError.as: class InvalidEmailAddress extends Error { var message = "Invalid email address."; } In un file FLA o AS, immettere il codice ActionScript seguente nel fotogramma 1 della linea temporale: import InvalidEmailAddress; function checkEmail(email:String) { if (email.indexOf("@") == -1) { throw new InvalidEmailAddress(); } } try { checkEmail("Joe Smith"); } catch (e) { this.createTextField("error_txt", this.getNextHighestDepth(), 0, 0, 100, 22); error_txt.autoSize = true; error_txt.text = e.toString(); } Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 158 Elementi del linguaggio ActionScript Vedere anche Error Istruzione try..catch..finally try {// ... try block ... } finally { // ... finally block ... } try { // ... try block ... } catch(error [:ErrorType1]) // ... catch block ... } [catch(error[:ErrorTypeN]) { // ... catch block ... }] [finally { // ... finally block ... }] Si racchiude un blocco di codice nel quale può verificarsi un errore, quindi si risponde all'errore. Se un qualsiasi codice all'interno del blocco di codice try genera un errore (mediante l'istruzione throw), il controllo passa al blocco catch (se presente), quindi al blocco di codice finally (se presente). Il blocco finally viene sempre eseguito, che sia stato generato un errore o meno. Se il codice nel blocco try non genera un errore (ovvero se il blocco try viene completato normalmente), il codice nel blocco finally viene comunque eseguito. Il blocco finally viene eseguito anche se il blocco try viene chiuso mediante un'istruzione return. Un blocco try deve essere seguito da un blocco catch, o da un blocco finally, o da entrambi. Un singolo blocco try può avere più blocchi catch, ma solo un blocco finally. È possibile nidificare i blocchi try per tutti i numeri di livelli (profondità) desiderati. Il parametro error specificato in un gestore catch deve essere un semplice identificatore come e o theException o x. È possibile digitare la variabile anche in un gestore catch. Quando sono utilizzati con più blocchi catch, gli errori digitati consentono di rilevare più tipi di errore generati da un unico blocco try. Se l'eccezione generata è un oggetto, il tipo corrisponde se l'oggetto generato è una sottoclasse del tipo specificato. Se viene generato un errore di un tipo specifico, viene eseguito il blocco catch che gestisce l'errore corrispondente. Se viene generata un'eccezione di un tipo diverso da quello specificato, il blocco catch non viene eseguito e l'eccezione viene automaticamente espulsa dal blocco try verso un gestore catch corrispondente. Se un errore viene generato all'interno di una funzione, e la funzione non comprende un gestore catch, l'interprete di ActionScript esce da quella funzione e da tutte le funzioni di chiamata, finché non viene trovato un blocco catch. Nel corso di questo processo, i gestori finally vengono chiamati a tutti i livelli. Disponibilità Flash Lite 2.0 Parametri error:Object - L'espressione generata da un'istruzione throw, solitamente un'istanza della classe Error o di una delle sue sottoclassi. Esempio L'esempio seguente mostra come creare un'istruzione try..finally. Dal momento che il codice nel blocco finally viene sempre eseguito, di solito viene utilizzato per eseguire le eventuali operazioni di pulizia dopo l'esecuzione di un blocco try. Nell'esempio seguente setInterval() chiama una funzione ogni 1000 millisecondi (1 secondo). Se si verifica un errore viene generato un errore, che viene rilevato da un blocco catch. Il blocco finally viene sempre eseguito, a prescindere dal fatto che si sia verificato un errore. Dal momento che viene utilizzata la funzione setInterval(), è necessario collocare clearInterval() nel blocco finally per garantire che l'intervallo venga cancellato dalla memoria. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 159 Elementi del linguaggio ActionScript myFunction = function () { trace("this is myFunction"); }; try { myInterval = setInterval(this, "myFunction", 1000); throw new Error("my error"); } catch (myError:Error) { trace("error caught: "+myError); } finally { clearInterval(myInterval); trace("error is cleared"); } Nell'esempio seguente, il blocco finally viene utilizzato per eliminare un oggetto ActionScript, a prescindere dal fatto che si sia verificato un errore. Creare un nuovo file AS denominato Account.as. class Account { var balance:Number = 1000; function getAccountInfo():Number { return (Math.round(Math.random() * 10) % 2); } } Creare un documento FLA o AS nella stessa directory e immettere il codice ActionScript seguente nel fotogramma 1 della linea temporale: import Account; var account:Account = new Account(); try { var returnVal = account.getAccountInfo(); if (returnVal != 0) { throw new Error("Error getting account information."); } } finally { if (account != null) { delete account; } } L'esempio seguente mostra un'istruzione try..catch. Il codice all'interno del blocco try viene eseguito. Se viene generata un'eccezione da parte di un codice qualsiasi all'interno del blocco try, il controllo passa al blocco catch, che visualizza il messaggio di errore in un campo di testo mediante il metodo Error.toString(). Creare un nuovo documento FLA o AS nella stessa directory e immettere il codice ActionScript seguente nel fotogramma 1 della linea temporale: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 160 Elementi del linguaggio ActionScript import Account; var account:Account = new Account(); try { var returnVal = account.getAccountInfo(); if (returnVal != 0) { throw new Error("Error getting account information."); } trace("success"); } catch (e) { this.createTextField("status_txt", this.getNextHighestDepth(), 0, 0, 100, 22); status_txt.autoSize = true; status_txt.text = e.toString(); } L'esempio seguente mostra un blocco di codice try con più blocchi catch tipizzati. A seconda del tipo di errore che si è verificato, il blocco di codice try genera un tipo diverso di oggetto. In questo caso, myRecordSet è un'istanza di una classe (ipotetica) denominata RecordSet il cui metodo sortRows() può generare due tipi di errore: RecordSetException e MalformedRecord. Nell'esempio seguente, gli oggetti RecordSetException e MalformedRecord sono sottoclassi della classe Error. Ognuno è definito nel relativo file di classe AS. // In RecordSetException.as: class RecordSetException extends Error { var message = "Record set exception occurred."; } // In MalformedRecord.as: class MalformedRecord extends Error { var message = "Malformed record exception occurred."; } All'interno del metodo sortRows() della classe RecordSet, viene generato uno degli errori precedentemente definiti, a seconda del tipo di eccezione che si è verificata. L'esempio seguente mostra il possibile aspetto di tale codice: class RecordSet { function sortRows() { var returnVal:Number = randomNum(); if (returnVal == 1) { throw new RecordSetException(); } else if (returnVal == 2) { throw new MalformedRecord(); } } function randomNum():Number { return Math.round(Math.random() * 10) % 3; } } Infine, in un altro file AS o script FLA, il codice seguente richiama il metodo sortRows() su un'istanza della classe RecordSet. Il metodo definisce i blocchi catch per ciascun tipo di errore che viene generato da sortRows() Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 161 Elementi del linguaggio ActionScript import RecordSet; var myRecordSet:RecordSet = new RecordSet(); try { myRecordSet.sortRows(); trace("everything is fine"); } catch (e:RecordSetException) { trace(e.toString()); } catch (e:MalformedRecord) { trace(e.toString()); } Vedere anche Error Istruzione var var variableName [= value1][...,variableNameN[=valueN]] Utilizzata per dichiarare le variabili locali. Se si dichiarano delle variabili all'interno di una funzione, tali variabili sono locali, vengono definite per la funzione e scadono al termine della chiamata della funzione. Più precisamente, una variabile definita mediante var è locale rispetto al blocco di codice che la contiene. I blocchi di codice sono contrassegnati mediante le parentesi graffe ({}). Se si dichiarano delle variabili fuori da una funzione, tali variabili sono disponibili durante tutta la linea temporale che contiene l'istruzione. Non è possibile dichiarare come variabile locale una variabile che abbia come area di validità un altro oggetto. my_array.length = 25; // ok var my_array.length = 25; // syntax error Quando si utilizza var, la variabile può essere definita mediante la tipizzazione forte dei dati. È possibile dichiarare più variabili in un'istruzione, separando le dichiarazioni mediante virgole (tuttavia, questa sintassi può ridurre la chiarezza del codice): var first:String = "Bart", middle:String = "J.", last:String = "Bartleby"; Nota: è anche necessario utilizzare var per dichiarare le proprietà all'interno delle definizioni di classe negli script esterni. I file di classe supportano inoltre aree di validità delle variabili public, private e static. Disponibilità Flash Lite 2.0 Parametri variableName:String - Un identificatore. Esempio Il codice ActionScript seguente crea un nuovo array di nomi di prodotto. Array.push aggiunge un elemento alla fine dell'array. Se si desidera utilizzare la tipizzazione forte, è essenziale utilizzare la parola chiave var. Senza var prima di product_array, vengono generati degli errori quando si tenta di utilizzare la tipizzazione forte. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 162 Elementi del linguaggio ActionScript var product_array:Array = new Array("MX 2004", "Studio", "Dreamweaver", "Flash", "ColdFusion", "Contribute", "Breeze"); product_array.push("Flex"); trace(product_array); // output: MX 2004,Studio,Dreamweaver,Flash,ColdFusion,Contribute,Breeze,Flex Istruzione while while(condition) { statement(s); } Valuta una condizione e, se questa restituisce true, esegue un'istruzione o una serie di istruzioni prima di tornare a valutare la condizione. Dopo che la condizione ha restituito false, l'istruzione (o la serie di istruzioni) viene ignorata e il ciclo termina. L'istruzione while esegue le serie di operazioni seguenti. Ogni ripetizione dal punto 1 al punto 4 viene definita iterazione del ciclo. La condition viene nuovamente verificata all'inizio di ogni iterazione, come nei punti seguenti: • L'espressione condition viene valutata. • Se la condizione restituisce true o un valore convertibile al valore booleano true, ad esempio un numero diverso da 0, passare al punto 3. In caso contrario, l'istruzione while viene completata e l'esecuzione riprende dall'istruzione successiva al ciclo while. • Eseguire il blocco di istruzioni statement(s). • Andare al punto 1. La ripetizione ciclica viene solitamente utilizzata per eseguire un'azione finché la variabile counter è inferiore al valore specificato. Alla fine di ogni ciclo, la variabile counter viene incrementata finché non viene raggiunto il valore specificato. A quel punto, la condizione non è più true e il ciclo termina. Le parentesi graffe ({}) utilizzate per racchiudere il blocco di istruzioni che devono essere eseguite dall'istruzione while non sono necessarie se viene eseguita una sola istruzione. Disponibilità Flash Lite 1.0 Parametri condition:Boolean - Espressione che restituisce true o false. Esempio Nell'esempio seguente, l'istruzione while viene utilizzata per provare un'espressione. Quando il valore di i è inferiore a 20, il valore di i viene tracciato. Quando la condizione non è più true, il ciclo viene terminato. var i:Number = 0; while (i < 20) { trace(i); i += 3; } Il risultato seguente viene visualizzato nel pannello Output. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 163 Elementi del linguaggio ActionScript 0 3 6 9 12 15 18 Vedere anche Istruzione continue Istruzione with with (object:Object) { statement(s); } Consente di specificare un oggetto (come un clip filmato) con il parametro object e valutare espressioni e azioni all'interno di quell'oggetto mediante il parametro statement(s). In questo modo, non è necessario scrivere più volte il nome o il percorso dell'oggetto. Il parametro object diventa il contesto in cui le proprietà, le variabili e le funzioni del parametro statement(s) vengono lette. Ad esempio, se object è my_array e due delle proprietà specificate sono length e concat, queste proprietà vengono automaticamente lette come my_array.length e my_array.concat. In un altro esempio, se object è state.california, qualsiasi azione o istruzione interna all'istruzione with viene chiamata dall'interno dell'istanza california. Per trovare il valore di un identificatore nel parametro statement(s), ActionScript lo cerca in tutti i livelli della catena, secondo un ordine prestabilito, partendo dall'inizio della catena delle aree di validità specificata da object. La catena delle aree di validità utilizzata dall'istruzione with per trovare gli identificatori comincia con il primo elemento dell'elenco seguente e continua fino all'ultimo elemento: • L'oggetto specificato nel parametro object nell'istruzione with più interna. • L'oggetto specificato nel parametro object nell'istruzione with più esterna. • L'oggetto Activation. (Un oggetto provvisorio creato automaticamente quando viene chiamata una funzione che contiene le variabili locali chiamate nella funzione). • Il clip filmato contenente lo script in fase di esecuzione. • L'oggetto Global (oggetti incorporati quali Math e String). Per impostare una variabile all'interno di un'istruzione with, è necessario aver dichiarato la variabile fuori dall'istruzione with, oppure immettere il percorso completo della linea temporale in cui la variabile dovrà risiedere. Se si imposta una variabile in un'istruzione with senza dichiararla, l'istruzione with cerca il valore in base alla catena delle aree di validità. Se la variabile non esiste già, il nuovo valore viene impostato sulla linea temporale da cui l'istruzione with era stata chiamata. Invece di with(), è possibile utilizzare i percorsi diretti. Se si ritiene che la digitazione dei percorsi sia poco pratica, è possibile creare una variabile locale in cui memorizzare il percorso che potrà essere riutilizzato nel codice, come nell'esempio ActionScript seguente: var shortcut = this._parent._parent.name_txt; shortcut.text = "Hank"; shortcut.autoSize = true; Disponibilità Flash Lite 2.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 164 Elementi del linguaggio ActionScript Parametri object:Object - Un'istanza di un clip filmato o di un oggetto ActionScript. Esempio L'esempio seguente imposta le proprietà _x e _y dell'istanza someOther_mc, quindi indica a someOther_mc di andare al fotogramma 3 e arrestarsi. with (someOther_mc) { _x = 50; _y = 100; gotoAndStop(3); } Il frammento di codice seguente mostra come scrivere il codice precedente senza ricorrere a un'istruzione with. someOther_mc._x = 50; someOther_mc._y = 100; someOther_mc.gotoAndStop(3); L'istruzione with è utile per accedere a più elementi contemporaneamente in un elenco delle catene delle aree di validità. Nell'esempio seguente, l'oggetto Math incorporato viene collocato all'inizio della catena delle aree di validità. L'impostazione di Math come oggetto predefinito risolve gli identificatori cos, sin e PI rispettivamente Math.cos, Math.sin e Math.PI. Gli identificatori a, x, y e r non sono metodi o proprietà dell'oggetto Math, ma poiché sono presenti nell'area di attivazione della funzione polar(), risolvono alle variabili locali corrispondenti. function polar(r:Number):Void { var a:Number, x:Number, y:Number; with (Math) { a = PI * pow(r, 2); x = r * cos(PI); y = r * sin(PI / 2); } trace("area = " + a); trace("x = " + x); trace("y = " + y); } polar(3); Il risultato seguente viene visualizzato nel pannello Output. area = 28.2743338823081 x = -3 y = 3 Comandi fscommand2 I comandi seguenti sono disponibili per la funzione fscommand2(). Per una descrizione della funzione fscommand2(), vedere fscommand2 Function in "Funzioni globali". Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 165 Elementi del linguaggio ActionScript Comandi fscommand2 Comando Descrizione ExtendBacklightDuration Estende la durata della retroilluminazione per un periodo di tempo specifico. FullScreen Imposta le dimensioni dell'area di visualizzazione da utilizzare per il rendering. GetBatteryLevel Restituisce il livello corrente della batteria. GetDevice Imposta un parametro che identifica il dispositivo su cui è in esecuzione Flash Lite. GetDeviceID Imposta un parametro che rappresenta l'identificatore univoco del dispositivo (ad esempio, il numero di serie). GetFreePlayerMemory Restituisce la quantità di memoria heap, espressa in KB, attualmente disponibile per Flash Lite. GetMaxBatteryLevel Restituisce il livello massimo della batteria del dispositivo. GetMaxSignalLevel Restituisce il livello di potenza massimo del segnale, sotto forma di valore numerico. GetMaxVolumeLevel Restituisce il livello massimo del volume del dispositivo, sotto forma di valore numerico. GetNetworkConnectionN Restituisce il nome della connessione di rete attiva o predefinita. ame GetNetworkConnectStat us Restituisce un valore che indica lo stato di connessione corrente alla rete. GetNetworkGeneration Restituisce la generazione della rete wireless mobile corrente (ad esempio, 2G, seconda generazione). GetNetworkName Imposta un parametro sul nome della rete corrente. GetNetworkRequestStatu Restituisce un valore che indica lo stato della richiesta HTTP più recente. s GetNetworkStatus Restituisce un valore che indica lo stato di rete per il telefono (ovvero se è registrata una rete e se il telefono è attualmente in roaming). GetPlatform Imposta un parametro che identifica la piattaforma corrente, che descrive in generale la classe del dispositivo. GetPowerSource Restituisce un valore che indica se l'alimentazione è attualmente fornita da una batteria o da una fonte di alimentazione esterna. GetSignalLevel Restituisce la potenza corrente del segnale, sotto forma di valore numerico. GetSoftKeyLocation Restituisce un valore che indica la posizione dei tasti virtuali sul dispositivo. GetTotalPlayerMemory Restituisce la quantità totale di memoria heap, espressa in kilobyte, disponibile per Flash Lite. GetVolumeLevel Restituisce il livello corrente del volume del dispositivo, sotto forma di valore numerico. Quit Indica al lettore di Flash Lite di interrompere la riproduzione e uscire. ResetSoftKeys Ripristina le impostazioni originali dei tasti virtuali. SetFocusRectColor Imposta il colore del rettangolo di attivazione su qualsiasi colore. SetInputTextType Specifica la modalità di apertura dei campi di testo di input. SetSoftKeys Mappa nuovamente i tasti virtuali di un dispositivo mobile. StartVibrate Attiva la vibrazione del telefono. StopVibrate Interrompe la vibrazione del telefono, se è attualmente in funzione. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 166 Elementi del linguaggio ActionScript Comando fscommand2 ExtendBacklightDuration ExtendBacklightDuration Estende la durata della retroilluminazione per un periodo di tempo specifico. Se la durata è superiore a zero, questo comando specifica la quantità di tempo in secondi (fino a un massimo di sessanta) in cui la retroilluminazione deve restare accesa. Se l'intervallo di tempo specificato trascorre senza che venga effettuata una chiamata aggiuntiva a questo comando, il comportamento della retroilluminazione ritorna alla durata predefinita. Se la durata è zero, il comportamento della retroilluminazione torna immediatamente al comportamento predefinito. Nota: questa funzione dipende dal sistema. Ad esempio, alcuni sistemi limitano la durata totale massima della retroilluminazione. Nota: questo comando non è supportato dai dispositivi BREW. Comando Parametri Valore restituito ExtendBacklightDuration duration La durata della -1: non supportato. retroilluminazione, in secondi. Valore massimo di 60 secondi. 0: si è verificato un errore e non è stato possibile completare l'operazione. 1: esito positivo. Disponibilità Flash Lite 2.0 Esempio Il seguente esempio estende la durata della retroilluminazione per 45 secondi: status = FSCommand2("ExtendBacklightDuration", 45) Comando fscommand2 FullScreen FullScreen Imposta le dimensioni dell'area di visualizzazione da utilizzare per il rendering. La dimensione può essere una variabile definita o un valore di stringa costante con uno di questi valori: true (schermo intero) o false (inferiore allo schermo intero). Qualunque altro valore viene considerato false. Nota: questo comando è supportato solo quando Flash Lite è in esecuzione in modalità autonoma, e non quando è in esecuzione nel contesto di un'altra applicazione (ad esempio, come plug-in di un browser). Comando Parametri Valore restituito FullScreen size -1: non supportato. 0: supportato. Disponibilità Flash Lite 1.1 Esempio L'esempio seguente imposta la dimensione dell'area di visualizzazione a schermo intero: GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 167 Ultimo aggiornamento 4/5/2010 Elementi del linguaggio ActionScript status = fscommand2("FullScreen", true); Comando fscommand2 GetBatteryLevel GetBatteryLevel Restituisce il livello corrente della batteria. Si tratta di un valore numerico compreso tra 0 e il valore massimo restituito dalla variabile GetMaxBatteryLevel. Nota: questo comando non è supportato dai dispositivi BREW. Comando Parametri Valore restituito GetBatteryLevel Nessuno. -1: non supportato. Altri valori numerici: il livello corrente della batteria. Disponibilità Flash Lite 1.1 Esempio L'esempio seguente imposta la variabile battLevel sul livello corrente della batteria: battLevel = fscommand2("GetBatteryLevel"); Comando fscommand2 GetDevice GetDevice Imposta un parametro che identifica il dispositivo su cui è in esecuzione Flash Lite. Questo identificatore corrisponde generalmente al nome del modello. Comando Parametri Valore restituito GetDevice device Stringa che riceve l'identificatore del dispositivo. Può -1: non supportato. trattarsi del nome di una variabile o di un valore di stringa che 0: supportato.. contiene il nome di una variabile. Disponibilità Flash Lite 1.1 Esempio L'esempio seguente assegna l'identificatore del dispositivo alla variabile device: status = fscommand2("GetDevice", "device"); Seguono alcuni risultati di esempio e i dispositivi a cui corrispondono: D506iUn telefono Mitsubishi 506i. DFOMA1Un telefono Mitsubishi FOMA1. F506iUn telefono Fujitsu 506i. FFOMA1Un telefono Fujitsu FOMA1. N506iUn telefono NEC 506i. NFOMA1Un telefono NEC FOMA1. Nokia3650Un telefono Nokia 3650. p506i Un telefono Panasonic 506i. PFOMA1Un telefono Panasonic FOMA1. SH506iUn telefono Sharp 506i. SHFOMA1Un telefono Sharp FOMA1. SO506iUn telefono Sony 506i. Comando fscommand2 GetDeviceID GetDeviceID GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 168 Ultimo aggiornamento 4/5/2010 Elementi del linguaggio ActionScript Imposta un parametro che rappresenta l'identificatore univoco del dispositivo (ad esempio, il numero di serie). Comando Parametri Valore restituito GetDeviceID idUna stringa che riceve l'identificatore del dispositivo. Può -1: non supportato. trattarsi del nome di una variabile o di un valore di stringa che 0: supportato. contiene il nome di una variabile. Disponibilità Flash Lite 1.1 Esempio L'esempio seguente assegna l'identificatore univoco alla variabile deviceID: status = fscommand2("GetDeviceID", "deviceID"); Comando fscommand2 GetFreePlayerMemory GetFreePlayerMemory Restituisce la quantità di memoria heap, espressa in KB, attualmente disponibile per Flash Lite. Comando Parametri Valore restituito GetFreePlayerMemory Nessuno -1: non supportato. 0 o valore positivo: kilobyte di memoria heap disponibili. Disponibilità Flash Lite 1.1 Esempio L'esempio seguente imposta lo stato in modo che sia uguale alla quantità di memoria libera: status = fscommand2("GetFreePlayerMemory"); Comando fscommand2 GetMaxBatteryLevel GetMaxBatteryLevel Restituisce il livello massimo della batteria del dispositivo. Si tratta di un valore numerico maggiore di 0. Nota: questo comando non è supportato dai dispositivi BREW. Comando Parametri Valore restituito GetMaxBatteryLevel Nessuno -1: non supportato. Altri valori: il livello massimo della batteria. Disponibilità Flash Lite 1.1 Esempio L'esempio seguente imposta la variabile maxBatt sul livello massimo della batteria: GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 169 Ultimo aggiornamento 4/5/2010 Elementi del linguaggio ActionScript maxBatt = fscommand2("GetMaxBatteryLevel"); Comando fscommand2 GetMaxSignalLevel GetMaxSignalLevel Restituisce il livello di potenza massimo del segnale, sotto forma di valore numerico. Nota: questo comando non è supportato dai dispositivi BREW. Comando Parametri Valore restituito GetMaxSignalLevel Nessuno -1: non supportato. Altri valori numerici: il livello massimo del segnale. Disponibilità Flash Lite 1.1 Esempio L'esempio seguente assegna la potenza massima del segnale alla variabile sigStrengthMax: sigStrengthMax = fscommand2("GetMaxSignalLevel"); Comando fscommand2 GetMaxVolumeLevel GetMaxVolumeLevel Restituisce il livello massimo del volume del dispositivo, sotto forma di valore numerico. Comando Parametri GetMaxVolumeLevel Nessuno Valore restituito -1: non supportato. Altri valori: il livello massimo del volume. Disponibilità Flash Lite 1.1 Esempio L'esempio seguente imposta la variabile maxvolume sul livello di volume massimo del dispositivo: maxvolume = fscommand2("GetMaxVolumeLevel"); trace (maxvolume); // output: 80 Comando fscommand2 GetNetworkConnectionName GetNetworkConnectionName Restituisce il nome della connessione di rete attiva o predefinita. Nel caso dei dispositivi mobili, questa connessione è anche nota come punto di accesso. Nota: questo comando non è supportato dai dispositivi BREW. GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 170 Ultimo aggiornamento 4/5/2010 Elementi del linguaggio ActionScript Comando Parametri Valore restituito GetNetworkConnectionName Nessuno -1: non supportato. 0: esito positivo: restituisce il nome della connessione di rete attiva. 1: esito positivo: restituisce il nome della connessione di rete predefinita. 2: impossibile recuperare il nome della connessione. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente restituisce il nome della connessione di rete attiva o predefinita nell'argomento myConnectionName: status = FSCommand2("GetNetworkConnectionName", "myConnectionName"); Comando fscommand2 GetNetworkConnectStatus GetNetworkConnectStatus Restituisce un valore che indica lo stato di connessione corrente alla rete. Nota: questo comando non è supportato dai dispositivi BREW. Comando Parametri Valore restituito GetNetworkConnectStatus Nessuno -1: non supportato. 0: è attualmente presente una connessione di rete attiva. 1: il dispositivo sta tentando di connettersi alla rete. 2: non è attualmente presente alcuna connessione di rete attiva. 3: la connessione di rete è sospesa. 4: non è possibile determinare la connessione di rete. Disponibilità Flash Lite 1.1 Esempio L'esempio seguente assegna lo stato della connessione di rete alla variabile connectstatus, quindi utilizza un'istruzione switch per aggiornare un campo di testo con lo stato della connessione: GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 171 Ultimo aggiornamento 4/5/2010 Elementi del linguaggio ActionScript connectstatus = FSCommand2("GetNetworkConnectStatus"); switch (connectstatus) { case -1 : _root.myText += "connectstatus not supported" + "\n"; break; case 0 : _root.myText += "connectstatus shows active connection" + "\n"; break; case 1 : _root.myText += "connectstatus shows attempting connection" + "\n"; break; case 2 : _root.myText += "connectstatus shows no connection" + "\n"; break; case 3 : _root.myText += "connectstatus shows suspended connection" + "\n"; break; case 4 : _root.myText += "connectstatus shows indeterminable state" + "\n"; break; } Comando fscommand2 GetNetworkGeneration GetNetworkGeneration Restituisce la generazione della rete wireless mobile corrente (ad esempio, 2G, seconda generazione). Comando Parametri Valore restituito GetNetworkGeneration Nessuno -1: non supportato 0: generazione di rete wireless mobile sconosciuta 1: 2G 2: 2.5G 3: 3G Disponibilità Flash Lite 2.0 Esempio L'esempio seguente mostra la sintassi necessaria per restituire la generazione della rete: status = fscommand2("GetNetworkGeneration"); Comando fscommand2 GetNetworkName GetNetworkName Imposta un parametro sul nome della rete corrente. Nota: questo comando non è supportato dai dispositivi BREW. GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 172 Ultimo aggiornamento 4/5/2010 Elementi del linguaggio ActionScript Comando Parametri Valore restituito GetNetworkName networkName Una stringa che rappresenta il -1: non supportato. nome di rete. Può trattarsi del nome di una variabile o di un valore di stringa che contiene 0: non è registrata alcuna rete. il nome di una variabile. 1: la rete è registrata, ma il nome di rete non è conosciuto. Se la rete è registrata ed è possibile determinarne il nome, networkname viene 2: la rete è registrata e il nome di rete impostato sul nome della rete; in caso è conosciuto. contrario, viene impostato sulla stringa vuota. Disponibilità Flash Lite 1.1 Esempio L'esempio seguente assegna il nome della rete corrente al parametro myNetName e un valore di status alla variabile netNameStatus: netNameStatus = fscommand2("GetNetworkName", "myNetName"); Comando fscommand2 GetNetworkRequestStatus GetNetworkRequestStatus Restituisce un valore che indica lo stato della richiesta HTTP più recente. Nota: questo comando non è supportato dai dispositivi BREW. Comando Parametri Valore restituito GetNetworkRequestStatus Nessuno -1: il comando non è supportato. 0: è presente una richiesta in sospeso ("pending"), è stata stabilita una connessione di rete, è stato risolto il nome host del server ed è stata effettuata una connessione al server. 1: è presente una richiesta in sospeso ("pending") e si sta creando una connessione di rete. 2: è presente una richiesta in sospeso ("pending") ma non è ancora stata stabilita una connessione di rete. 3: è presente una richiesta in sospeso ("pending"), è stata stabilita una connessione di rete e si sta risolvendo il nome host del server. 4: la richiesta non è riuscita a causa di un errore di rete. 5: la richiesta non è riuscita a causa di un errore nella connessione al server. 6: il server ha restituito un errore HTTP (ad esempio, 404). 7: la richiesta non è riuscita a causa di un errore nell'accesso al server DNS o nella risoluzione del nome del server. 8: la richiesta è stata completata correttamente. 9: la richiesta non è riuscita a causa di un timeout. 10: la richiesta non è ancora stata effettuata. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 173 Elementi del linguaggio ActionScript Disponibilità Flash Lite 1.1 Esempio L'esempio seguente assegna lo stato della richiesta HTTP più recente alla variabile requeststatus, quindi utilizza un'istruzione switch per aggiornare un campo di testo con lo stato: requeststatus = fscommand2("GetNetworkRequestStatus"); switch (requeststatus) { case -1: _root.myText += "requeststatus not supported" + "\n"; break; case 0: _root.myText += "connection to server has been made" + "\n"; break; case 1: _root.myText += "connection is being established" + "\n"; break; case 2: _root.myText += "pending request, contacting network" + "\n"; break; case 3: _root.myText += "pending request, resolving domain" + "\n"; break; case 4: _root.myText += "failed, network error" + "\n"; break; case 5: _root.myText += "failed, couldn't reach server" + "\n"; break; case 6: _root.myText += "HTTP error" + "\n"; break; case 7: _root.myText += "DNS failure" + "\n"; break; case 8: _root.myText += "request has been fulfilled" + "\n"; break; case 9: _root.myText += "request timedout" + "\n"; break; case 10: _root.myText += "no HTTP request has been made" + "\n"; break; } Comando fscommand2 GetNetworkStatus GetNetworkStatus Restituisce un valore che indica lo stato di rete per il telefono (ovvero se è registrata una rete e se il telefono è attualmente in roaming). GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 174 Ultimo aggiornamento 4/5/2010 Elementi del linguaggio ActionScript Comando Parametri Valore restituito GetNetworkStatus Nessuno -1: il comando non è supportato. 0: non è registrata alcuna rete. 1: sulla rete domestica. 2: sulla rete domestica estesa. 3: roaming in corso (lontano dalla rete domestica). Disponibilità Flash Lite 1.1 Esempio L'esempio seguente assegna lo stato della connessione di rete alla variabile networkstatus, quindi utilizza un'istruzione switch per aggiornare un campo di testo con lo stato: networkstatus = fscommand2("GetNetworkStatus"); switch(networkstatus) { case -1: _root.myText += "network status not supported" + "\n"; break; case 0: _root.myText += "no network registered" + "\n"; break; case 1: _root.myText += "on home network" + "\n"; break; case 2: _root.myText += "on extended home network" + "\n"; break; case 3: _root.myText += "roaming" + "\n"; break; } Comando fscommand2 GetPlatform GetPlatform Imposta un parametro che identifica la piattaforma corrente, che descrive in generale la classe del dispositivo. Per i dispositivi con sistemi operativi aperti, l'identificatore di solito indica il nome e la versione del sistema operativo. Comando Parametri Valore restituito GetPlatform platform Stringa che riceve l'identificatore -1: non supportato. della piattaforma. 0: supportato. Disponibilità Flash Lite 1.1 Esempio L'esempio seguente imposta il parametro platform sull'identificatore della piattaforma corrente: GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 175 Ultimo aggiornamento 4/5/2010 Elementi del linguaggio ActionScript status = fscommand2("GetPlatform", "platform"); Gli esempi seguenti mostrano alcuni risultati di platform: 506iUn telefono 506i. FOMA1Un telefono FOMA1. Symbian6.1_s60.1Un telefono Symbian 6.1, serie 60 versione 1. Symbian7.0Un telefono Symbian 7.0. Comando fscommand2 GetPowerSource GetPowerSource Restituisce un valore che indica se l'alimentazione è attualmente fornita da una batteria o da una fonte di alimentazione esterna. Nota: questo comando non è supportato dai dispositivi BREW. Comando Parametri Valore restituito GetPowerSource Nessuno -1: non supportato. 0: il dispositivo funziona a batteria. 1: il dispositivo funziona ad alimentazione esterna. Disponibilità Flash Lite 1.1 Esempio L'esempio seguente imposta la variabile myPower per indicare la fonte di alimentazione oppure su -1 se non è stato possibile completare l'operazione: myPower = fscommand2("GetPowerSource"); Comando fscommand2 GetSignalLevel GetSignalLevel Restituisce la potenza corrente del segnale, sotto forma di valore numerico. Nota: questo comando non è supportato dai dispositivi BREW. Comando Parametri Valore restituito GetSignalLevel Nessuno -1: non supportato. Altri valori numerici: il valore corrente del segnale, compreso tra 0 e il valore massimo restituito da GetMaxSignalLevel. Disponibilità Flash Lite 1.1 Esempio L'esempio seguente assegna il valore massimo del segnale alla variabile sigLevel: sigLevel = fscommand2("GetSignalLevel"); GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 176 Ultimo aggiornamento 4/5/2010 Elementi del linguaggio ActionScript Comando fscommand2 GetSoftKeyLocation GetSoftKeyLocation Restituisce un valore che indica la posizione dei tasti virtuali sul dispositivo. Comando Parametri Valore restituito GetSoftKeyLocation Nessuno -1: non supportato. 0: tasti virtuali in alto. 1: tasti virtuali a sinistra. 2: tasti virtuali in basso. 3: tasti virtuali a destra. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente imposta la variabile status in modo che indichi la posizione dei tasti virtuali, oppure su -1 se i tasti virtuali non sono supportati dal dispositivo: status = fscommand2("GetSoftKeyLocation"); Comando fscommand2 GetTotalPlayerMemory GetTotalPlayerMemory Restituisce la quantità totale di memoria heap, espressa in kilobyte, disponibile per Flash Lite. Comando Parametri Valore restituito GetTotalPlayerMemory Nessuno -1: non supportato. 0 o valore positivo: kilobyte di memoria heap totale. Disponibilità Flash Lite 1.1 Esempio L'esempio seguente imposta la variabile status sulla quantità totale di memoria heap: status = fscommand2("GetTotalPlayerMemory"); Comando fscommand2 GetVolumeLevel GetVolumeLevel Restituisce il livello corrente del volume del dispositivo, sotto forma di valore numerico. GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 177 Ultimo aggiornamento 4/5/2010 Elementi del linguaggio ActionScript Comando Parametri Valore restituito GetVolumeLevel Nessuno -1: non supportato. Altri valori numerici: il livello corrente del volume, compreso tra 0 e il valore restituito da fscommand2("GetMaxVolumeLevel"). Disponibilità Flash Lite 1.1 Esempio L'esempio seguente assegna il valore corrente del volume alla variabile volume: volume = fscommand2("GetVolumeLevel"); trace (volume); // output: 50 Comando fscommand2 Quit Quit Indica a Flash Lite Player di interrompere la riproduzione e uscire. Questo comando è supportato solo quando Flash Lite è in esecuzione in modalità autonoma, e non quando è in esecuzione nel contesto di un'altra applicazione (ad esempio, come plug-in di un browser). Comando Parametri Valore restituito Quit Nessuno -1: non supportato. Disponibilità Flash Lite 1.1 Esempio L'esempio seguente indica a Flash Lite di interrompere la riproduzione e uscire, se è in esecuzione in modalità autonoma: status = fscommand2("Quit"); Comando fscommand2 ResetSoftKeys ResetSoftKeys Ripristina le impostazioni originali dei tasti virtuali. Questo comando è supportato solo quando Flash Lite è in esecuzione in modalità autonoma, e non quando è in esecuzione nel contesto di un'altra applicazione (ad esempio, come plug-in di un browser). Comando Parametri Valore restituito ResetSoftKeys Nessuno -1: non supportato. Disponibilità Flash Lite 1.1 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 178 Elementi del linguaggio ActionScript Esempio L'istruzione seguente ripristina le impostazioni originali dei tasti virtuali: status = fscommand2("ResetSoftKeys"); Comando fscommand2 SetFocusRectColor SetFocusRectColor Imposta il colore del rettangolo di attivazione su qualsiasi colore. La gamma dei valori accettabili per rosso, verde e blu va da 0 a 255. In Flash non è possibile modificare il colore predefinito del rettangolo di attivazione, che è giallo. Comando Parametri Valore restituito SetFocusRectColor Nessuno -1: non supportato. 0: non determinabile. 1: esito positivo. Disponibilità Flash Lite 2.0 Esempio L'istruzione seguente reimposta il colore del rettangolo di attivazione: status = fscommand2("SetFocusRectColor, <red>, <green>, <blue>); Comando fscommand2 SetInputTextType SetInputTextType Specifica la modalità di apertura dei campi di testo di input. Flash Lite supporta la funzione di testo di input chiedendo all'applicazione host di avviare l'interfaccia generica di immissione del testo specifica per il dispositivo, spesso definita elaboratore front-end o FEP (Front-end Processor). Quando il comando SetInputTextType non viene utilizzato, il FEP viene aperto in modalità predefinita. Comando Parametri SetInputTextType variableName Il nome del campo di testo di input. Può Valore restituito 0: esito negativo. trattarsi del nome di una variabile o di un valore di stringa che 1: esito positivo. contiene il nome di una variabile. Nota: il nome di variabile di un campo di testo non è uguale al suo nome di istanza. È possibile specificare il nome di variabile di un campo di testo nella casella di testo Var della finestra di ispezione Proprietà oppure mediante ActionScript. Ad esempio, il codice seguente limita l'immissione ai soli caratteri numerici per l'istanza del campo di testo (numTxt) il cui nome di variabile associato è "numTxt_var". var numTxt:TextField;numTxt.variable = "numTxt_var";fscommand2("SetInputTextType", "numTxt_var", "Numeric"); type Uno dei seguenti valori Numeric, Alpha, Alphanumeric, Latin, NonLatin o NoRestriction. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 179 Elementi del linguaggio ActionScript La tabella seguente mostra l'effetto di ogni modalità e le modalità che vengono sostituite: Modalità InputTextType Imposta il FEP su una di queste modalità a esclusione reciproca Se non è supportata sul dispositivo corrente, apre il FEP in questa modalità Numeric Solo numeri (da 0 a 9) Alphanumeric Alpha Solo caratteri alfanumerici (da A a Z, da Alphanumeric a a z) Alphanumeric Solo caratteri alfanumerici (da 0 a 9, da Latin A a Z, da a a z) Latin Solo caratteri latini (caratteri alfanumerici e punteggiatura) NoRestriction NonLatin Solo caratteri non latini (ad esempio, Kanji e Kana) NoRestriction NoRestriction Modalità predefinita (non imposta limitazioni per il FEP) N/D NOTA: Non tutti i telefoni cellulari supportano questi tipi di campi di testo di input. Per tale motivo, è necessario convalidare i dati di testo di input. Disponibilità Flash Lite 1.1 Esempio La riga di codice seguente imposta il tipo di testo di input del campo associato alla variabile input1 in moda che riceva i dati numerici: status = fscommand2("SetInputTextType", "input1", "Numeric"); Comando fscommand2 SetSoftKeys SetSoftKeys Mappa nuovamente i tasti virtuali di un dispositivo mobile. Quando l'utente preme un tasto virtuale, viene eseguito il codice ActionScript eventualmente associato all'evento del tasto virtuale. Il lettore Flash Lite esegue questa funzione non appena viene chiamata. Questo comando è supportato solo quando Flash Lite è in esecuzione in modalità autonoma, e non quando è in esecuzione nel contesto di un'altra applicazione (ad esempio, come plug-in di un browser). Per garantire la compatibilità con Flash Lite 1.1, il tasto virtuale SOFT1 viene sempre mappato al tasto sinistro del microtelefono, mentre il tasto virtuale SOFT2 viene sempre mappato al tasto destro. Le posizioni del tasto virtuale SOFT3 e dei tasti superiori dipendono dai singoli microtelefoni. Gli argomenti di questo comando specificano il testo da visualizzare per i tasti virtuali corrispondenti. Una volta eseguito il comando SetSoftKeys, se si preme il tasto sinistro viene generato un evento di pressione tasto SOFT1, mentre se si preme il tasto destro viene generato un evento SOFT2. Se si premono i tasti virtuali da SOFT3 a SOFT12, vengono generati i rispettivi eventi. Nota: la rimappatura dei tasti virtuali dipende dal dispositivo mobile. Verificare con il produttore del dispositivo se la funzionalità di modifica dei tasti virtuali è supportata. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 180 Elementi del linguaggio ActionScript Comando Parametri Valore restituito SetSoftKeys soft1 Testo da visualizzare per il tasto virtuale SOFT1. soft2 Testo da visualizzare per il tasto virtuale SOFT2. -1: non supportato. 0: supportato. Questi parametri sono costituiti da nomi di variabili o valori costanti di stringa (ad esempio, "Previous"). Disponibilità Flash Lite 1.1 Esempio Nell'esempio seguente il tasto virtuale SOFT1 viene contrassegnato come "Previous" e il tasto virtuale SOFT2 come "Next". status = fscommand2("SetSoftKeys", "Previous", "Next"); È possibile definire le variabili o utilizzare valori di stringa costanti per ogni tasto virtuale: status = fscommand2("SetSoftKeys", soft1, soft2, [soft3], [soft4], ..., [softn]) Nota: è possibile impostare un tasto virtuale senza impostare gli altri. Questi esempi mostrano la sintassi e il comportamento relativi all'impostazione di un tasto virtuale specifico che non influisca sugli altri tasti: • Per impostare l'etichetta del tasto virtuale sinistro su "soft1" e il tasto virtuale destro su vuoto: status = fscommand2("SetSoftKeys", "soft1", "") • Per lasciare invariata l'etichetta del tasto virtuale sinistro e impostare il tasto virtuale destro su "soft2": status = fscommand2("SetSoftKeys", undefined, "soft2") • Per lasciare invariata l'etichetta del tasto virtuale sinistro e impostare il tasto virtuale destro su "soft2": status = fscommand2("SetSoftKeys", null, "soft2") • Per impostare l'etichetta del tasto virtuale sinistro su "soft1" e lasciare invariato il tasto virtuale destro: status = fscommand2("SetSoftKeys", "soft1") Comando fscommand2 StartVibrate StartVibrate Attiva la vibrazione del telefono. Se la vibrazione è già in corso, Flash Lite la interrompe prima di avviarne una nuova. Le vibrazioni si fermano anche quando la riproduzione dell'applicazione Flash viene interrotta o messa in pausa, o quando si esce dal lettore di Flash Lite. Comando Parametri Valore restituito StartVibrate time_on Quantità di tempo, espressa in millisecondi (fino a un massimo di 5 secondi), per cui la vibrazione è attiva. -1: non supportato. time_off Quantità di tempo, espressa in 1: si è verificato un errore e non è millisecondi (fino a un massimo di 5 secondi), per cui la vibrazione è disattivata. repeat Numero di volte (massimo 3) per cui la vibrazione viene ripetuta. 0: la vibrazione è stata avviata. stato possibile avviare la vibrazione. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 181 Elementi del linguaggio ActionScript Disponibilità Flash Lite 1.1 Esempio L'esempio seguente tenta di avviare una sequenza di vibrazioni composta da 2,5 secondi di attività e 1 secondo di inattività e ripetuta due volte. Assegna un valore alla variabile status, che indica l'esito positivo o negativo: fscommand2("StartVibrate", 2500, 1000, 2); Comando fscommand2 StopVibrate StopVibrate Interrompe la vibrazione del telefono, se è attualmente in funzione. Comando Parametri Valore restituito StopVibrate Nessuno -1: non supportato. 0: la vibrazione si è interrotta. Disponibilità Flash Lite 1.1 Esempio L'esempio seguente chiama StopVibrate e salva il risultato (non supportato o vibrazione interrotta) nella variabile status: status = fscommand2("StopVibrate"); 182 Ultimo aggiornamento 4/5/2010 Capitolo 2: Classi ActionScript La documentazione per le classi di ActionScript include sintassi, informazioni d'uso ed esempi di codice per metodi, proprietà ed eventi appartenenti a classi specifiche. Le classi sono elencate in ordine alfabetico. Se non siete sicuri di conoscere la classe a cui appartiene un metodo, proprietà o evento, consultate l'Indice analitico. arguments Object | +-arguments public class arguments extends Object Un oggetto arguments viene utilizzato per memorizzare gli argomenti di una funzione ed accedervi. All'interno del corpo di una funzione vi si può accedere con la variabile arguments locale. Gli argomenti vengono memorizzati come elementi di array. Al primo si accede come arguments[0], al secondo come arguments[1], ecc. La proprietà arguments.length indica il numero di argomenti passati alla funzione. Si noti che può esservi una discrepanza fra il numero di argomenti passati e quanto dichiarato dalla funzione. Disponibilità Flash Lite 2.0 Vedete anche Function Riepilogo delle proprietà Modificatori Proprietà Descrizione callee:Object Un riferimento alla funzione in corso di esecuzione. caller:Object Un riferimento alla funzione che ha chiamato la funzione in corso di esecuzione, o null se non è stata chiamata da un'altra funzione. length:Number Numero di argomenti passati alla funzione. Proprietà ereditate dalla classe Object constructor (proprietà Object.constructor), __proto__ (proprietà Object._proto)prototype (proprietà Object.prototype), __resolve (proprietà Object.__resolve) Riepilogo dei metodi Metodi ereditati dalla classe Object Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 183 Classi ActionScript addProperty (metodo Object.addProperty), hasOwnProperty (metodo Object.hasOwnProperty)isPropertyEnumerable (metodo Object.isPropertyEnumerable)isPrototypeOf (metodo Object.isPrototypeOf)registerClass (metodo Object.registerClass), toString (metodo Object.toString)unwatch (metodo Object.unwatch), valueOf (metodo Object.valueOf)watch (metodo Object.watch) callee (proprietà arguments.callee) public callee : Object Un riferimento alla funzione in corso di esecuzione. Disponibilità Flash Lite 2.0 Vedete anche caller (proprietà arguments.caller) caller (proprietà arguments.caller) public caller : Object Un riferimento alla funzione che ha chiamato la funzione in corso di esecuzione, o null se non è stata chiamata da un'altra funzione. Disponibilità Flash Lite 2.0 Vedete anche callee (proprietà arguments.callee) length (proprietà arguments.length) public length : Number Numero di argomenti passati alla funzione. Può essere inferiore o superiore rispetto a quanto dichiarato dalla funzione. Disponibilità Flash Lite 2.0 Array Object | +-Array public dynamic class Array extends Object Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 184 Classi ActionScript La classe Array consente di accedere agli array indicizzati e di manipolarli. Un array indicizzato è un oggetto le cui proprietà sono identificate da un numero che ne rappresenta la posizione nell'array stesso. Questo numero viene definito indice. Tutti gli array indicizzati sono a base zero, ovvero [0] è il primo elemento dell'array, [1] è il secondo, e così via. Per creare un oggetto Array, utilizzare la funzione di costruzione new Array(). Per accedere agli elementi di un array, utilizzare l'operatore array access ([]). È possibile memorizzare una vasta gamma di tipi di dati in un elemento di array, tra cui numeri, stringhe, oggetti e persino altri array. È possibile creare un array multidimensionale creando un array indicizzato e assegnando un array indicizzato diverso a ognuno dei suoi elementi. Un array di questo tipo è considerato multidimensionale poiché può essere utilizzato per rappresentare i dati in una tabella. L'assegnazione all'array avviene in base al riferimento anziché al valore: quando si assegna una variabile di array a un'altra variabile di array, entrambe fanno riferimento allo stesso array: var oneArray:Array = new Array("a", "b", "c"); var twoArray:Array = oneArray; // Both array variables refer to the same array. twoArray[0] = "z"; trace(oneArray); // Output: z,b,c. La classe Array non deve essere utilizzata per creare gli array associativi, che sono strutture di dati diverse che contengono elementi con nome anziché elementi numerati. È necessario utilizzare la classe Object per creare gli array associativi (chiamati anche hash). Benché ActionScript consenta di creare gli array associativi mediante la classe Array, non è possibile utilizzare nessuno dei metodi o delle proprietà della classe Array. Un array associativo è un'istanza della classe Object e ciascuna coppia chiave-valore è rappresentata da una proprietà e dal relativo valore. Un altro motivo per dichiarare un array associativo come tipo Object consiste nel fatto che è possibile utilizzare un valore letterale di Object per compilare un array associativo (ma solo nel momento in cui viene dichiarato). L'esempio seguente crea un array associativo mediante un valore letterale di oggetto, accede agli elementi sia mediante l'operatore dot sia mediante l'operatore di accesso agli array, quindi aggiunge una nuova coppia chiave-valore mediante la creazione di una nuova proprietà: var myAssocArray:Object = {fname:"John", lname:"Public"}; trace(myAssocArray.fname); // Output: John trace(myAssocArray["lname"]); // Output: Public myAssocArray.initial = "Q"; trace(myAssocArray.initial); // Output: Q Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente, my_array contiene quattro mesi dell'anno: var my_array:Array = new Array(); my_array[0] = "January"; my_array[1] = "February"; my_array[2] = "March"; my_array[3] = "April"; GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 185 Ultimo aggiornamento 4/5/2010 Classi ActionScript Riepilogo delle proprietà Modificatori Proprietà Descrizione static CASEINSENSITIVE:Numbe r Rappresenta l'ordinamento senza distinzione tra maiuscole e minuscole. static DESCENDING:Number Rappresenta l'ordinamento decrescente. length:Number Un numero intero non negativo che specifica il numero di elementi nell'array. static NUMERIC:Number Rappresenta l'ordinamento numerico anziché quello basato sulle stringhe. static RETURNINDEXEDARRAY: Number Rappresenta l'opzione che restituisce un array indicizzato come risultato della chiamata al metodo sort() o sortOn(). static UNIQUESORT:Number Rappresenta il requisito dell'ordinamento univoco. Proprietà ereditate dalla classe Object constructor (proprietà Object.constructor), __proto__ (proprietà Object._proto)prototype (proprietà Object.prototype), __resolve (proprietà Object.__resolve) Riepilogo delle funzioni di costruzione Firma Descrizione Array([value:Object]) Consente di creare un array. Riepilogo dei metodi Modificatori Firma Descrizione concat([value:Object] ) : Array Concatena gli elementi specificati nei parametri con gli elementi in un array e crea un nuovo array. join([delimiter:String ]) : String Converte in stringhe gli elementi di un array, inserisce il separatore specificato tra gli elementi, li concatena e restituisce la stringa risultante. pop() : Object Rimuove l'ultimo elemento di un array e ne restituisce il valore. push(value:Object) : Number Aggiunge uno o più elementi alla fine di un array e restituisce la nuova lunghezza dell'array. reverse() : Void Inverte l'array in posizione. shift() : Object Rimuove il primo elemento di un array e lo restituisce. slice([startIndex:Nu mber], [endIndex:Number]) : Array Restituisce un nuovo array composto da un intervallo di elementi dell'array originale, senza modificare quest'ultimo. sort([compareFunctio n:Object], [options:Number]) : Array Ordina gli elementi di un array. GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 186 Ultimo aggiornamento 4/5/2010 Classi ActionScript Modificatori Firma Descrizione sortOn(fieldName:Obje Ordina gli elementi di un array in base a uno o più campi ct, [options:Object]) dell'array. : Array splice(startIndex:Nu mber, [deleteCount:Number ], [value:Object]) : Array Aggiunge e rimuove gli elementi di un array. toString() : String Restituisce un valore di tipo stringa che rappresenta gli elementi dell'oggetto Array specificato. unshift(value:Object) : Number Aggiunge uno o più elementi all'inizio di un array e restituisce la nuova lunghezza dell'array. Metodi ereditati dalla classe Object addProperty (metodo Object.addProperty), hasOwnProperty (metodo Object.hasOwnProperty)isPropertyEnumerable (metodo Object.isPropertyEnumerable)isPrototypeOf (metodo Object.isPrototypeOf)registerClass (metodo Object.registerClass), toString (metodo Object.toString)unwatch (metodo Object.unwatch), valueOf (metodo Object.valueOf)watch (metodo Object.watch) Array (funzione di costruzione) public Array([value:Object]) Consente di creare un array. È possibile utilizzare la funzione di costruzione per creare diversi tipi di array: un array vuoto, un array con una lunghezza specifica ma i cui elementi hanno valori non definiti oppure un array i cui elementi hanno valori specifici. Uso 1: se non si specifica alcun parametro, viene creato con una lunghezza pari a 0. Uso 2: se si specifica solo una lunghezza, viene creato un array con un numero di elementi pari alla lunghezza specificata (length). Il valore di ogni elemento viene impostato su undefined. Uso 3: se si utilizzano i parametri element per specificare i valori, viene creato un array con dei valori specifici. Disponibilità Flash Lite 2.0 Parametri value:Object [opzionale] - Può essere: • Un numero intero che specifica il numero di elementi nell'array. • Un elenco di due o più valori arbitrari. I valori possono essere di tipo booleano, numerico, stringa, oggetto o array. Il primo elemento di un array ha sempre l'indice o la posizione 0. Nota: se alla funzione di costruzione Array viene passato un solo parametro numerico, questo viene considerato come parametro length e convertito in intero mediante la funzione Integer(). Esempio Uso 1: l'esempio seguente crea un nuovo oggetto Array con una lunghezza iniziale pari a 0: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 187 Classi ActionScript var my_array:Array = new Array(); trace(my_array.length); // Traces 0. Uso 2: l'esempio seguente crea un nuovo oggetto Array con una lunghezza iniziale pari a 4: var my_array:Array = new Array(4); trace(my_array.length); // Returns 4. trace(my_array[0]); // Returns undefined. if (my_array[0] == undefined) { // No quotation marks around undefined. trace("undefined is a special value, not a string"); } // Traces: undefined is a special value, not a string. Uso 3: l'esempio seguente crea il nuovo oggetto Array di nome go_gos_array con una lunghezza iniziale pari a 5: var go_gos_array:Array = new Array("Belinda", "Gina", "Kathy", "Charlotte", "Jane"); trace(go_gos_array.length); // Returns 5. trace(go_gos_array.join(", ")); // Displays elements. Gli elementi iniziali dell'array go_gos_array vengono identificati, come mostrato nell'esempio seguente: go_gos_array[0] go_gos_array[1] go_gos_array[2] go_gos_array[3] go_gos_array[4] = = = = = "Belinda"; "Gina"; "Kathy"; "Charlotte"; "Jane"; Il codice seguente aggiunge un sesto elemento all'array go_gos_array e modifica il secondo: go_gos_array[5] = "Donna"; go_gos_array[1] = "Nina" trace(go_gos_array.join(" + ")); // Returns Belinda + Nina + Kathy + Charlotte + Jane + Donna. Vedete anche Operatore [] (accesso array), length (proprietà Array.length) CASEINSENSITIVE (proprietà Array.CASEINSENSITIVE) public static CASEINSENSITIVE : Number Rappresenta l'ordinamento senza distinzione tra maiuscole e minuscole. Questa costante può essere utilizzata per il parametro options nel metodo sort() o sortOn(). Il valore di questa costante è 1. Disponibilità Flash Lite 2.0 Vedete anche sort (metodo Array.sort), sortOn (metodo Array.sortOn) concat (metodo Array.concat) public concat([value:Object]) : Array Concatena gli elementi specificati nei parametri con gli elementi in un array e crea un nuovo array. Se i parametri value specificano un array, anziché l'array vengono concatenati i suoi elementi. L'array my_array rimane invariato. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 188 Classi ActionScript Disponibilità Flash Lite 2.0 Parametri value:Object [opzionale] - I numeri, gli elementi o le stringhe che devono essere concatenate in un nuovo array. Se non si passa alcun valore, viene creato un duplicato di my_array. Restituisce Array - Un array che contiene gli elementi di questo array seguito dagli elementi dei parametri. Esempio Il codice seguente concatena due array: var alpha_array:Array = new Array("a","b","c"); var numeric_array:Array = new Array(1,2,3); var alphaNumeric_array:Array =alpha_array.concat(numeric_array); trace(alphaNumeric_array); // Creates array [a,b,c,1,2,3]. Il codice seguente concatena tre array: var num1_array:Array = [1,3,5]; var num2_array:Array = [2,4,6]; var num3_array:Array = [7,8,9]; var nums_array:Array=num1_array.concat(num2_array,num3_array) trace(nums_array); // Creates array [1,3,5,2,4,6,7,8,9]. Gli array nidificati non vengono appiattiti allo stesso modo degli array normali. Gli elementi di un array nidificato non vengono suddivisi in elementi separati nell'array x_array, come mostrato nell'esempio seguente: var a_array:Array = new Array ("a","b","c"); // 2 and 3 are elements in a nested array. var n_array:Array = new Array(1, [2, 3], 4); var x_array:Array = a_array.concat(n_array); trace(x_array[0]); // a trace(x_array[1]); // b trace(x_array[2]); // c trace(x_array[3]); // 1 trace(x_array[4]); // 2, 3 trace(x_array[5]); // 4 DESCENDING (proprietà Array.DESCENDING) public static DESCENDING : Number Rappresenta l'ordinamento discendente. Questa costante può essere utilizzata per il parametro options nel metodo sort() o sortOn(). Il valore di questa costante è 2. Disponibilità Flash Lite 2.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 189 Classi ActionScript Vedete anche sort (metodo Array.sort), sortOn (metodo Array.sortOn) join (metodo Array.join) public join([delimiter:String]) : String Converte in stringhe gli elementi di un array, inserisce il separatore specificato tra gli elementi, li concatena e restituisce la stringa risultante. Un array nidificato è sempre separato da un virgola (,) e non dal separatore passato dal metodo join(). Disponibilità Flash Lite 2.0 Parametri delimiter:String [opzionale] - Un carattere o una stringa che separa gli elementi dell'array nella stringa restituita. Se si omette questo parametro, viene utilizzata una virgola (,) come separatore predefinito. Restituisce String - Una stringa. Esempio L'esempio seguente crea un array con tre elementi: Earth, Moon e Sun. Quindi, unisce l'array tre volte: innanzi tutto mediante il separatore predefinito (una virgola [,] e uno spazio), quindi mediante un trattino (-) e infine mediante un segno più (+). var a_array:Array = new Array("Earth","Moon","Sun") trace(a_array.join()); // Displays Earth,Moon,Sun. trace(a_array.join(" - ")); // Displays Earth - Moon - Sun. trace(a_array.join(" + ")); // Displays Earth + Moon + Sun. L'esempio seguente crea un array nidificato che contiene due array. Il primo ha tre elementi: Europa, Io e Callisto. Il secondo ha due elementi: Titan e Rhea. L'array viene unito mediante un segno più (+), ma gli elementi all'interno di ciascun array nidificato rimangono separati da virgole (,). var a_nested_array:Array = new Array(["Europa", "Io", "Callisto"], ["Titan", "Rhea"]); trace(a_nested_array.join(" + ")); // Returns Europa,Io,Callisto + Titan,Rhea. Vedete anche split (metodo String.split) length (proprietà Array.length) public length : Number Un numero intero non negativo che specifica il numero di elementi nell'array. Questa proprietà viene aggiornata automaticamente quando vengono aggiunti dei nuovi elementi all'array. Quando si assegna un valore a un elemento di un array (ad esempio, my_array[index] = value), se index è un numero e index+1 è maggiore della proprietà length, tale proprietà length viene aggiornata a index+1. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 190 Classi ActionScript Nota: se alla proprietà length si assegna un valore più breve della lunghezza esistente, l'array viene troncato. Disponibilità Flash Lite 2.0 Esempio Il codice seguente mostra il modo in cui viene aggiornata la proprietà length. La lunghezza iniziale è pari a 0, e viene in seguito aggiornata a 1, 2 e 10. Se alla proprietà length si assegna un valore più breve della lunghezza esistente, l'array viene troncato: var my_array:Array = new Array(); trace(my_array.length); // initial length is 0 my_array[0] = "a"; trace(my_array.length); // my_array.length is updated to 1 my_array[1] = "b"; trace(my_array.length); // my_array.length is updated to 2 my_array[9] = "c"; trace(my_array.length); // my_array.length is updated to 10 trace(my_array); // displays: // a,b,undefined,undefined,undefined,undefined,undefined,undefined,undefined,c // if the length property is now set to 5, the array will be truncated my_array.length = 5; trace(my_array.length); // my_array.length is updated to 5 trace(my_array); // outputs: a,b,undefined,undefined,undefined NUMERIC (proprietà Array.NUMERIC) public static NUMERIC : Number Rappresenta l'ordinamento numerico anziché quello basato sulle stringhe. L'ordinamento basato sulle stringhe, che costituisce l'impostazione predefinita, considera i numeri come stringhe quando li ordina. Ad esempio, l'ordinamento basato sulle stringhe posiziona 10 prima di 3. L'ordinamento numerico considera gli elementi come se fossero numeri, pertanto 3 viene posizionato prima di 10. È possibile utilizzare questa costante per il parametro options nel metodo sort() o sortOn(). Il valore di questa costante è 16. Disponibilità Flash Lite 2.0 Vedete anche sort (metodo Array.sort), sortOn (metodo Array.sortOn) pop (metodo Array.pop) public pop() : Object Rimuove l'ultimo elemento di un array e ne restituisce il valore. Disponibilità Flash Lite 2.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 191 Classi ActionScript Restituisce Object - Il valore dell'ultimo elemento nell'array specificato. Esempio Il codice seguente crea l'array myPets_, che contiene quattro elementi, quindi rimuove l'ultimo elemento: var myPets_array:Array = new Array("cat", "dog", "bird", "fish"); var popped:Object = myPets_array.pop(); trace(popped); // Displays fish. trace(myPets_array); // Displays cat,dog,bird. Vedete anche push (metodo Array.push), shift (metodo Array.shift), unshift (metodo Array.unshift) push (metodo Array.push) public push(value:Object) : Number Aggiunge uno o più elementi alla fine di un array e restituisce la nuova lunghezza dell'array. Disponibilità Flash Lite 2.0 Parametri value:Object - Uno o più valori da aggiungere all'array. Restituisce Number - Un numero intero che rappresenta la lunghezza del nuovo array. Esempio L'esempio seguente crea l'array myPets_array con due elementi definiti, cioè cat e dog. La seconda riga aggiunge due elementi all'array. Dal momento che il metodo push() restituisce la nuova lunghezza dell'array, l'istruzione trace() nell'ultima riga invia la nuova lunghezza di myPets_array (4) al pannello Output. var myPets_array:Array = new Array("cat", "dog"); var pushed:Number = myPets_array.push("bird", "fish"); trace(pushed); // Displays 4. Vedete anche pop (metodo Array.pop), shift (metodo Array.shift), unshift (metodo Array.unshift) RETURNINDEXEDARRAY (proprietà Array.RETURNINDEXEDARRAY) public static RETURNINDEXEDARRAY : Number Rappresenta l'opzione che restituisce un array indicizzato come risultato della chiamata al metodo sort() o sortOn(). Questa costante può essere utilizzata per il parametro options nel metodo sort() o sortOn(). In questo modo viene fornita la funzione di anteprima o di copia per un array che rappresenta i risultati dell'ordinamento e lascia intatto l'array originale. Il valore di questa costante è 8. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 192 Classi ActionScript Disponibilità Flash Lite 2.0 Vedete anche sort (metodo Array.sort), sortOn (metodo Array.sortOn) reverse (metodo Array.reverse) public reverse() : Void Inverte l'array in posizione. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente utilizza questo metodo per invertire l'array numbers_array: var numbers_array:Array = new Array(1, 2, 3, 4, 5, 6); trace(numbers_array); // Displays 1,2,3,4,5,6. numbers_array.reverse(); trace(numbers_array); // Displays 6,5,4,3,2,1. shift (metodo Array.shift) public shift() : Object Rimuove il primo elemento di un array e lo restituisce. Disponibilità Flash Lite 2.0 Restituisce Object - Il primo elemento dell'array. Esempio Il codice seguente crea l'array myPets_array, quindi rimuove il primo elemento dall'array e lo assegna alla variabile shift: var myPets_array:Array = new Array("cat", "dog", "bird", "fish"); var shifted:Object = myPets_array.shift(); trace(shifted); // Displays "cat". trace(myPets_array); // Displays dog,bird,fish. Vedete anche pop (metodo Array.pop), push (metodo Array.push), unshift (metodo Array.unshift) slice (metodo Array.slice) public slice([startIndex:Number], [endIndex:Number]) : Array Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 193 Classi ActionScript Restituisce un nuovo array composto da un intervallo di elementi dell'array originale, senza modificare quest'ultimo. L'array restituito comprende l'elemento startIndex e tutti gli elementi fino a endIndex escluso. Se non si passa alcun parametro, viene creato un duplicato dell'array originale. Disponibilità Flash Lite 2.0 Parametri startIndex:Number [opzionale] - Un numero che specifica l'indice del punto iniziale della porzione. Se start è un numero negativo, il punto iniziale comincia alla fine dell'array, dove -1 è l'ultimo elemento. endIndex:Number [opzionale] - Un numero che specifica l'indice del punto finale della porzione. Se si omette questo parametro, la porzione include tutti gli elementi compresi tra il punto iniziale e la fine dell'array. Se end è un numero negativo, il punto finale viene specificato dalla fine dell'array, dove -1 è l'ultimo elemento. Restituisce Array - Un array composto da un intervallo di elementi dell'array originale. Esempio L'esempio seguente crea un array di cinque animali domestici e utilizza slice() per compilare un nuovo array che contiene solo gli animali a quattro zampe: var myPets_array:Array = new Array("cat", "dog", "fish", "canary", "parrot"); var myFourLeggedPets_array:Array = new Array(); var myFourLeggedPets_array = myPets_array.slice(0, 2); trace(myFourLeggedPets_array); // Returns cat,dog. trace(myPets_array); // Returns cat,dog,fish,canary,parrot. L'esempio seguente crea un array di cinque animali domestici, quindi utilizza slice() con un parametro start negativo per copiare gli ultimi due elementi dell'array: var myPets_array:Array = new Array("cat", "dog", "fish", "canary", "parrot"); var myFlyingPets_array:Array = myPets_array.slice(-2); trace(myFlyingPets_array); // Traces canary,parrot. L'esempio seguente crea un array di cinque animali domestici, quindi utilizza slice() con un parametro end negativo per copiare l'elemento centrale dell'array: var myPets_array:Array = new Array("cat", "dog", "fish", "canary", "parrot"); var myAquaticPets_array:Array = myPets_array.slice(2,-2); trace(myAquaticPets_array); // Returns fish. sort (metodo Array.sort) public sort([compareFunction:Object], [options:Number]) : Array Ordina gli elementi di un array. L'ordinamento viene effettuato in base ai valori Unicode. (ASCII è un sottoinsieme del linguaggio Unicode). Per impostazione predefinita, Array.sort() funziona nel modo descritto nell'elenco seguente: • L'ordinamento fa distinzione tra maiuscole e minuscole (quindi, ad esempio Z precede a). • L'ordinamento è ascendente (quindi, ad esempio a precede b). Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 194 Classi ActionScript • L'array viene modificato in modo che rispecchi l'ordinamento; gli eventuali elementi multipli che hanno campi di ordinamento identici vengono posizionati in modo consecutivo senza un ordine particolare. • I campi numerici vengono ordinati come se fossero stringhe, pertanto 100 precede 99 poiché "1" è un valore di stringa inferiore a "9". Per ordinare un array mediante delle impostazioni diverse da quelle predefinite, è possibile utilizzare una delle opzioni di ordinamento descritte nella sezione relativa al parametro options oppure creare una funzione personalizzata che effettui l'ordinamento. Se si crea una funzione personalizzata, è possibile utilizzarla chiamando il metodo sort(), con il nome della funzione personalizzata come primo parametro (compareFunction). Disponibilità Flash Lite 2.0 Parametri compareFunction:Object [opzionale] - Una funzione di confronto utilizzata per determinare il tipo di ordinamento degli elementi di un array. Dati gli elementi A e B, il risultato di compareFunction può avere uno dei tre elementi seguenti: • -1, se A deve comparire prima di B nella sequenza ordinata • 0, se A è uguale a B • 1, se A deve comparire dopo B nella sequenza ordinata opzioni:Number [opzionale] - Uno o più numeri o nomi di costanti definite, separati dall'operatore | (OR bit a bit), che modificano il comportamento dell'ordinamento predefinito. I valori seguenti sono accettabili per il parametro options: • Array.CASEINSENSITIVE o 1 • Array.DESCENDING o 2 • Array.UNIQUESORT o 4 • Array.RETURNINDEXEDARRAY o 8 • Array.NUMERIC o 16 Per ulteriori informazioni su questo parametro, vedete il metodo Array.sortOn(). Nota: Array.sort() è definito in ECMA-262, ma le opzioni di ordinamento degli array introdotte in Flash Player 7 sono estensioni specifiche per Flash della specifica ECMA-262. Restituisce Array - Il valore restituito dipende dal fatto che abbiate o meno passato dei parametri, come descritto nell'elenco seguente: • Se si specifica il valore 4 o Array.UNIQUESORT per il parametro options e due o più elementi in corso di ordinamento hanno campi con ordinamento identico, viene restituito il valore 0 e l'array non viene modificato. • Se si specifica il valore 8 o Array.RETURNINDEXEDARRAY per il parametro options, viene restituito un array che rispecchia i risultati dell'ordinamento e l'array non viene modificato. • In caso contrario, non viene restituito alcun valore e l'array viene modificato in modo che rispecchi l'ordinamento. Esempio Uso 1: l'esempio seguente mostra l'utilizzo di Array.sort() con e senza un valore passato per options: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 195 Classi ActionScript var fruits_array:Array = new Array("oranges", "apples", "strawberries", "pineapples", "cherries"); trace(fruits_array); // Displays oranges,apples,strawberries,pineapples,cherries. fruits_array.sort(); trace(fruits_array); // Displays apples,cherries,oranges,pineapples,strawberries. fruits_array.sort(Array.DESCENDING); trace(fruits_array); // Displays strawberries,pineapples,oranges,cherries,apples. Uso 2: l'esempio seguente utilizza Array.sort() con una funzione di confronto: Le voci sono ordinate in formato nome:password. L'ordinamento deve avvenire usando solo la parte nome della voce come chiave: var passwords_array:Array = new Array("mom:glam", "ana:ring", "jay:mag", "anne:home", "regina:silly"); function order(a, b):Number { var name1:String = a.split(":")[0]; var name2:String = b.split(":")[0]; if (name1<name2) { return -1; } else if (name1>name2) { return 1; } else { return 0; } } trace("Unsorted:"); trace(passwords_array); //Displays mom:glam,ana:ring,jay:mag,anne:home,regina:silly. passwords_array.sort(order); trace("Sorted:"); trace(passwords_array); //Displays ana:ring,anne:home,jay:mag,mom:glam,regina:silly. Vedete anche Operatore | (OR bit a bit), sortOn (metodo Array.sortOn) sortOn (metodo Array.sortOn) public sortOn(fieldName:Object, [options:Object]) : Array Ordina gli elementi di un array in base a uno o più campi dell'array. L'array dovrebbe avere le proprietà caratteristiche: • L'array è di tipo indicizzato, non associativo. • Ogni elemento dell'array contiene un oggetto con una o più proprietà. • Tutti gli oggetti hanno almeno una proprietà in comune, i cui valori possono essere utilizzati per ordinare l'array. La proprietà viene denominata campo. Se si passano più parametri fieldName, il primo campo rappresenta il campo di ordinamento principale, il secondo rappresenta il campo di ordinamento successivo, e così via. L'ordinamento viene effettuato in base ai valori Unicode. (ASCII è un sottoinsieme del linguaggio Unicode). Se qualcuno degli elementi che si stanno confrontando non contiene il campo specificato nel parametro fieldName, il campo viene considerato non definito e gli elementi vengono collocati consecutivamente senza un ordine particolare all'interno dell'array ordinato. Per impostazione predefinita, Array.sortOn() funziona nel modo descritto nell'elenco seguente: • L'ordinamento fa distinzione tra maiuscole e minuscole (quindi, ad esempio Z precede a). • L'ordinamento è ascendente (quindi, ad esempio a precede b). Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 196 Classi ActionScript • L'array viene modificato in modo che rispecchi l'ordinamento; gli eventuali elementi multipli che hanno campi di ordinamento identici vengono posizionati in modo consecutivo senza un ordine particolare. • I campi numerici vengono ordinati come se fossero stringhe, pertanto 100 precede 99 poiché "1" è un valore di stringa inferiore a "9". Il parametro options può servire per ignorare il comportamento predefinito per l'ordinamento. Per ordinare un array semplice (ad esempio, un array con un solo campo) o per specificare un ordinamento non supportato dal parametro options, utilizzare Array.sort(). Per passare più flag, separarli con l'operatore OR bit a bit (|): my_array.sortOn(someFieldName, Array.DESCENDING | Array.NUMERIC); Disponibilità Flash Lite 2.0 Parametri fieldName:Object - Una stringa che identifica un campo da utilizzare come valore di ordinamento, oppure un array in cui il primo elemento rappresenta il campo di ordinamento principale, il secondo rappresenta il campo di ordinamento secondario, e così via. options:Object [opzionale] - Uno o più numeri o nomi di costanti definite, separati dall'operatore | (OR bit a bit), che modificano il comportamento dell'ordinamento. I valori seguenti sono accettabili per il parametro options: • Array.CASEINSENSITIVE o 1 • Array.DESCENDING o 2 • Array.UNIQUESORT o 4 • Array.RETURNINDEXEDARRAY o 8 • Array.NUMERIC o 16 I suggerimenti sul codice sono abilitati se si utilizza il flag sotto forma di stringa (ad esempio, DESCENDING) anziché sotto forma di numero (2). Restituisce Array - Il valore restituito dipende dal fatto che abbiate o meno passato dei parametri, come descritto nell'elenco seguente: • Se si specifica il valore 4 o Array.UNIQUESORT per il parametro options e due o più elementi in corso di ordinamento hanno campi con ordinamento identico, viene restituito il valore 0 e l'array non viene modificato. • Se si specifica il valore 8 o Array.RETURNINDEXEDARRAY per il parametro options, viene restituito un array che rispecchia i risultati dell'ordinamento e l'array non viene modificato. • In caso contrario, non viene restituito alcun valore e l'array viene modificato in modo che rispecchi l'ordinamento. Esempio L'esempio seguente crea un nuovo array e lo ordina in base ai campi name e city. Il primo ordinamento utilizza name come primo valore di ordinamento e city come secondo valore. Il primo ordinamento utilizza city come primo valore di ordinamento e name come secondo valore. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 197 Classi ActionScript var rec_array:Array = new Array(); rec_array.push({name: "john", city: "omaha", zip: 68144}); rec_array.push({name: "john", city: "kansas city", zip: 72345}); rec_array.push({name: "bob", city: "omaha", zip: 94010}); for(i=0; i<rec_array.length; i++){ trace(rec_array[i].name + ", " + rec_array[i].city); } // Results: // john, omaha // john, kansas city // bob, omaha rec_array.sortOn(["name", "city"]); for(i=0; i<rec_array.length; i++){ trace(rec_array[i].name + ", " + rec_array[i].city); } // Results: // bob, omaha // john, kansas city // john, omaha rec_array.sortOn(["city", "name" ]); for(i=0; i<rec_array.length; i++){ trace(rec_array[i].name + ", " + rec_array[i].city); } // Results: // john, kansas city // bob, omaha // john, omaha L'array di oggetti seguente viene utilizzato dagli esempi seguenti, che mostrano come utilizzare il parametro options: var my_array:Array = new my_array.push({password: my_array.push({password: my_array.push({password: my_array.push({password: Array(); "Bob", age:29}); "abcd", age:3}); "barb", age:35}); "catchy", age:4}); Se si esegue un ordinamento predefinito sul campo password, si ottengono i risultati seguenti: my_array.sortOn("password"); // Bob // abcd // barb // catchy Se si esegue un ordinamento senza distinzione tra maiuscole e minuscole sul campo password, si ottengono i risultati seguenti: my_array.sortOn("password", Array.CASEINSENSITIVE); // abcd // barb // Bob // catchy Se si esegue un ordinamento discendente senza distinzione tra maiuscole e minuscole sul campo password, si ottengono i risultati seguenti: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 198 Classi ActionScript my_array.sortOn("password", Array.CASEINSENSITIVE | Array.DESCENDING); // catchy // Bob // barb // abcd Se si esegue un ordinamento predefinito sul campo age, si ottengono i risultati seguenti: my_array.sortOn("age"); // 29 // 3 // 35 // 4 Se si esegue un ordinamento numerico sul campo age, si ottengono i risultati seguenti: my_array.sortOn("age", Array.NUMERIC); // my_array[0].age = 3 // my_array[1].age = 4 // my_array[2].age = 29 // my_array[3].age = 35 Se si esegue un ordinamento numerico discendente sul campo age, si ottengono i risultati seguenti: my_array.sortOn("age", Array.DESCENDING | Array.NUMERIC); // my_array[0].age = 35 // my_array[1].age = 29 // my_array[2].age = 4 // my_array[3].age = 3 Quando si utilizza l'opzione di ordinamento Array.RETURNINDEXARRAY, è necessario assegnare il valore restituito a un array diverso. L'array originale non viene modificato. var indexArray:Array = my_array.sortOn("age", Array.RETURNINDEXEDARRAY); Vedete anche Operatore | (OR bit a bit), sort (metodo Array.sort) splice (metodo Array.splice) public splice(startIndex:Number, [deleteCount:Number], [value:Object]) : Array Aggiunge e rimuove gli elementi di un array. Questo metodo modifica l'array senza crearne una copia. Disponibilità Flash Lite 2.0 Parametri startIndex:Number - Un numero intero che specifica l'indice dell'elemento dell'array in cui inizia l'inserimento o l'eliminazione. È possibile indicare un numero intero negativo per specificare una posizione relativa alla fine dell'array (ad esempio, -1 è l'ultimo elemento dell'array). deleteCount:Number [opzionale] - Un numero intero che specifica il numero di elementi da eliminare. Questo numero include l'elemento specificato nel parametro startIndex. Se per il parametro deleteCount non è specificato alcun parametro, il metodo elimina tutti i valori dall'elemento startIndex fino all'ultimo elemento dell'array. Se il valore è 0, non viene eliminato alcun elemento. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 199 Classi ActionScript valore:Object [opzionale] - Specifica i valori da inserire nell'array in corrispondenza del punto di inserimento specificato nel parametro startIndex. Restituisce Array - Un array contenente gli elementi che sono stati rimossi dall'array originale. Esempio L'esempio seguente crea un array e lo giunta, utilizzando la posizione di indice 1 come parametro startIndex. In tal modo vengono rimossi tutti gli elementi dall'array, a partire dal secondo elemento, e viene lasciato solo l'elemento in corrispondenza dell'indice 0 nell'array originale: var myPets_array:Array = new Array("cat", "dog", "bird", "fish"); trace( myPets_array.splice(1) ); // Displays dog,bird,fish. trace( myPets_array ); // cat L'esempio seguente crea un array e lo giunta, utilizzando la posizione di indice 1 come parametro startIndex e il numero 2 come parametro deleteCount. In tal modo vengono rimossi due elementi dall'array, a partire dal secondo elemento, e vengono lasciati il primo e l'ultimo elemento dell'array originale: var myFlowers_array:Array = new Array("roses", "tulips", "lilies", "orchids"); trace( myFlowers_array.splice(1,2 ) ); // Displays tulips,lilies. trace( myFlowers_array ); // roses,orchids L'esempio seguente crea un array e lo giunta, utilizzando la posizione di indice 1 come parametro startIndex, il numero 0 come parametro deleteCount e la stringa chair come parametro value. In tal modo, dall'array originale non viene rimosso alcun elemento e la stringa chair viene aggiunta in corrispondenza dell'indice 1: var myFurniture_array:Array = new Array("couch", "bed", "desk", "lamp"); trace( myFurniture_array.splice(1,0, "chair" ) ); // Displays empty array. trace( myFurniture_array ); // displays couch,chair,bed,desk,lamp toString (metodo Array.toString) public toString() : String Restituisce un valore di tipo stringa che rappresenta gli elementi dell'oggetto Array specificato. Ogni elemento dell'array, a partire dall'elemento con l'indice 0 fino all'elemento con l'indice dal numero più alto, viene convertito in una stringa concatenata e separato per mezzo di virgole. Per specificare un separatore personalizzato, utilizzare il metodo Array.join(). Disponibilità Flash Lite 2.0 Restituisce String - Una stringa. Esempio L'esempio seguente crea l'array my_array e lo converte in stringa. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 200 Classi ActionScript var my_array:Array = new Array(); my_array[0] = 1; my_array[1] = 2; my_array[2] = 3; my_array[3] = 4; my_array[4] = 5; trace(my_array.toString()); // Displays 1,2,3,4,5. Questo esempio genera 1,2,3,4,5 come risultato dell'istruzione trace. Vedete anche split (metodo String.split), join (metodo Array.join) UNIQUESORT (proprietà Array.UNIQUESORT) public static UNIQUESORT : Number Rappresenta il requisito dell'ordinamento univoco. Questa costante può essere utilizzata per il parametro options nel metodo sort() o sortOn(). L'opzione di ordinamento univoco abbandona l'operazione di ordinamento se due elementi o campi qualsiasi in fase di ordinamento hanno valori identici. Il valore di questa costante è 4. Disponibilità Flash Lite 2.0 Vedete anche sort (metodo Array.sort), sortOn (metodo Array.sortOn) unshift (metodo Array.unshift) public unshift(value:Object) : Number Aggiunge uno o più elementi all'inizio di un array e restituisce la nuova lunghezza dell'array. Disponibilità Flash Lite 2.0 Parametri value:Object - Uno o più numeri, elementi o variabili da inserire all'inizio dell'array. Restituisce Number - Un numero intero che rappresenta la lunghezza dell'array. Esempio L'esempio seguente mostra l'utilizzo del metodo Array.unshift(): var pets_array:Array = new Array("dog", "cat", "fish"); trace( pets_array ); // Displays dog,cat,fish. pets_array.unshift("ferrets", "gophers", "engineers"); trace( pets_array ); // Displays ferrets,gophers,engineers,dog,cat,fish. Vedete anche pop (metodo Array.pop), push (metodo Array.push), shift (metodo Array.shift) Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 201 Classi ActionScript BitmapData (flash.display.BitmapData) Object | +-flash.display.BitmapData public class BitmapData extends Object La classe BitmapData consente di creare delle immagini bitmap trasparenti e opache con dimensioni arbitrarie e di manipolarle in vari modi in fase di runtime. Questa classe consente di separare le operazioni di rendering bitmap dalle routine interne di aggiornamento della visualizzazione del player Flash Lite. Manipolando direttamente un oggetto BitmapData è possibile creare immagini molto complesse senza la necessità di ridisegnare costantemente il contenuto per ogni fotogramma partendo dai dati vettoriali. I metodi della classe BitmapData supportano una vasta gamma di effetti che non sono disponibili nell'interfaccia generica dei filtri. Un oggetto BitmapData contiene un array di dati pixel. Questi dati possono rappresentare un'immagine bitmap completamente opaca o un'immagine bitmap trasparente contenente dati per il canale alfa. Entrambi i tipi di oggetto BitmapData sono memorizzati sotto forma di buffer di numeri interi a 32 bit. Ogni numero intero a 32 bit determina le proprietà di un singolo pixel nell'immagine bitmap. Ogni numero intero a 32 bit è una combinazione di quattro valori "canale" a 8 bit (da 0 a 255) che descrivono i valori per la trasparenza alfa e per il rosso, il verde e il blu (ARGB) del pixel. I quattro canali (rosso, verde, blu e alfa) vengono rappresentati come numeri se utilizzati con il metodo BitmapData.copyChannel() o le proprietà DisplacementMapFilter.componentX e DisplacementMapFilter.componentY come nell'esempio seguente: • 1 (rosso) • 2 (verde) • 4 (blu) • 8 (alfa) Potete associare oggetti BitmapData a un oggetto MovieClip mediante il metodo MovieClip.attachBitmap(). Potete utilizzare un oggetto BitmapData per riempire un'area di un clip filmato mediante il metodo MovieClip.beginBitmapFill(). La larghezza e l'altezza massime di un oggetto BitmapData corrispondono a 2880 pixel. Disponibilità Flash Lite 3.1 Vedete anche attachBitmap (metodo MovieClip.attachBitmap), beginFill (metodo MovieClip.beginFill) GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 202 Ultimo aggiornamento 4/5/2010 Classi ActionScript Riepilogo delle proprietà Modificatori Proprietà Descrizione height:Number [sola lettura] L'altezza dell'immagine bitmap, espressa in pixel. rectangle:Rectangle [sola lettura] Il rettangolo che definisce le dimensioni e la posizione dell'immagine bitmap. transparent:Boolean [sola Indica se l'immagine bitmap supporta la trasparenza per pixel. lettura] width:Boolean [sola lettura] La larghezza dell'immagine bitmap, espressa in pixel. constructor (proprietà Object.constructor), __proto__ (proprietà Object._proto), prototype (proprietà Object.prototype), __resolve (proprietà Object.__resolve) Riepilogo delle funzioni di costruzione Firma Descrizione BitmapData(width:Num Crea un nuovo oggetto BitmapData con specificati valori di larghezza e altezza. ber, height:Number,[tran sparent:Boolean], [fillColor:Number]) Riepilogo dei metodi Modificatori Firma Descrizione applyFilter Usa un'immagine di origine e un oggetto filtro per generare l'immagine filtrata. Flash Lite 3.1 non supporta i filtro pertanto questo metodo non è supportato. clone(): BitmapData Restituisce un nuovo oggetto BitmapData che è un clone dell'istanza originale con una copia esatta dell'immagine bitmap contenuta. colorTransform(rect:Re ctangle, colorTransform:Color Transform) : Void Regola i valori di colore in un'area specificata di un'immagine bitmap utilizzando un oggetto ColorTransform. copyChannel(sourceBit Trasferisce i dati da un canale di un altro oggetto BitmapData o map:BitmapData, dell'oggetto BitmapData corrente a un canale dell'oggetto sourceRect: BitmapData corrente. Rectangle, destPoint:Point, sourceChannel:Numbe r, destChannel: Number: Void GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 203 Ultimo aggiornamento 4/5/2010 Classi ActionScript Modificatori Firma Descrizione copyPixels(sourceBitm ap:BitmapData, Fornisce una routine veloce per la modifica dei pixel tra immagini prive di effetti di allungamento, rotazione o colore. sourceRect :Rectangle, destPoint:Point, [alphaBitmap:BitmapD ata], [alphaPoint:Point, [mergeAlpha:Boolean] ) : Void dispose() : Void Libera la memoria utilizzata per memorizzare l'oggetto BitmapData. draw(source:Object, Disegna un'immagine di origine o un clip filmato su un'immagine [matrix:Matrix],[colo di destinazione, utilizzando il renderer di vettori del player Flash rTransform:ColorTransf Lite. orm],[blendMode:Obje ct],[cliprect:Rectang le],[smooth:Boolean]) : Void fillRect(rect:Rectangle, Riempie un'area rettangolare di pixel con un determinato colore color:Number) : Void ARGB. floodFill(x:Number, Esegue un'operazione di riempimento su un'immagine partendo y:Number, da una coordinata (x, y) e applicando un riempimento di un color:Number) : Void determinato colore. generateFilterRect Determina il rettangolo di destinazione su cui agisce la chiamata a applyFilter(), dati un oggetto BitmapData, un rettangolo di origine e un oggetto filter. Flash Lite non supporta questo metodo. getColorBoundsRect(mas k:Number, color:Number, [findColor:Boolean] ) :Rectangle Determina un'area rettangolare che racchiude completamente tutti i pixel di un colore specificato all'interno dell'immagine bitmap. getPixel(x:Number, y:Number) : Number Restituisce un numero intero che rappresenta un valore in pixel RGB corrispondente a un punto specifico di un oggetto BitmapData (x, y). getPixel32(x:Number, y:Number) : Number Restituisce un valore di colore ARGB che contiene dati del canale alfa e dati RGB. hitTest(firstPoint:Poi nt, Esegue un rilevamento per zone a livello di pixel tra una singola immagine bitmap e un punto, un rettangolo o un'altra immagine bitmap. firstAlphaThreshold :Number, secondObject:Object, [secondBitmapPoint: Point], [secondAlphaThresho ld:Number] ) :Boolean static loadBitmap(id:String): BitmapData Restituisce un nuovo oggetto BitmapData contenente la rappresentazione di un'immagine bitmap del simbolo identificato dall'ID di concatenamento della libreria. GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 204 Ultimo aggiornamento 4/5/2010 Classi ActionScript Modificatori Firma Descrizione merge(sourceBitmap:B Esegue una fusione per ogni canale da un'immagine di origine a itmapData, una di destinazione. sourceRect:Rectangle, destPoint:Point, redMult:Number, greenMult:Number, blueMult:Number, alphaMult:Number) : Void noise Riempie un'immagine con pixel che rappresentano disturbi a caso. Flash Lite non supporta questo metodo. paletteMap Mappa nuovamente i valori dei canali di colore di un'immagine che ha fino a quattro array di dati della tavolozza, uno per ogni canale. Flash Lite non supporta questo metodo. perlinNoise Genera un'immagine di disturbo Perlin. Flash Lite non supporta questo metodo. pixelDissolve Esegue una dissolvenza pixel da un'immagine di origine a una di destinazione oppure utilizzando la stessa immagine. Flash Lite non supporta questo metodo. scroll Scorre un'immagine di una certa quantità di pixel (x, y). Flash Lite non supporta questo metodo. setPixel(x:Number, Imposta il colore di un singolo pixel di un oggetto BitmapData. y:Number, color:Number) : Void Imposta il colore e la trasparenza alfa di un singolo pixel di un setPixel32(x:Number, y:Number, oggetto BitmapData. color:Number) : Void threshold Prova i valori in pixel di un'immagine in base a una soglia specificata e imposta i pixel che superano la prova a nuovi valori di colore. Flash Lite non supporta questo metodo. addProperty (metodo Object.addProperty), hasOwnProperty (metodo Object.hasOwnProperty), isPropertyEnumerable (metodo Object.isPropertyEnumerable), isPrototypeOf (metodo Object.isPrototypeOf), registerClass (metodo Object.registerClass), toString (metodo Object.toString), unwatch (metodo Object.unwatch), valueOf (metodo Object.valueOf), watch (metodo Object.watch) funzione di costruzione BitmapData public BitmapData(width:Number, height:Number, [transparent:Boolean], [fillColor:Number]) Crea un nuovo oggetto BitmapData con specificati valori di larghezza e altezza. Se viene specificato un valore del parametro fillColor, ogni pixel nella bitmap viene impostato su tale colore. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 205 Classi ActionScript Per impostazione predefinita, l'immagine bitmap viene creata come opaca, a meno che si passi il valore true per il parametro transparent. Una volta creata un'immagine bitmap opaca, non è possibile modificare in bitmap trasparente. Ogni pixel in un'immagine bitmap opaca utilizza solo 24 bit di informazioni dei canali di colore. Se definite l'immagine bitmap come transparent, ogni pixel utilizza 32 bit di informazioni dei canali di colore, compreso il canale di trasparenza alfa. La larghezza e l'altezza massime di un oggetto BitmapData corrispondono a 2880 pixel. Se per la larghezza e l'altezza si specifica un valore maggiore di 2880, non viene creata una nuova istanza. Disponibilità Flash Lite 3.1 Parametri width:Number - La larghezza dell'immagine bitmap espressa in pixel. height:Number - L'altezza dell'immagine bitmap espressa in pixel. transparent:Boolean [opzionale] - Specifica se l'immagine bitmap supporta la trasparenza per pixel. Il valore predefinito è true (trasparente). Per creare un'immagine bitmap completamente trasparente, impostate il valore del parametro transparent a true e il valore del parametro fillColor a 0x00000000 (o a 0). fillColor:Number [opzionale] - Un valore per il colore ARGB a 32 bit utilizzato per riempire l'area dell'immagine bitmap. Il valore predefinito è 0xFFFFFFFF (bianco uniforme). Esempio Nell'esempio seguente viene illustrato come creare un nuovo oggetto BitmapData. I valori dati sono quelli predefiniti per i parametri transparent e fillColor; potete chiamare la funzione di costruzione senza alcun parametro e ottenere lo stesso risultato. import flash.display.BitmapData; var var var var width:Number = 100; height:Number = 80; transparent:Boolean = true; fillColor:Number = 0xFFFFFFFF; var bitmap_1:BitmapData = new BitmapData(width, height, transparent, fillColor); trace(bitmap_1.width); // 100 trace(bitmap_1.height); // 80 trace(bitmap_1.transparent); // true var bitmap_2:BitmapData = new BitmapData(width, height); trace(bitmap_2.width); // 100 trace(bitmap_2.height); // 80 trace(bitmap_2.transparent); // true clone (metodo BitmapData.clone) public clone() : BitmapData Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 206 Classi ActionScript Restituisce un nuovo oggetto BitmapData che è una copia della bitmap clonata. Un clone e l'oggetto clonato posseggono le medesime proprietà. Tuttavia, un clone non restituisce un valore uguale all'oggetto BitmapData clonato in quanto le proprietà dell'oggetto originale vengono passate al clone per valore e non per riferimento. Se modificate i valori nell'oggetto originale dopo la creazione del clone, questo non riceve i nuovi valori. Disponibilità Flash Lite 3.1 Restituisce BitmapData - Un nuovo oggetto BitmapData identico all'originale. Esempio L'esempio seguente crea tre oggetti BitmapData e li confronta. Il codice utilizza la funzione di costruzione BitmapData per creare l'istanza bitmap_1. Esso crea l'istanza bitmap_2 impostandola come uguale a bitmap_1. Il codice crea l'istanza clonedBitmap clonando bitmap_1. In questo modo, benché bitmap_2 venga valutata come uguale a bitmap_1, questo non avviene per clonedBitmap, sebbene contenga gli stessi valori di bitmap_1. import flash.display.BitmapData; var bitmap_1:BitmapData = new BitmapData(100, 80, false, 0x000000); var bitmap_2:BitmapData = bitmap_1; var clonedBitmap:BitmapData = bitmap_1.clone(); trace("bitmap_1 == bitmap_2 " + (bitmap_1 == bitmap_2)); // true trace("bitmap_1 == clonedBitmap " + (bitmap_1 == clonedBitmap)); // false trace("-------------bitmap_1 properties-------------") for(var i in bitmap_1) { trace(">> " + i + ": " + bitmap_1[i]); } trace("-------------bitmap_2 properties-------------") for(var i in bitmap_2) { trace(">> " + i + ": " + bitmap_1[i]); } trace("-------------clonedBitmap properties-------------") for(var i in clonedBitmap) { trace(">> " + i + ": " + clonedBitmap[i]); } Per dimostrare ulteriormente le relazioni tra bitmap_1, bitmap_2 e clonedBitmap, l'esempio seguente modifica il valore dei pixel a (1,1) di bitmap_1. Modificando il valore del pixel in (1, 1) viene modificato il valore del pixel per bitmap_2, in quanto bitmap_2 contiene riferimenti a bitmap_1. La modifica di bitmap_1 non influenza clonedBitmap in quanto clonedBitmap non fa riferimento ai valori in bitmap_1. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 207 Classi ActionScript import flash.display.BitmapData; var bitmap_1:BitmapData = new BitmapData(100, 80, false, 0x000000); var bitmap_2:BitmapData = bitmap_1; var clonedBitmap:BitmapData = bitmap_1.clone(); trace(bitmap_1.getPixel32(1, 1)); // -16777216 trace(bitmap_2.getPixel32(1, 1)); // -16777216 trace(clonedBitmap.getPixel32(1, 1)); // -16777216 bitmap_1.setPixel32(1, 1, 0xFFFFFF); trace(bitmap_1.getPixel32(1, 1)); // -1 trace(bitmap_2.getPixel32(1, 1)); // -1 trace(clonedBitmap.getPixel32(1, 1)); // -16777216 colorTransform (metodo BitmapData.colorTransform) public colorTransform(rect: Rectangle, colorTransform: ColorTransform) : Void Regola i valori di colore in un'area specificata di un'immagine bitmap utilizzando un oggetto ColorTransform. Se il rettangolo corrisponde ai bordi dell'immagine bitmap, questo metodo trasforma i valori del colore dell'intera immagine. Disponibilità Flash Lite 3.1 Parametri rect:Rectangle - Un oggetto Rectangle che definisce l'area dell'immagine in cui viene applicato l'oggetto ColorTransform. colorTransform:ColorTransform - Un oggetto ColorTransform che descrive i valori della trasformazione di colore da applicare. Esempio L'esempio seguente mostra come applicare un'operazione di trasformazione del colore ad un'istanza BitmapData. fscommand2("SetSoftKeys"); import flash.display.BitmapData; import flash.geom.ColorTransform; var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC); var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.attachBitmap(myBitmapData, this.getNextHighestDepth()); var myListener:Object = new Object (); myListener.onKeyDown = function () { var keyCode = Key.getCode (); if (keyCode == ExtendedKey.SOFT1) { // Handle left soft key event myBitmapData.colorTransform(myBitmapData.rectangle, new ColorTransform(1, 0, 0, 1, 255, 0, 0, 0)); } }; Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 208 Classi ActionScript Vedete anche ColorTransform (flash.geom.ColorTransform), Rectangle (flash.geom.Rectangle) copyChannel (metodo BitmapData.copyChannel) public copyChannel(sourceBitmap:BitmapData, sourceRect:Rectangle, destPoint:Point, sourceChannel:Number, destChannel:Number) : Void Trasferisce i dati da un canale di un altro oggetto BitmapData o dell'oggetto BitmapData corrente a un canale dell'oggetto BitmapData corrente. Tutti i dati degli altri canali dell'oggetto BitmapData di destinazione vengono mantenuti. Il valore del canale di origine e il valore del canale di destinazione possono essere uno dei seguenti valori o la somma di due o più di essi: • 1 (rosso) • 2 (verde) • 4 (blu) • 8 (alfa) Disponibilità Flash Lite 3.1 Parametri sourceBitmap:BitmapData - L'immagine bitmap di input da usare. L'immagine di origine può essere un oggetto BitmapData diverso oppure può fare riferimento all'oggetto BitmapData corrente. sourceRect:Rectangle - L'oggetto Rectangle di origine. Se si desidera solo copiare solo i dati del canale da un'area più piccola all'interno dell'immagine bitmap, specificare un rettangolo di origine più piccolo delle dimensioni complessive dell'oggetto BitmapData. destPoint:Point - L'oggetto Point di destinazione che rappresenta l'angolo superiore sinistro dell'area rettangolare in cui verranno inseriti i nuovi dati del canale. Per copiare i dati del canale da un'area ad un'altra all'interno dell'immagine di destinazione, specificare un punto diverso da (0,0). sourceChannel:Number - Il canale di origine. Utilizzare un valore del gruppo (1,2,4,8) che rappresenti rispettivamente i canali rosso, verde, blu e alfa oppure la somma di due o più dei valori. destChannel:Number - Il canale di destinazione. Utilizzare un valore del gruppo (1,2,4,8) che rappresenti rispettivamente i canali rosso, verde, blu e alfa oppure la somma di due o più dei valori. Esempio L'esempio seguente mostra come ricopiare un canale ARGB di origine da un oggetto BitmapData su se stesso in una posizione diversa: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 209 Classi ActionScript fscommand2("SetSoftKeys"); import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC); var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.attachBitmap(myBitmapData, this.getNextHighestDepth()); var myListener:Object = new Object (); myListener.onKeyDown = function () { var keyCode = Key.getCode (); if (keyCode == ExtendedKey.SOFT1) { // Handle left soft key event myBitmapData.copyChannel(myBitmapData, new Rectangle(0, 0, 50, 80), new Point(51, 0), 3, 1); } }; Vedete anche Rectangle (flash.geom.Rectangle) copyPixels (metodo BitmapData.copyPixels) public copyPixels(sourceBitmap:BitmapData, sourceRect:Rectangle, destPoint:Point) : Void Fornisce una routine veloce per la modifica dei pixel tra immagini prive di effetti di allungamento, rotazione o colore. Il metodo copia un'area rettangolare di un'immagine di origine in un'area rettangolare delle stesse dimensioni in corrispondenza del punto di destinazione dell'oggetto BitmapData di destinazione. Disponibilità Flash Lite 3.1 Parametri sourceBitmap:BitmapData - L'immagine bitmap di input da cui copiare i pixel. L'immagine di origine può essere un'istanza BitmapData diversa oppure può fare riferimento all'istanza BitmapData corrente. sourceRect:Rectangle - Un rettangolo che definisce l'area dell'immagine di origine da utilizzare come input. destPoint:Point - Il punto di destinazione che rappresenta l'angolo superiore sinistro dell'area rettangolare in cui verranno inseriti i nuovi pixel. Esempio L'esempio seguente mostra come copiare pixel da un'istanza BitmapData ad un'altra. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 210 Classi ActionScript fscommand2("SetSoftKeys"); import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var bitmapData_1:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC); var bitmapData_2:BitmapData = new BitmapData(100, 80, false, 0x00FF0000); var mc_1:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc_1.attachBitmap(bitmapData_1, this.getNextHighestDepth()); var mc_2:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc_2.attachBitmap(bitmapData_2, this.getNextHighestDepth()); mc_2._x = 101; var myListener:Object = new Object (); myListener.onKeyDown = function () { var keyCode = Key.getCode (); if (keyCode == ExtendedKey.SOFT1) { // Handle left soft key event bitmapData_2.copyPixels(bitmapData_1, new Rectangle(0, 0, 50, 80), new Point(51, 0)); } else if (keyCode == ExtendedKey.SOFT2) { // Handle right soft key event bitmapData_1.copyPixels(bitmapData_2, new Rectangle(0, 0, 50, 80), new Point(51, 0)); } }; dispose (metodo BitmapData.dispose) public dispose() : Void Libera la memoria utilizzata per memorizzare l'oggetto BitmapData. Chiama myBitmapData.dispose() per impostare la larghezza e l'altezza dell'immagine su 0. Una volta liberata la memoria di un oggetto BitmapData, le chiamate di accesso al metodo e alla proprietà sull'istanza danno esito negativo e restituiscono il valore -1. Disponibilità Flash Lite 3.1 Esempio L'esempio seguente mostra come liberare la memoria di un'istanza BitmapData risultante in un'istanza cancellata. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 211 Classi ActionScript import flash.display.BitmapData; var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC); var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.attachBitmap(myBitmapData, this.getNextHighestDepth()); var myListener:Object = new Object (); myListener.onKeyDown = function () { var keyCode = Key.getCode (); if (keyCode == ExtendedKey.SOFT1) { // Handle left soft key event myBitmapData.dispose() trace(myBitmapData.width); // -1 trace(myBitmapData.height); // -1 trace(myBitmapData.transparent); // 1 } }; draw (metodo BitmapData.draw) public draw(source:Object, [matrix:Matrix], [colorTransform:ColorTransform], [clipRect:Rectangle], [smooth:Boolean]) : Void Disegna un'immagine di origine o un clip filmato su un'immagine di destinazione, utilizzando il renderer di vettori del player Flash Lite. Per controllare il risultato del rendering è possibile utilizzare gli oggetti Matrix, ColorTransform, BlendMode e un oggetto Rectangle di destinazione. Facoltativamente, potete specificare se la bitmap deve essere smussata quando viene modificata in scala (questa soluzione funziona solo con un oggetto di origine BitmapData. Questo metodo corrisponde al modo in cui gli oggetti vengono disegnati mediante il renderer di vettori standard per gli oggetti nell'interfaccia dello strumento di creazione. Un oggetto MovieClip di origine non utilizza nessuna delle relative trasformazioni sullo stage per questa chiamata. Viene considerato come se facesse parte della libreria o del file, senza trasformazioni di matrice, trasformazioni di colore e metodo di fusione. Se si desidera disegnare il clip filmato utilizzandone le proprietà di trasformazione, è possibile utilizzarne l'oggetto Transform per passare le varie proprietà di trasformazione. Il metodo blendMode non è supportato in Flash Lite. Disponibilità Flash Lite 3.1 Parametri source:Object - L'oggetto BitmapData da disegnare. matrix:Matrix [opzionale] - Un oggetto Matrix utilizzato per modificare in scala, ruotare o traslare le coordinate della bitmap. Se non viene fornito alcun oggetto, l'immagine bitmap non viene trasformata. Se dovete passare questo parametro, ma non desiderate trasformare l'immagine, impostate il parametro a una matrice identità creata utilizzando la funzione di costruzione predefinita new Matrix(). colorTransform:ColorTransform [opzionale] - Un oggetto ColorTransform utilizzato per regolare i valori del colore della bitmap. Se non viene fornito alcun oggetto, i colori dell'immagine bitmap non viene trasformata. Se dovete passare questo parametro, ma non desiderate trasformare l'immagine, impostate il parametro a un oggetto ColorTransform creato utilizzando la funzione di costruzione predefinita new ColorTransform(). Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 212 Classi ActionScript clipRect:Rectangle [opzionale] - Un oggetto Rectangle. Se questo valore non viene fornito, si verificano dei troncamenti. smooth:Boolean [opzionale] - Un valore booleano che determina se un oggetto BitmapData viene smussato durante la modifica in scala Il valore predefinito è false. Esempio L'esempio seguente mostra come disegnare da un'istanza MovieClip di origine ad un oggetto BitmapData. fscommand2("SetSoftKeys"); import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Matrix; import flash.geom.ColorTransform; var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC); var mc_1: MovieClip = this.createEmptyMovieClip("mc",this.getNextHighestDepth()); mc_1.attachBitmap (my BitmapData,this.getNextHighestDepth()); var mc_2:MovieClip = createRectangle(50, 40, 0xFF0000); mc_2._x = 101; var myMatrix:Matrix = new Matrix(); myMatrix.rotate(Math.PI/2); var translateMatrix:Matrix = new Matrix(); translateMatrix.translate(70, 15); myMatrix.concat(translateMatrix); var myColorTransform:ColorTransform = new ColorTransform (0, 0, 1 , 1, 0, 0 , 255, 0); var blend Mode:String = "normal"; var myRectangle:Rectangle = new Rectangle(0, 0, 100, 80); var smooth:Boolean = true; mc_1.onPress = function() { myBitmapData.draw(mc_2, myMatrix, myColorTransform, blendMode, myRectangle, smooth); } function createRectangle(width:Number, height:Number, color:Number):MovieClip { var depth:Number = this.getNextHighestDepth(); var mc:MovieClip = this.createEmptyMovieClip("mc_" + depth, depth); mc.beginFill(color); mc.lineTo(0, height); mc.lineTo(width, height); mc.lineTo(width, 0); mc.lineTo(0, 0); return mc; } fillRect (metodo BitmapData.fillRect) public fillRect(rect:Rectangle, color:Number) : Void Riempie un'area rettangolare di pixel con un determinato colore ARGB. Disponibilità Flash Lite 3.1 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 213 Classi ActionScript Parametri rect:Rectangle - L'area rettangolare da riempire. color:Number - Il valore di colore ARGB che riempie l'area. I colori ARGB vengono spesso specificati in formato esadecimale (ad esempio, 0xFF336699). Esempio L'esempio seguente mostra come riempire con un colore un'area che viene definita da un Rectangle all'interno di un oggetto BitmapData. fscommand2("SetSoftKeys"); import flash.display.BitmapData; import flash.geom.Rectangle; var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC); var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.attachBitmap(myBitmapData, this.getNextHighestDepth()); var myListener:Object = new Object (); myListener.onKeyDown = function () { var keyCode = Key.getCode (); if (keyCode == ExtendedKey.SOFT1) { // Handle left soft key event myBitmapData.fillRect(new Rectangle(0, 0, 50, 40), 0x00FF0000); } }; Vedete anche Rectangle (flash.geom.Rectangle) floodFill (metodo BitmapData.floodFill) public floodFill(x:Number, y:Number, color:Number) : Void Esegue un'operazione di riempimento su un'immagine partendo da una coordinata (x, y) e applicando un riempimento di un determinato colore. Il metodo floodFill() è simile allo strumento "secchio di vernice" presente in molti programmi di grafica. Il colore è un colore ARGB che contiene le informazioni sia sull'alfa che sui colori. Disponibilità Flash Lite 3.1 Parametri x:Number - La coordinata x dell'immagine. y:Number - La coordinata y dell'immagine. color:Number - Il colore ARGB da utilizzare come riempimento. I colori ARGB vengono spesso specificati in formato esadecimale (ad esempio, 0xFF336699). Esempio L'esempio seguente mostra come applicare un riempimento di colore in un'immagine partendo dal punto su cui l'utente fa clic all'interno dell'oggetto BitmapData. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 214 Classi ActionScript fscommand2("SetSoftKeys"); import flash.display.BitmapData; import flash.geom.Rectangle; var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC); var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.attachBitmap(myBitmapData, this.getNextHighestDepth()); myBitmapData.fillRect(new Rectangle(0, 0, 50, 40), 0x00FF0000); var myListener:Object = new Object (); myListener.onKeyDown = function () { var keyCode = Key.getCode (); if (keyCode == ExtendedKey.SOFT1) { // Handle left soft key event myBitmapData.floodFill(_xmouse, _ymouse, 0x000000FF);} }; getColorBoundsRect (metodo BitmapData.getColorBoundsRect) public getColorBoundsRect(mask:Number, color:Number, [findColor:Boolean]) : Rectangle Determina un'area rettangolare che racchiude completamente tutti i pixel di un colore specificato all'interno dell'immagine bitmap. Ad esempio, disponete di un'immagine di origine e desiderate determinare il rettangolo che contiene un canale alfa diverso da 0, passate {mask: 0xFF000000, color: 0x00000000} come parametri. All'interno dell'intera immagine viene effettuata la ricerca dei limiti di pixel di cui (value & mask) != color. Per determinare lo spazio bianco attorno all'immagine, passate {mask: 0xFFFFFFFF, color: 0xFFFFFFFF} per trovare i limiti dei pixel diversi dal bianco. Disponibilità Flash Lite 3.1 Parametri mask:Number - Un valore di colore esadecimale. color:Number - Un valore di colore esadecimale. findColor:Boolean [opzionale] - Se il valore è impostato su true, restituisce i limiti di un valore di colore in un'immagine. Se il valore è impostato su false, restituisce i limiti del punto in cui questo colore non esiste in un'immagine. Il valore predefinito è true. Restituisce Rectangle - L'area dell'immagine corrispondente al colore specificato. Esempio L'esempio seguente mostra come determinare un'area rettangolare che racchiude completamente tutti i pixel di un colore specificato all'interno dell'immagine bitmap. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 215 Classi ActionScript fscommand2("SetSoftKeys"); import flash.display.BitmapData; import flash.geom.Rectangle; var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC); var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.attachBitmap(myBitmapData, this.getNextHighestDepth()); myBitmapData.fillRect(new Rectangle(0, 0, 50, 40), 0x00FF0000); var myListener:Object = new Object (); myListener.onKeyDown = function () { var keyCode = Key.getCode (); if (keyCode == ExtendedKey.SOFT1) { // Handle left soft key event var colorBoundsRect:Rectangle = myBitmapData.getColorBoundsRect(0x00FFFFFF, 0x00FF0000, true); trace(colorBoundsRect); // (x=0, y=0, w=50, h=40) } }; Key.addListener (myListener); getPixel (metodo BitmapData.getPixel) public getPixel(x:Number, y:Number) : Number Restituisce un numero intero che rappresenta un valore in pixel RGB corrispondente a un punto specifico di un oggetto BitmapData (x, y). Il metodo getPixel() restituisce un valore di pixel non moltiplicato. Non viene restituita alcuna informazione sull'alfa. Tutti i pixel di un oggetto BitmapData vengono memorizzati sotto forma di valori di colore premoltiplicati. In un pixel di immagine premoltiplicato i valori dei canali rosso, verde e blu sono già moltiplicati per i dati dell'alfa. Ad esempio, se il valore dell'alfa è 0, anche i canali RGB sono 0, indipendentemente dai relativi valori non moltiplicati. Questa perdita di dati può provocare dei problemi durante l'esecuzione delle operazioni. Tutti i metodi del player Flash Lite accettano e restituiscono valori non moltiplicati. La rappresentazione sotto forma di pixel interni non è moltiplicata prima che venga restituita come valore. Durante un'operazione impostata, il valore in pixel viene premoltiplicato prima di impostare il pixel dell'immagine grezza. Disponibilità Flash Lite 3.1 Parametri x:Number - La posizione x del pixel. y:Number - La posizione y del pixel. Restituisce Number - Un numero che rappresenta un valore in RGB del pixel. Se le coordinate (x, y) sono fuori dei limiti dell'immagine, viene restituito il valore 0. Esempio L'esempio seguente utilizza il metodo getPixel() per recuperare il valore RGB di un pixel in una specifica posizione x e y. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 216 Classi ActionScript import flash.display.BitmapData; var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC); var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.attachBitmap(myBitmapData, this.getNextHighestDepth()); trace("0x" + myBitmapData.getPixel(0, 0).toString(16)); // 0xcccccc Vedete anche getPixel32 (metodo BitmapData.getPixel32) getPixel32 (metodo BitmapData.getPixel32) public getPixel32(x:Number, y:Number) : Number Restituisce un valore di colore ARGB che contiene dati di canale alfa e dati RGB. Questo metodo è simile al metodo getPixel(), che restituisce un colore RGB senza dati relativi al canale alfa. Disponibilità Flash Lite 3.1 Parametri x:Number - La posizione x del pixel. y:Number - La posizione y del pixel. Restituisce Number - Un numero che rappresenta un valore in ARGB del pixel. Se le coordinate (x, y) sono fuori dei limiti dell'immagine, viene restituito il valore 0. Se l'immagine bitmap è stata creata come bitmap opaca e non trasparente, il metodo restituisce un codice di errore -1. Esempio L'esempio seguente utilizza il metodo getPixel32() per recuperare il valore ARGB di un pixel in una specifica posizione x e y. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 217 Classi ActionScript import flash.display.BitmapData; var myBitmapData:BitmapData = new BitmapData(100, 80, true, 0xFFAACCEE); var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.attachBitmap(myBitmapData, this.getNextHighestDepth()); var alpha:String = (myBitmapData.getPixel32(0, 0) >> 24 & 0xFF).toString(16); trace(">> alpha: " + alpha); // ff var red:String = (myBitmapData.getPixel32(0, 0) >> 16 & 0xFF).toString(16); trace(">> red: " + red); // aa var green:String = (myBitmapData.getPixel32(0, 0) >> 8 & 0xFF).toString(16); trace(">> green: " + green); // cc var blue:String = (myBitmapData.getPixel32(0, 0) & 0xFF).toString(16); trace(">> blue: " + blue); // ee trace("0x" + alpha + red + green + blue); // 0xffaaccee Vedete anche getPixel (metodo BitmapData.getPixel) height (proprietà BitmapData.height) public height : Number [read-only] L'altezza dell'immagine bitmap, espressa in pixel. Disponibilità Flash Lite 3.1 Esempio L'esempio seguente mostra che la proprietà height dell'istanza BitmapData è di sola lettura cercando di impostarla e dando esito negativo: import flash.display.BitmapData; var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC); var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.attachBitmap(myBitmapData, this.getNextHighestDepth()); trace(myBitmapData.height); // 80 myBitmapData.height = 999; trace(myBitmapData.height); // 80 hitTest (metodo BitmapData.hitTest) public hitTest(firstPoint:Point, firstAlphaThreshold:Number, secondObject:Object, [secondBitmapPoint:Point], [secondAlphaThreshold:Number]) : Boolean Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 218 Classi ActionScript Esegue un rilevamento per zone a livello di pixel tra una singola immagine bitmap e un punto, un rettangolo o un'altra immagine bitmap. Durante l'esecuzione del rilevamento per zone non vengono considerati allungamenti, rotazioni o altre trasformazioni per nessun oggetto. Se un'immagine è opaca, questo metodo la considera un rettangolo completamente opaco. Entrambe le immagini devono essere trasparenti per eseguire un rilevamento per zone a livello di pixel che consideri la trasparenza. Quando si verificano due immagini trasparenti, i parametri di soglia dell'alfa controllano quali valori di canale alfa (da 0 a 255) vengono considerati opachi. Disponibilità Flash Lite 3.1 Parametri firstPoint:Point - Un punto che definisce la posizione di un pixel nell'istanza BitmapData corrente. firstAlphaThreshold:Number - Il valore di canale alfa più alto che viene considerato opaco per la verifica di rilevamento delle zone attive. secondObject:Object - Un oggetto Rectangle, Point o BitmapData. secondBitmapPoint:Point [opzionale] - Un punto che definisce la posizione di un pixel nel secondo oggetto BitmapData. Utilizzare questo parametro solo quando il valore di secondObject è un oggetto BitmapData. secondAlphaThreshold:Number [opzionale] - Il valore di canale alfa più alto che viene considerato opaco per il secondo oggetto BitmapData. Utilizzare questo parametro solo quando il valore di secondObject è un oggetto BitmapData ed entrambi gli oggetti BitmapData sono trasparenti. Restituisce Boolean - Un valore booleano. Se viene rilevata una zona, il valore è true; in caso contrario è false. Esempio L'esempio seguente mostra come determinare se un oggetto BitmapData entra in collisione con un oggetto MovieClip. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 219 Classi ActionScript import flash.display.BitmapData; import flash.geom.Point; var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC); var mc_1:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc_1.attachBitmap(myBitmapData, this.getNextHighestDepth()); var mc_2:MovieClip = createRectangle(20, 20, 0xFF0000); var destPoint:Point = new Point(myBitmapData.rectangle.x, myBitmapData.rectangle.y); var currPoint:Point = new Point(); mc_1.onEnterFrame = function() { currPoint.x = mc_2._x; currPoint.y = mc_2._y; if(myBitmapData.hitTest(destPoint, 255, currPoint)) { trace(">> Collision at x:" + currPoint.x + " and y:" + currPoint.y); } } mc_2.startDrag(true); function createRectangle(width:Number, height:Number, color:Number):MovieClip { var depth:Number = this.getNextHighestDepth(); var mc:MovieClip = this.createEmptyMovieClip("mc_" + depth, depth); mc.beginFill(color); mc.lineTo(0, height); mc.lineTo(width, height); mc.lineTo(width, 0); mc.lineTo(0, 0); return mc; } loadBitmap (metodo BitmapData.loadBitmap) public static loadBitmap(id:String) : BitmapData Restituisce un nuovo oggetto BitmapData contenente la rappresentazione di un'immagine bitmap del simbolo che viene identificato dall'ID di concatenamento della libreria. Disponibilità Flash Lite 3.1 Parametri id:String - Un identificatore di concatenamento di un simbolo presente nella libreria. Restituisce BitmapData - Una rappresentazione di immagine bitmap del simbolo. Esempio L'esempio seguente mostra un'immagine bitmap con identificatore di concatenamento libraryBitmap della propria libreria. È necessario collegarlo ad un oggetto MovieClip per dargli una rappresentazione visiva. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 220 Classi ActionScript import flash.display.BitmapData; var linkageId:String = "libraryBitmap"; var myBitmapData:BitmapData = BitmapData.loadBitmap(linkageId); trace(myBitmapData instanceof BitmapData); // true var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.attachBitmap(myBitmapData, this.getNextHighestDepth()); merge (metodo BitmapData.merge) public merge(sourceBitmap:BitmapData, sourceRect:Rectangle, destPoint:Rectangle, redMult:Number, greenMult:Number, blueMult:Number, alphaMult:Number) : Void Esegue una fusione per ogni canale da un'immagine di origine a una di destinazione. La formula seguente viene utilizzata per ciascun canale: nuova destinaz. rosso = (origine rosso * redMult) + (destinaz. rosso * (256 - redMult) / 256; I valori redMult, greenMult, blueMult e alphaMult sono i moltiplicatori utilizzati per ciascun canale di colore. L'intervallo di valori validi è compreso tra 0 e 256. Disponibilità Flash Lite 3.1 Parametri sourceBitmap:BitmapData - L'immagine bitmap di input da usare. L'immagine di origine può essere un oggetto BitmapData diverso oppure può fare riferimento all'oggetto BitmapData corrente. sourceRect:Rectangle - Un rettangolo che definisce l'area dell'immagine di origine da utilizzare come input. destPoint:Point - Il punto all'interno dell'immagine di destinazione (l'istanza BitmapData corrente) che corrisponde all'angolo superiore sinistro del rettangolo di origine. redMult:Number - Un numero per cui moltiplicare il valore del canale rosso. greenMult:Number - Un numero per cui moltiplicare il valore del canale verde. blueMult:Number - Un numero per cui moltiplicare il valore del canale blu. alphaMult:Number - Un numero per cui moltiplicare il valore della trasparenza alfa. Esempio L'esempio seguente mostra come incorporare parte di un oggetto BitmapData in un altro. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 221 Classi ActionScript fscommand2("SetSoftKeys"); import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var bitmapData_1:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC); var bitmapData_2:BitmapData = new BitmapData(100, 80, false, 0x00FF0000); var mc_1:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc_1.attachBitmap(bitmapData_1, this.getNextHighestDepth()); var mc_2:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc_2.attachBitmap(bitmapData_2, this.getNextHighestDepth()); mc_2._x = 101; var myListener:Object = new Object (); myListener.onKeyDown = function () { var keyCode = Key.getCode (); if (keyCode == ExtendedKey.SOFT1) { // Handle left soft key event bitmapData_1.merge(bitmapData_2, new Rectangle(0, 0, 50, 40), new Point(25, 20), 128, 0, 0, 0); } }; Key.addListener (myListener); rectangle (proprietà BitmapData.rectangle) public rectangle : Rectangle [read-only] Il rettangolo che definisce le dimensioni e la posizione dell'immagine bitmap. La parte superiore e sinistra del rettangolo hanno valore zero; la larghezza e l'altezza sono uguali alla larghezza e all'altezza espresse in pixel dell'oggetto BitmapData. Disponibilità Flash Lite 3.1 Esempio L'esempio seguente mostra che la proprietà rectangle dell'istanza Bitmap è di sola lettura cercando di impostarla e dando esito negativo: import flash.display.BitmapData; import flash.geom.Rectangle; var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC); var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.attachBitmap(myBitmapData, this.getNextHighestDepth()); trace(myBitmapData.rectangle); // (x=0, y=0, w=100, h=80) myBitmapData.rectangle = new Rectangle(1, 2, 4, 8); trace(myBitmapData.rectangle); // (x=0, y=0, w=100, h=80) setPixel (metodo BitmapData.setPixel) public setPixel(x:Number, y:Number, color:Number) : Void Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 222 Classi ActionScript Imposta il colore di un singolo pixel di un oggetto BitmapData. Durante l'operazione, il valore corrente del canale alfa dei pixel dell'immagine viene conservato. Il valore del parametro di colore RGB viene gestito come un valore di colore non moltiplicato. Disponibilità Flash Lite 3.1 Parametri x:Number - La posizione x del pixel il cui valore cambia. y:Number - La posizione y del pixel il cui valore cambia. color:Number - Il colore RGB su cui impostare il pixel. Vedete anche getPixel (metodo BitmapData.getPixel), setPixel32 (metodo BitmapData.setPixel32) setPixel32 (metodo BitmapData.setPixel32) public setPixel32(x:Number, y:Number, color:Number) : Void Imposta il colore e la trasparenza alfa di un singolo pixel di un oggetto BitmapData. Questo metodo è simile al metodo setPixel(); la differenza principale consiste nel fatto che il metodo setPixel32() accetta un valore di colore ARGB che contiene le informazioni sul canale alfa. Disponibilità Flash Lite 3.1 Parametri x:Number - La posizione x del pixel il cui valore cambia. y:Number - La posizione y del pixel il cui valore cambia. color:Number - Il colore ARGB su cui impostare il pixel. Se è stata creata un'immagine bitmap opaca (non trasparente), la parte di trasparenza alfa di questo valore di colore viene ignorata. Vedete anche getPixel32 (metodo BitmapData.getPixel32), setPixel (metodo BitmapData.setPixel) transparent (proprietà BitmapData.transparent) public transparent : Boolean [read-only] Indica se l'immagine bitmap supporta la trasparenza per pixel. Potete impostare questo valore solo quando create un oggetto BitmapData passando il valore true per il parametro transparent. Dopo aver creato un oggetto BitmapData, potete controllare se supporta la trasparenza per pixel verificando se il valore della proprietà transparent è true. Disponibilità Flash Lite 3.1 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 223 Ultimo aggiornamento 4/5/2010 Classi ActionScript width (proprietà BitmapData.width) public width : Number [read-only] La larghezza dell'immagine bitmap, espressa in pixel. Disponibilità Flash Lite 3.1 Boolean Object | +-Boolean public class Boolean extends Object La classe Boolean è un oggetto wrapper con la stessa funzionalità dell'oggetto Boolean standard di JavaScript. Utilizzare la classe Boolean per recuperare il tipo di dati di base o la rappresentazione in formato stringa di un oggetto Boolean. Per creare un oggetto Boolean prima di chiamarne i metodi, utilizzare la funzione di costruzione new Boolean(). Disponibilità Flash Lite 2.0 Riepilogo delle proprietà Proprietà ereditate dalla classe Object constructor (proprietà Object.constructor), __proto__ (proprietà Object._proto)prototype (proprietà Object.prototype), __resolve (proprietà Object.__resolve) Riepilogo delle funzioni di costruzione Firma Descrizione Boolean([value:Objec t]) Crea un oggetto Boolean. Riepilogo dei metodi Modificatori Firma Descrizione toString() : String Restituisce la rappresentazione in formato stringa ("true" o "false") dell'oggetto Boolean. valueOf() : Boolean Restituisce true se il tipo di valore di base dell'oggetto Boolean specificato è true; false in caso contrario. Metodi ereditati dalla classe Object Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 224 Classi ActionScript addProperty (metodo Object.addProperty), hasOwnProperty (metodo Object.hasOwnProperty)isPropertyEnumerable (metodo Object.isPropertyEnumerable)isPrototypeOf (metodo Object.isPrototypeOf)registerClass (metodo Object.registerClass), toString (metodo Object.toString)unwatch (metodo Object.unwatch), valueOf (metodo Object.valueOf)watch (metodo Object.watch) Boolean (funzione di costruzione) public Boolean([value:Object]) Crea un oggetto Boolean. Se si omette il parametro value, l'oggetto Boolean viene inizializzato con il valore false. Se per il parametro value si specifica un valore, il metodo lo valuta e restituisce il risultato sotto forma di un valore booleano in base alle regole specificate nell'intera funzione Boolean(). Disponibilità Flash Lite 2.0 Parametri value:Object [opzionale] - Qualsiasi espressione. Il valore predefinito è false. Esempio Il codice seguente crea un nuovo oggetto Boolean vuoto di nome myBoolean: var myBoolean:Boolean = new Boolean(); toString (metodo Boolean.toString) public toString() : String Restituisce la rappresentazione in formato stringa ("true" o "false") dell'oggetto Boolean. Disponibilità Flash Lite 2.0 Restituisce String - Una stringa; "true" o "false". Esempio Questo esempio crea una variabile di tipo Boolean e utilizza toString() per convertire il valore in una stringa da utilizzare nell'istruzione trace: var myBool:Boolean = true; trace("The value of the Boolean myBool is: " + myBool.toString()); myBool = false; trace("The value of the Boolean myBool is: " + myBool.toString()); valueOf (metodo Boolean.valueOf) public valueOf() : Boolean Restituisce true se il tipo di valore di base dell'oggetto Boolean specificato è true; false in caso contrario. GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 225 Ultimo aggiornamento 4/5/2010 Classi ActionScript Disponibilità Flash Lite 2.0 Restituisce Boolean - Un valore booleano. Esempio L'esempio seguente mostra come funziona questo metodo e dimostra che il tipo di valore di base di un nuovo oggetto Boolean è false: var x:Boolean = new Boolean(); trace(x.valueOf()); // false x = (6==3+3); trace(x.valueOf()); // true Pulsante Object | +-Button public class Button extends Object Tutti i simboli di pulsante sono istanze dell'oggetto Button. È possibile assegnare un nome di istanza a un pulsante nella finestra di ispezione Proprietà e utilizzare i metodi e le proprietà della classe Button per gestire i pulsanti con ActionScript. I nomi di istanza dei pulsanti sono visualizzati in Esplora filmato e nella finestra di dialogo Inserisci percorso target del pannello Azioni. Disponibilità Flash Lite 2.0 Vedete anche Object Riepilogo delle proprietà Modificatori Proprietà Descrizione _alpha:Number Il valore della trasparenza alfa del pulsante. enabled:Boolean Un valore booleano che specifica se un pulsante è abilitato. _focusrect:Boolean Un valore booleano che specifica se attorno a un pulsante è presente un rettangolo giallo quando il pulsante viene attivato. _height:Number L'altezza del pulsante espressa in pixel. _highquality:Number Sconsigliata a partire da Flash Player 7. Questa proprietà è stata sconsigliata a favore di Button._quality. Specifica il livello di antialiasing applicato al file SWF corrente. GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 226 Ultimo aggiornamento 4/5/2010 Classi ActionScript Modificatori Proprietà Descrizione _name:String Il nome di istanza del pulsante. _parent:MovieClip Un riferimento al clip filmato o all'oggetto che contiene il clip filmato o l'oggetto corrente. _quality:String Proprietà (globale); imposta o recupera la qualità di rendering utilizzata per un file SWF. _rotation:Number La rotazione del pulsante, espressa in pixel, rispetto alla posizione originale. _soundbuftime:Number Specifica il numero di secondi per cui un suono viene inserito nel prebuffer prima che ne inizi lo streaming. tabEnabled:Boolean Specifica se un pulsante è incluso nell'ordine di tabulazione automatico. tabIndex:Number Consente di personalizzare l'ordine di tabulazione in un file SWF. _target:String [sola lettura] Restituisce il percorso di destinazione dell'istanza di pulsante. trackAsMenu:Boolean Un valore booleano che indica se altri pulsanti o clip filmato possono ricevere eventi associati al rilascio del mouse o dello stilo. _url:String [sola lettura] Recupera l'URL del file SWF che ha creato il pulsante. _visible:Boolean Un valore booleano che indica se il pulsante è visibile. _width:Number La larghezza del pulsante espressa in pixel. _x:Number Un numero intero che imposta la coordinata x di un pulsante rispetto alle coordinate locali del clip filmato principale. _xmouse:Number [sola lettura] Restituisce la coordinata x della posizione del mouse rispetto al pulsante. _xscale:Number La scala orizzontale del pulsante applicata dal punto di registrazione del pulsante, espressa sotto forma di percentuale. _y:Number La coordinata y del pulsante rispetto alle coordinate locali del clip filmato principale. _ymouse:Number [sola lettura] Restituisce la coordinata y della posizione del mouse rispetto al pulsante. _yscale:Number La scala verticale del pulsante applicata dal punto di registrazione del pulsante, espressa sotto forma di percentuale. Proprietà ereditate dalla classe Object constructor (proprietà Object.constructor), __proto__ (proprietà Object._proto)prototype (proprietà Object.prototype), __resolve (proprietà Object.__resolve) GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 227 Ultimo aggiornamento 4/5/2010 Classi ActionScript Riepilogo degli eventi Evento Descrizione onDragOut = Richiamato quando l'utente fa clic sul pulsante e trascina il puntatore al di fuori di esso. function() {} onDragOver = function() {} Richiamato quando l'utente fa clic al di fuori del pulsante e successivamente trascina il puntatore sul pulsante. onKeyDown = function() {} Richiamato quando un pulsante è stato attivato mediante tastiera e viene premuto un tasto. onKeyUp = Richiamato quando un pulsante è stato attivato e viene rilasciato un tasto. function() {} onKillFocus = Richiamato quando un pulsante viene disattivato mediante tastiera. function(newFocus: Object) {} onPress = function() Richiamato quando viene premuto un pulsante. {} onRelease = function() {} Richiamato quando viene rilasciato un pulsante. onReleaseOutside = function() {} Richiamato quando il mouse viene rilasciato mentre il puntatore si trova al di fuori del pulsante dopo che il pulsante del mouse è stato premuto mentre il puntatore si trovava all'interno del pulsante. onRollOut = Richiamato quando un pulsante viene disattivato. function() {} onRollOver = Richiamato quando un pulsante viene attivato. function() {} onSetFocus = Richiamato quando un pulsante viene attivato mediante tastiera. function(oldFocus: Object) {} Riepilogo dei metodi Modificatori Firma Descrizione getDepth() : Number Restituisce la profondità dell'istanza del pulsante. Metodi ereditati dalla classe Object addProperty (metodo Object.addProperty), hasOwnProperty (metodo Object.hasOwnProperty)isPropertyEnumerable (metodo Object.isPropertyEnumerable)isPrototypeOf (metodo Object.isPrototypeOf)registerClass (metodo Object.registerClass), toString (metodo Object.toString)unwatch (metodo Object.unwatch), valueOf (metodo Object.valueOf)watch (metodo Object.watch) _alpha (proprietà Button._alpha) public _alpha : Number Il valore della trasparenza alfa del pulsante specificato da my_btn. I valori validi sono quelli compresi tra 0 (completamente trasparente) e 100 (completamente opaco). Il valore predefinito è 100. Gli oggetti di un pulsante con la proprietà _alpha impostata su 0 sono attivi, anche se sono invisibili. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 228 Classi ActionScript Disponibilità Flash Lite 2.0 Esempio Il codice seguente imposta la proprietà _alpha di un pulsante di nome myBtn_btn sul 50% quando l'utente fa clic sul pulsante: Innanzitutto, selezionare l'istanza Button sullo stage. Quindi, assegnargli un nome di istanza di myBtn_btn. Infine, con il fotogramma 1 selezionato, inserire il codice seguente nel pannello Actions: myBtn_btn.onRelease = function(){ this._alpha = 50; }; Vedete anche _alpha (MovieClip._alpha, proprietà), _alpha (proprietà TextField._alpha) enabled (proprietà Button.enabled) public enabled : Boolean Un valore booleano che specifica se un pulsante è abilitato. Quando un pulsante è disabilitato, ovvero con la proprietà enabled impostata su false, è visibile ma non selezionabile con un clic. Il valore predefinito è true. Questa proprietà è particolarmente utile se si desidera disabilitare parte della navigazione; ad esempio, è possibile disabilitare un pulsante nella pagina visualizzata in modo che non sia possibile selezionarlo e ricaricare la pagina. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente mostra come è possibile disabilitare e abilitare il clic sui pulsanti. Due pulsanti, myBtn1_btn e myBtn2_btn, si trovano sullo stage, e viene aggiunto il codice ActionScript seguente per impedire di fare clic sul pulsante myBtn2_btn. Innanzitutto, selezionare le istanze dei due pulsanti sullo stage. Quindi, assegnare loro i nomi di istanza di myBtn1_btn e myBtn2_btn. Infine, inserire il codice seguente sul fotogramma 1 per attivare o disattivare i pulsanti. myBtn1_btn.enabled = true; myBtn2_btn.enabled = false; //button code // the following function will not get called // because myBtn2_btn.enabled was set to false myBtn1_btn.onRelease = function() { trace( "you clicked : " + this._name ); }; myBtn2_btn.onRelease = function() { trace( "you clicked : " + this._name ); }; _focusrect (proprietà Button._focusrect) public _focusrect : Boolean Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 229 Classi ActionScript Un valore booleano che specifica se attorno a un pulsante è presente un rettangolo giallo quando il pulsante viene attivato. Questa proprietà può sostituire la proprietà _focusrect globale. Per impostazione predefinita, la proprietà _focusrect di un'istanza di pulsante è null; l'istanza di pulsante non sostituisce la proprietà _focusrect globale. Se la proprietà _focusrect di un'istanza di pulsante è true o false, sostituisce l'impostazione della proprietà _focusrect globale della singola istanza di pulsante. Nei file SWF di Flash Player 4 o Flash Player 5, la proprietà _focusrect controlla la proprietà _focusrect globale. Si tratta di un valore booleano. Questo comportamento è stato modificato in Flash Player 6 e versioni successive per consentire la personalizzazione della proprietà _focusrect di un clip filmato singolo. Se la proprietà _focusrect è impostata su false, per il pulsante la navigazione mediante tastiera è limitata al tasto Tab. Tutti gli altri tasti vengono ignorati, compresi Invio e i tasti freccia. Per ripristinare la navigazione mediante tutta la tastiera, è necessario impostare _focusrect su true. Nota: nel lettore di Flash Lite 2.0, quando la proprietà _focusrect è disabilitata (ad esempio, Button.focusRect is false), il pulsante riceve tutti gli eventi. Questo comportamento è diverso rispetto al player Flash Lite, dove, se la proprietà _focusrect è disabilitata, il pulsante riceve gli eventi rollOver e rollOut ma non gli eventi press e release. Inoltre, in Flash Lite 2.0, è possibile modificare il colore del rettangolo di attivazione mediante il comando SetFocusRectColor. Al contrario, nel player Flash Lite, il rettangolo di attivazione può essere solo di colore giallo. Disponibilità Flash Lite 2.0 Esempio L'esempio mostra come nascondere il rettangolo giallo attorno a un'istanza di pulsante specificata di un file SWF quando questa è stata attivata mediante tastiera in una finestra del browser. Creare tre pulsanti di nome myBtn1_btn, myBtn2_btn e myBtn3_btn, quindi aggiungere il codice ActionScript seguente al fotogramma 1 della linea temporale: myBtn2_btn._focusrect = false; getDepth (metodo Button.getDepth) public getDepth() : Number Restituisce la profondità dell'istanza del pulsante. A ogni clip filmato, pulsante e campo di testo è associata una profondità univoca che determina il modo in cui l'oggetto viene visualizzato davanti o dietro ad altri oggetti. Gli oggetti con profondità superiori compaiono in primo piano. Disponibilità Flash Lite 2.0 Restituisce Number - La profondità dell'istanza del pulsante. Esempio Se si crea myBtn1_btn e myBtn2_btn sullo stage, è possibile tracciarne la profondità mediante il codice ActionScript seguente: trace(myBtn1_btn.getDepth()); trace(myBtn2_btn.getDepth()); Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 230 Classi ActionScript Se si carica un file SWF di nome buttonMovie.swf in questo documento, è possibile tracciare la profondità di un pulsante di nome myBtn4_btn all'interno del file SWF mediante un altro pulsante nel file SWF principale: this.createEmptyMovieClip("myClip_mc", 999); myClip_mc.loadMovie("buttonMovie.swf"); myBtn3_btn.onRelease = function(){ trace(myClip_mc.myBtn4_btn.getDepth()); }; Come si noterà, due di questi pulsanti hanno lo stesso valore di profondità, uno nel file SWF principale e uno nel file SWF caricato. Si tratta tuttavia di una situazione fuorviante, poiché buttonMovie.swf è stato caricato con profondità 999, che significa che anche il pulsante che esso contiene ha profondità 999 relativa ai pulsanti del file SWF principale. È importante tenere presente che ogni clip filmato ha uno z-order interno; in altre parole, ogni clip filmato è dotato di un proprio set di valori di profondità. È possibile che i due pulsanti abbiano lo stesso valore di profondità, tuttavia i valori hanno un significato solo in relazione agli altri oggetti dello stesso z-order. In questo caso, i pulsanti hanno lo stesso valore di profondità ma i valori sono relativi a clip filmato diversi: il valore di profondità del pulsante nel file SWF principale è relativo allo z-order della linea temporale principale, mentre il valore di profondità del pulsante SWF caricato è relativo allo z-order interno del clip filmato myClip_mc. Vedete anche getDepth (metodo MovieClip.getDepth), getDepth (metodo TextField.getDepth), getInstanceAtDepth (metodo MovieClip.getInstanceAtDepth) _height (proprietà Button._height) public _height : Number L'altezza del pulsante espressa in pixel. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente imposta l'altezza e la larghezza specificate per un pulsante di nome my_btn. my_btn._width = 500; my_btn._height = 200; _highquality (proprietà Button._highquality) public _highquality : Number Sconsigliata a partire da Flash Player 7. Questa proprietà è stata sconsigliata a favore di Button._quality. Specifica il livello di antialiasing applicato al file SWF corrente. Specificare 2 (migliore qualità) per applicare un'alta qualità con lo smussamento bitmap sempre abilitato. Specificare 1 (alta qualità) per applicare l'antialiasing; le immagini bitmap vengono attenuate se il file SWF non contiene animazioni ed è il valore predefinito. Specificare 0 (bassa qualità) per impedire l'antialiasing. Disponibilità Flash Lite 2.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 231 Classi ActionScript Esempio Aggiungere un'istanza di pulsante allo stage e denominarlo myBtn_btn. Disegnare un ovale sullo stage mediante lo strumento Ovale per cui sia stato impostato il colore del tratto e del riempimento. Selezionare il fotogramma 1 e aggiungere il codice ActionScript seguente mediante il pannello Azioni: myBtn_btn.onRelease = function() { myBtn_btn._highquality = 0; }; Quando si fa clic su myBtn_btn, il tratto del cerchio appare irregolare. È possibile aggiungere il codice ActionScript seguente per interessare tutto il file SWF: _quality = 0; Vedete anche _quality (proprietà Button._quality), Proprietà _quality _name (proprietà Button._name) public _name : String Il nome di istanza del pulsante specificato da my_btn. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente traccia tutti i nomi di istanza per le istanze di Button all'interno della linea temporale corrente di un file SWF. for (i in this) { if (this[i] instanceof Button) { trace(this[i]._name); } } onDragOut (gestore Button.onDragOut) onDragOut = function() {} Richiamato quando si preme il pulsante del mouse sul pulsante e successivamente si trascina il puntatore al di fuori di esso. È necessario definire una funzione che venga eseguita nel momento in cui il gestore di eventi viene richiamato. Nota: il Gestore di eventi onDragOut è supportato in Flash Lite 2.0 solo se System.capabilities.hasMouse è true o System.capabilities.hasStylus è true. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente mostra come eseguire delle istruzioni quando il puntatore viene trascinato fuori da un pulsante. Creare un pulsante di nome my_btn sullo stage, quindi immettere il codice ActionScript seguente in un fotogramma della linea temporale: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 232 Classi ActionScript my_btn.onDragOut = function() { trace("onDragOut: "+this._name); }; my_btn.onDragOver = function() { trace("onDragOver: "+this._name); }; onDragOver (gestore Button.onDragOver) onDragOver = function() {} Richiamato quando si preme il pulsante del mouse al di fuori del pulsante e successivamente si trascina il puntatore sul pulsante. È necessario definire una funzione che venga eseguita nel momento in cui il gestore di eventi viene richiamato. Nota: il Gestore di eventi onDragOver è supportato in Flash Lite 2.0 solo se System.capabilities.hasMouse è true o System.capabilities.hasStylus è true. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente definisce una funzione per il gestore onDragOver che invia un'istruzione trace() al pannello Output. Creare un pulsante di nome my_btn, quindi immettere il codice ActionScript seguente nella linea temporale: my_btn.onDragOut = function() { trace("onDragOut: "+this._name); }; my_btn.onDragOver = function() { trace("onDragOver: "+this._name); }; Quando si prova il file SWF, trascinare il puntatore fuori dell'istanza di pulsante. Quindi, tenendo premuto il pulsante del mouse, trascinarlo nuovamente su di essa. Il pannello Output tiene traccia dei movimenti. Vedete anche onDragOut (gestore Button.onDragOut) onKeyDown (gestore Button.onKeyDown) onKeyDown = function() {} Richiamato quando un pulsante è stato attivato mediante tastiera e viene premuto un tasto. Il gestore di eventi onKeyDown viene richiamato senza parametri. I metodi Key.getAscii() e Key.getCode() consentono di determinare quale tasto è stato premuto. È necessario definire una funzione che venga eseguita nel momento in cui il gestore di eventi viene richiamato. Disponibilità Flash Lite 2.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 233 Classi ActionScript Esempio Nell'esempio seguente, una funzione che invia del testo al pannello Output viene definita per il gestore onKeyDown. Creare un pulsante di nome my_btn sullo stage, quindi immettere il codice ActionScript seguente in un fotogramma della linea temporale: my_btn.onKeyDown = function() { trace("onKeyDown: "+this._name+" (Key: "+getKeyPressed()+")"); }; function getKeyPressed():String { var theKey:String; switch (Key.getAscii()) { case Key.BACKSPACE : theKey = "BACKSPACE"; break; case Key.SPACE : theKey = "SPACE"; break; default : theKey = chr(Key.getAscii()); } return theKey; } Selezionare Controllo > Prova filmato per provare il file SWF. Assicurarsi di aver selezionato Controllo > Disattiva tasti di scelta rapida nell'ambiente di prova. Quindi, premere il tasto Tab finché il pulsante non diventa attivo (un rettangolo giallo viene visualizzato attorno all'istanza di my_btn) e iniziare a premere i tasti della tastiera. Quando vengono premuti, i tasti vengono visualizzati nel pannello Output. Vedete anche onKeyUp (gestore Button.onKeyUp), getAscii (metodo Key.getAscii), getCode (metodo Key.getCode) onKeyUp (gestore Button.onKeyUp) onKeyUp = function() {} Richiamato quando un pulsante è stato attivato e viene rilasciato un tasto. Il gestore di eventi onKeyUp viene richiamato senza parametri. I metodi Key.getAscii() e Key.getCode() consentono di determinare quale tasto è stato premuto. Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente, una funzione che invia del testo al pannello Output viene definita per il gestore onKeyDown. Creare un pulsante di nome my_btn sullo stage, quindi immettere il codice ActionScript seguente in un fotogramma della linea temporale: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 234 Classi ActionScript my_btn.onKeyDown = function() { trace("onKeyDown: "+this._name+" (Key: "+getKeyPressed()+")"); }; my_btn.onKeyUp = function() { trace("onKeyUp: "+this._name+" (Key: "+getKeyPressed()+")"); }; function getKeyPressed():String { var theKey:String; switch (Key.getAscii()) { case Key.BACKSPACE : theKey = "BACKSPACE"; break; case Key.SPACE : theKey = "SPACE"; break; default : theKey = chr(Key.getAscii()); } return theKey; } Premere Ctrl+Invio per provare il file SWF. Assicurarsi di aver selezionato Controllo > Disattiva tasti di scelta rapida nell'ambiente di prova. Quindi, premere il tasto Tab finché il pulsante non diventa attivo (un rettangolo giallo viene visualizzato attorno all'istanza di my_btn) e iniziare a premere i tasti della tastiera. Quando vengono premuti, i tasti vengono visualizzati nel pannello Output. Vedete anche onKeyDown (gestore Button.onKeyDown), getAscii (metodo Key.getAscii), getCode (metodo Key.getCode) onKillFocus (gestore Button.onKillFocus) onKillFocus = function(newFocus:Object) {} Richiamato quando un pulsante viene disattivato mediante tastiera. Il gestore onKillFocus riceve un solo parametro, newFocus, che è un oggetto che rappresenta il nuovo oggetto che viene attivato. Se non viene attivato alcun oggetto, newFocus contiene il valore null. Disponibilità Flash Lite 2.0 Parametri newFocus:Object - L'oggetto che viene attivato. Esempio L'esempio seguente mostra come è possibile eseguire le istruzioni quando un pulsante non è più l'elemento attivo. Creare un'istanza di pulsante di nome my_btn sullo stage, quindi immettere il codice ActionScript seguente nel fotogramma 1 della linea temporale: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 235 Classi ActionScript this.createTextField("output_txt", this.getNextHighestDepth(), 0, 0, 300, 200); output_txt.wordWrap = true; output_txt.multiline = true; output_txt.border = true; my_btn.onKillFocus = function() { output_txt.text = "onKillFocus: "+this._name+newline+output_txt.text; }; Provare il file SWF in una finestra del browser e provare a utilizzare il tasto Tab per spostarsi tra gli elementi della finestra. Quando l'istanza del pulsante non è più l'elemento attivo, il testo viene inviato nel campo di testo output_txt. onPress (gestore Button.onPress) onPress = function() {} Richiamato quando viene premuto un pulsante. È necessario definire una funzione che venga eseguita nel momento in cui il gestore di eventi viene richiamato. Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente, una funzione che invia un'istruzione trace() al pannello Output viene definita per il gestore onPress: my_btn.onPress = function () { trace ("onPress called"); }; onRelease (gestore Button.onRelease) onRelease = function() {} Richiamato quando viene rilasciato un pulsante. È necessario definire una funzione che venga eseguita nel momento in cui il gestore di eventi viene richiamato. Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente, una funzione che invia un'istruzione trace() al pannello Output viene definita per il gestore onRelease: my_btn.onRelease = function () { trace ("onRelease called"); }; onReleaseOutside (gestore Button.onReleaseOutside) onReleaseOutside = function() {} Richiamato quando il mouse viene rilasciato mentre il puntatore si trova fuori del pulsante dopo che il pulsante è stato premuto mentre il puntatore si trovava all'interno del pulsante. È necessario definire una funzione che venga eseguita nel momento in cui il gestore di eventi viene richiamato. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 236 Classi ActionScript Nota: il Gestore di eventi onReleaseOutside è supportato in Flash Lite 2.0 solo se System.capabilities.hasMouse è true o System.capabilities.hasStylus è true. Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente, una funzione che invia un'istruzione trace() al pannello Output viene definita per il gestore onReleaseOutside. my_btn.onReleaseOutside = function () { trace ("onReleaseOutside called"); }; onRollOut (gestore Button.onRollOut) onRollOut = function() {} Richiamato quando un pulsante viene disattivato. Questa situazione può verificarsi quando l'utente fa clic su un altro pulsante o su un'area al di fuori del pulsante attualmente selezionato. È necessario definire una funzione che venga eseguita nel momento in cui il gestore di eventi viene richiamato. Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente, una funzione che invia un'istruzione trace() al pannello Output viene definita per il gestore onRollOut: my_btn.onRollOut = function () { trace ("onRollOut called"); }; onRollOver (gestore Button.onRollOver) onRollOver = function() {} Richiamato quando un pulsante viene attivato. Questa situazione può verificarsi quando l'utente fa clic su un altro pulsante al di fuori del pulsante attualmente selezionato. Richiamato quando il puntatore viene spostato sopra l'area del pulsante. È necessario definire una funzione che venga eseguita nel momento in cui il gestore di eventi viene richiamato. Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente, una funzione che invia un'istruzione trace() al pannello Output viene definita per il gestore onRollOver: my_btn.onRollOver = function () { trace ("onRollOver called"); }; Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 237 Classi ActionScript onSetFocus (gestore Button.onSetFocus) onSetFocus = function(oldFocus:Object) {} Richiamato quando un pulsante viene attivato mediante tastiera. Il parametro oldFocus indica l'oggetto che viene disattivato. Ad esempio, se l'utente preme il tasto Tab per passare da un campo di testo a un pulsante, oldFocus contiene l'istanza del campo di testo. Se in precedenza non è stato attivato alcun oggetto, oldFocus contiene il valore null. Disponibilità Flash Lite 2.0 Parametri oldFocus:Object - L'oggetto che viene disattivato da tastiera. Esempio L'esempio seguente mostra come eseguire le istruzioni quando l'utente di un file SWF passa da un pulsante a un altro mediante tastiera. Creare due pulsanti di nome btn1_btn e btn2_btn, quindi immettere il codice ActionScript seguente nel fotogramma 1 della linea temporale: Selection.setFocus(btn1_btn); trace(Selection.getFocus()); btn2_btn.onSetFocus = function(oldFocus) { trace(oldFocus._name + "lost focus"); }; Provare il file SWF premendo Ctrl+Invio. Assicurarsi di aver selezionato Controllo > Disattiva tasti di scelta rapida. L'elemento attivo è btn1_btn. Quando l'elemento attivo passa da btn1_btn a btn2_btn, l'informazione viene visualizzata nel pannello Output. _parent (proprietà Button._parent) public _parent : MovieClip Un riferimento al clip filmato o all'oggetto che contiene il clip filmato o l'oggetto corrente. L'oggetto corrente è quello che contiene il codice ActionScript che fa riferimento a _parent. Utilizzare _parent per specificare un percorso relativo dei clip filmati oppure oggetti che si trovano sopra il clip filmato oppure l'oggetto corrente. È possibile utilizzare _parent per spostare verso l'alto più livelli nell'elenco di visualizzazione, come illustrato di seguito: this._parent._parent._alpha = 20; Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente, un pulsante di nome my_btn viene collocato in un clip filmato di nome my_mc. Il codice seguente mostra come utilizzare la proprietà _parent per ottenere un riferimento al clip filmato my_mc: trace(my_mc.my_btn._parent); Il pannello Output visualizza: _level0.my_mc Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 238 Classi ActionScript Vedete anche _parent (proprietà MovieClip._parent), _target (proprietà MovieClip._target), Proprietà _root _quality (proprietà Button._quality) public _quality : String Proprietà (globale); imposta o recupera la qualità di rendering utilizzata per un file SWF. I caratteri del dispositivo sono sottoposti ad aliasing e pertanto non vengono modificati dalla proprietà _quality. La proprietà _quality può essere impostata sui valori seguenti: • "LOW" Qualità di rendering bassa. Le immagini non vengono sottoposte ad aliasing e le bitmap non vengono smussate. • "MEDIUM" Qualità di rendering media. Le immagini vengono sottoposte ad aliasing utilizzando una griglia di 2 x 2 pixel, ma le bitmap non vengono smussate. Si tratta di una funzionalità adatta per i filmati che non contengono testo. • "HIGH" Qualità di rendering alta. Le immagini vengono sottoposte ad aliasing utilizzando una griglia di 4 x 4 pixel e le bitmap vengono smussate se il filmato è statico. È l'impostazione predefinita di Flash per la qualità di rendering. Nota: benché sia possibile specificare questa proprietà per un oggetto Button, si tratta in realtà di una proprietà globale ed è possibile specificarne il valore semplicemente come _quality. Disponibilità Flash Lite 2.0 Esempio Questo esempio imposta la qualità di rendering di un pulsante di nome my_btn su LOW: my_btn._quality = "LOW"; _rotation (proprietà Button._rotation) public _rotation : Number La rotazione del pulsante, espressa in pixel, rispetto alla posizione originale. I valori da 0 a 180 rappresentano la rotazione oraria, quelli da 0 a -180 la rotazione antioraria. I valori esterni a questo intervallo vengono aggiunti o sottratti a 360 per ottenere un valore interno all'intervallo. Ad esempio, l'istruzione my_btn._rotation = 450 è uguale a my_btn._rotation = 90. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente ruota due pulsanti sullo stage. Create due pulsanti sullo stage di nome control_btn e my_btn. Assicuratevi che my_btn non sia perfettamente circolare, in modo da poterne osservare la rotazione. Quindi, immettete il codice ActionScript seguente nel fotogramma 1 della linea temporale: var control_btn:Button; var my_btn:Button; control_btn.onRelease = function() { my_btn._rotation += 10; }; Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 239 Classi ActionScript A questo punto, create un altro pulsante sullo stage di nome myOther_btn, verificando che non sia perfettamente circolare, per poterne osservare la rotazione. Immettete il codice ActionScript seguente nel fotogramma 1 della linea temporale. var myOther_btn:Button; this.createEmptyMovieClip("rotater_mc", this.getNextHighestDepth()); rotater_mc.onEnterFrame = function() { myOther_btn._rotation += 2; }; Vedete anche _rotation (proprietà MovieClip._rotation), _rotation (proprietà TextField._rotation) _soundbuftime (proprietà Button._soundbuftime) public _soundbuftime : Number Specifica il numero di secondi per cui un suono viene inserito nel prebuffer prima che ne inizi lo streaming. Nota: benché sia possibile specificare questa proprietà per un oggetto Button, si tratta in realtà di una proprietà globale che si applica a tutti i suoni caricati ed è possibile specificarne il valore semplicemente come _soundbuftime. Se si imposta questa proprietà per un oggetto Button, in realtà viene impostata la proprietà globale. Per ulteriori informazioni e un esempio, vedete _soundbuftime. Disponibilità Flash Lite 2.0 Vedete anche Proprietà _soundbuftime tabEnabled (proprietà Button.tabEnabled) public tabEnabled : Boolean Specifica se my_btn è incluso nell'ordine di tabulazione automatico. Non è definito per impostazione predefinita. Se la proprietà tabEnablednon è definita o true, l'oggetto viene incluso nell'ordine di tabulazione automatico. Se anche la proprietà tabIndex è impostata su un valore, l'oggetto viene incluso a sua volta nell'ordine di tabulazione personalizzato. Se tabEnabled è false, l'oggetto non viene incluso nell'ordine di tabulazione automatico o personalizzato, nemmeno nel caso in cui la proprietà tabIndex sia impostata. Disponibilità Flash Lite 2.0 Esempio Il codice ActionScript seguente viene utilizzato per impostare la proprietà tabEnabled per un pulsante su quattro su false. Tuttavia, tutti e quattro i pulsanti (one_btn, two_btn, three_btn e four_btn) vengono collocati in un ordine di tabulazione personalizzato mediante tabIndex. Benché tabIndex sia impostato su three_btn, three_btn non è incluso in un ordine di tabulazione personalizzato o automatico poiché tabIndex è impostato su false per tale istanza. Per impostare l'ordine di tabulazione dei quattro pulsanti, aggiungere il codice ActionScript seguente nel fotogramma 1 della linea temporale: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 240 Classi ActionScript three_btn.tabEnabled = false; two_btn.tabIndex = 1; four_btn.tabIndex = 2; three_btn.tabIndex = 3; one_btn.tabIndex = 4; Vedete anche tabIndex (proprietà Button.tabIndex), tabEnabled (proprietà MovieClip.tabEnabled), tabEnabled (proprietà TextField.tabEnabled) tabIndex (proprietà Button.tabIndex) public tabIndex : Number Consente di personalizzare l'ordine di tabulazione in un file SWF. È possibile impostare la proprietà tabIndex su un'istanza di pulsante, di clip filmato o di campo di testo; non è definita per impostazione predefinita. Se un qualunque oggetto visualizzato nel file SWF contiene una proprietà tabIndex, l'ordine di tabulazione automatico viene disabilitato e viene calcolato in base alle proprietà tabIndex degli oggetti presenti nel file SWF. L'ordine di tabulazione automatico include solo gli oggetti dotati delle proprietà tabIndex. La proprietà tabIndex può essere un numero intero non negativo. Gli oggetti vengono ordinati in base alle relative proprietà tabIndex, in ordine ascendente. Un oggetto con un valore tabIndex di 1 precede un oggetto con il valore tabIndex di 2. Se due oggetti hanno lo stesso valore tabIndex: quello che precede l'altro nell'ordine della scheda non è definito. L'ordine di tabulazione personalizzato definito dalla proprietà tabIndex è flat. In altre parole, non viene prestata alcuna attenzione alle relazioni gerarchiche degli oggetti nel file SWF. Tutti gli oggetti del file SWF dotati delle proprietà tabIndex vengono inseriti nell'ordine di tabulazione, il quale viene determinato dall'ordine dei valori di tabIndex. Se due oggetti hanno lo stesso valore di tabIndex, quello che precede l'altro non è definito. Pertanto è consigliabile non utilizzare lo stesso valore di tabIndex per più oggetti. Disponibilità Flash Lite 2.0 Esempio Il codice ActionScript seguente viene utilizzato per impostare la proprietà tabEnabled per un pulsante su quattro su false. Tuttavia, tutti e quattro i pulsanti (one_btn, two_btn, three_btn e four_btn) vengono collocati in un ordine di tabulazione personalizzato mediante tabIndex. Benché tabIndex sia impostato su three_btn, three_btn non è incluso in un ordine di tabulazione personalizzato o automatico poiché tabIndex è impostato su false per tale istanza. Per impostare l'ordine di tabulazione dei quattro pulsanti, aggiungere il codice ActionScript seguente nel fotogramma 1 della linea temporale: three_btn.tabEnabled = false; two_btn.tabIndex = 1; four_btn.tabIndex = 2; three_btn.tabIndex = 3; one_btn.tabIndex = 4; Vedete anche tabEnabled (proprietà Button.tabEnabled), tabChildren (proprietà MovieClip.tabChildren), tabEnabled (proprietà MovieClip.tabEnabled), tabIndex (proprietà MovieClip.tabIndex), tabIndex (proprietà TextField.tabIndex) Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 241 Classi ActionScript _target (proprietà Button._target) public _target : String [read-only] Restituisce il percorso target dell'istanza di pulsante specificata da my_btn. Disponibilità Flash Lite 2.0 Esempio Aggiungere allo stage un'istanza di pulsante di nome my_btn, quindi aggiungere il codice seguente nel fotogramma 1 della linea temporale: trace(my_btn._target); //displays /my_btn Selezionare my_btn e convertirlo in clip filmato. Assegnare al nuovo clip filmato il nome di istanza my_mc. Eliminare il codice ActionScript esistente nel fotogramma 1 della linea temporale e sostituirlo con: my_mc.my_btn.onRelease = function(){ trace(this._target); //displays /my_mc/my_btn }; Per convertire la notazione dalla barra al punto, modificare il codice di esempio precedente nel modo seguente: my_mc.my_btn.onRelease = function(){ trace(eval(this._target)); //displays _level0.my_mc.my_btn }; In questo modo è possibile accedere ai metodi e ai parametri dell'oggetto target: my_mc.my_btn.onRelease = function(){ var target_btn:Button = eval(this._target); trace(target_btn._name); //displays my_btn }; Vedete anche _target (proprietà MovieClip._target) trackAsMenu (proprietà Button.trackAsMenu) public trackAsMenu : Boolean Un valore booleano che indica se altri pulsanti o clip filmato possono ricevere eventi associati al rilascio del mouse o dello stilo. Se si trascina uno stilo o un puntatore di mouse su un pulsante e successivamente lo si rilascia su un altro pulsante, l'evento onRelease viene registrato per il secondo pulsante. In questo modo è possibile creare i menu per il secondo pulsante. È possibile impostare la proprietà trackAsMenu su qualunque oggetto pulsante o clip filmato. Se la proprietà trackAsMenu non è stata definita, il comportamento predefinito è false. È possibile modificare la proprietà trackAsMenu in qualsiasi momento; al pulsante modificato viene immediatamente associato il nuovo comportamento. Nota: la proprietà trackAsMenu è supportata in Flash Lite 2.0 solo se System.capabilities.hasMouse è true o System.capabilities.hasStylus è true. Disponibilità Flash Lite 2.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 242 Classi ActionScript Esempio L'esempio seguente mostra come registrare due pulsanti come menu. Collocare sullo stage due istanze di pulsante di nome one_btn e two_btn. Immettere il codice ActionScript seguente nella linea temporale: var one_btn:Button; var two_btn:Button; one_btn.trackAsMenu = true; two_btn.trackAsMenu = true; one_btn.onRelease = function() { trace("clicked one_btn"); }; two_btn.onRelease = function() { trace("clicked two_btn"); }; Per provare il file SWF, fare clic su one_btn sullo stage, tenendo premuto il pulsante del mouse e rilasciandolo su two_btn. Quindi, provare a escludere le due righe del codice ActionScript che contengono trackAsMenu e provare nuovamente il file SWF per osservare la differenza nel comportamento dei pulsanti. Vedete anche trackAsMenu (proprietà MovieClip.trackAsMenu) _url (proprietà Button._url) public _url : String [read-only] Recupera l'URL del file SWF che ha creato il pulsante. Disponibilità Flash Lite 2.0 Esempio Creare sullo stage due istanze di pulsante di nome one_btn e two_btn. Immettere il codice seguente nel fotogramma 1 della linea temporale: var one_btn:Button; var two_btn:Button; this.createTextField("output_txt", 999, 0, 0, 100, 22); output_txt.autoSize = true; one_btn.onRelease = function() { trace("clicked one_btn"); trace(this._url); }; two_btn.onRelease = function() { trace("clicked "+this._name); var url_array:Array = this._url.split("/"); var my_str:String = String(url_array.pop()); output_txt.text = unescape(my_str); }; Quando si fa clic su ciascun pulsante, il nome del file SWF che contiene i pulsanti viene visualizzato nel pannello Output. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 243 Classi ActionScript _visible (proprietà Button._visible) public _visible : Boolean Un valore booleano che indica se il pulsante specificato da my_btn è visibile. I pulsanti non visibili (quelli con la proprietà _visible impostata su false) sono disabilitati. Disponibilità Flash Lite 2.0 Esempio Creare due pulsanti sullo stage e assegnare loro i nomi di istanza myBtn1_btn e myBtn2_btn. Immettere il codice seguente nel fotogramma 1 della linea temporale: myBtn1_btn.onRelease = function() { this._visible = false; trace("clicked "+this._name); }; myBtn2_btn.onRelease = function() { this._alpha = 0; trace("clicked "+this._name); }; Si noti che è ancora possibile fare clic su myBtn2_btn dopo che il valore della trasparenza alfa è stata impostato su 0. Vedete anche _visible (proprietà MovieClip._visible), _visible (proprietà TextField._visible) _width (proprietà Button._width) public _width : Number La larghezza del pulsante espressa in pixel. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente aumenta la proprietà width di un pulsante di nome my_btn e visualizza la larghezza nel pannello Output. Immettere il codice seguente nel fotogramma 1 della linea temporale: my_btn.onRelease = function() { trace(this._width); this._width ~= 1.1; }; Vedete anche _width (proprietà MovieClip._width) _x (Button._x, proprietà) public _x : Number Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 244 Classi ActionScript Un numero intero che imposta la coordinata x di un pulsante relativa alle coordinate locali del clip filmato principale. Se un pulsante si trova sulla linea temporale principale, le sue coordinate considerano l'angolo superiore sinistro dello stage come punto (0, 0). Se è all'interno di un clip filmato che contiene delle trasformazioni, il pulsante utilizza il sistema di coordinate locali del clip filmato. Pertanto, se un clip filmato viene ruotato di 90 gradi in senso antiorario, il pulsante racchiuso nel clip eredita un sistema di coordinate che è ruotato di 90 gradi in senso antiorario. Le coordinate del pulsante sono relative al punto di registrazione. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente imposta su 0 le coordinate di my_btn sullo stage. Creare un pulsante di nome my_btn, quindi immettere il codice ActionScript seguente nel fotogramma 1 della linea temporale: my_btn._x = 0; my_btn._y = 0; Vedete anche _xscale (proprietà Button._xscale), _y (Button._y, proprietà), _yscale (proprietà Button._yscale) _xmouse (proprietà Button._xmouse) public _xmouse : Number [read-only] Restituisce la coordinata x della posizione del mouse relativa al pulsante. Nota: la proprietà _xmouse è supportata in Flash Lite 2.0 solo se System.capabilities.hasMouse è true o System.capabilities.hasStylus è true. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente visualizza la coordinata x della posizione del mouse per lo stage e un pulsante di nome my_btn che viene collocato sullo stage. Immettere il codice seguente nel fotogramma 1 della linea temporale: this.createTextField("mouse_txt", 999, 5, 5, 150, 40); mouse_txt.html = true; mouse_txt.wordWrap = true; mouse_txt.border = true; mouse_txt.autoSize = true; mouse_txt.selectable = false; // var mouseListener:Object = new Object(); mouseListener.onMouseMove = function() { var table_str:String = "<textformat tabstops='[50,100]'>"; table_str += "<b>Stage</b>\t"+"x:"+_xmouse+"\t"+"y:"+_ymouse+newline; table_str += "<b>Button</b>\t"+"x:"+my_btn._xmouse+"\t"+"y:"+my_btn._ymouse+newline; table_str += "</textformat>"; mouse_txt.htmlText = table_str; }; Mouse.addListener(mouseListener); Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 245 Classi ActionScript Vedete anche _ymouse (proprietà Button._ymouse) _xscale (proprietà Button._xscale) public _xscale : Number La scala orizzontale del pulsante applicata dal punto di registrazione del pulsante, espressa sotto forma di percentuale. Il punto di registrazione predefinito è (0,0). Se si modifica in scala il sistema di coordinate locale, vengono cambiate anche le impostazioni delle proprietà _x e _y, che sono definite in pixel. Ad esempio, quando il clip filmato principale viene modificato in scala del 50%, se si imposta la proprietà _x, un oggetto nel pulsante viene spostato per la metà dei pixel per cui verrebbe spostato se il file SWF fosse al 100% delle proprie dimensioni. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente modifica in scala un pulsante di nome my_btn. Quando si fa clic sul pulsante e lo si rilascia, le relative coordinate x e y aumentano del 10%. Immettere il codice seguente nel fotogramma 1 della linea temporale: my_btn.onRelease = function(){ this._xscale ~= 1.1; this._yscale ~= 1.1; }; Vedete anche _x (Button._x, proprietà), _y (Button._y, proprietà), _yscale (proprietà Button._yscale) _y (Button._y, proprietà) public _y : Number La coordinata y del pulsante relativa alle coordinate locali del clip filmato principale. Se un pulsante si trova sulla linea temporale principale, le sue coordinate considerano l'angolo superiore sinistro dello stage come punto (0, 0). Se è all'interno di un altro clip filmato che contiene delle trasformazioni, il pulsante utilizza il sistema di coordinate locali del clip filmato. Pertanto, se un clip filmato viene ruotato di 90 gradi in senso antiorario, il pulsante racchiuso nel clip eredita un sistema di coordinate che è ruotato di 90 gradi in senso antiorario. Le coordinate del pulsante sono relative al punto di registrazione. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente imposta su 0 le coordinate di my_btn sullo stage. Creare un pulsante di nome my_btn, quindi immettere il codice ActionScript seguente nel fotogramma 1 della linea temporale: my_btn._x = 0; my_btn._y = 0; Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 246 Classi ActionScript Vedete anche _x (Button._x, proprietà), _xscale (proprietà Button._xscale), _yscale (proprietà Button._yscale) _ymouse (proprietà Button._ymouse) public _ymouse : Number [read-only] Restituisce la coordinata y della posizione del mouse relativa al pulsante. Nota: la proprietà _ymouse è supportata in Flash Lite 2.0 solo se System.capabilities.hasMouse è true o System.capabilities.hasStylus è true. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente visualizza la coordinata x della posizione del mouse per lo stage e un pulsante di nome my_btn che viene collocato sullo stage. Immettere il codice seguente nel fotogramma 1 della linea temporale: this.createTextField("mouse_txt", 999, 5, 5, 150, 40); mouse_txt.html = true; mouse_txt.wordWrap = true; mouse_txt.border = true; mouse_txt.autoSize = true; mouse_txt.selectable = false; // var mouseListener:Object = new Object(); mouseListener.onMouseMove = function() { var table_str:String = "<textformat tabstops='[50,100]'>"; table_str += "<b>Stage</b>\t"+"x:"+_xmouse+"\t"+"y:"+_ymouse+newline; table_str += "<b>Button</b>\t"+"x:"+my_btn._xmouse+"\t"+"y:"+my_btn._ymouse+newline; table_str += "</textformat>"; mouse_txt.htmlText = table_str; }; Mouse.addListener(mouseListener); Vedete anche _xmouse (proprietà Button._xmouse) _yscale (proprietà Button._yscale) public _yscale : Number La scala verticale del pulsante applicata dal punto di registrazione del pulsante, espressa sotto forma di percentuale. Il punto di registrazione predefinito è (0,0). Disponibilità Flash Lite 2.0 Esempio L'esempio seguente modifica in scala un pulsante di nome my_btn. Quando si fa clic sul pulsante e lo si rilascia, le relative coordinate x e y aumentano del 10%. Immettere il codice seguente nel fotogramma 1 della linea temporale: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 247 Classi ActionScript my_btn.onRelease = function(){ this._xscale ~= 1.1; this._yscale ~ 1.1; }; Vedete anche _y (Button._y, proprietà), _x (Button._x, proprietà), _xscale (proprietà Button._xscale) capabilities (System.capabilities) Object | +-System.capabilities public class capabilities extends Object La classe Capabilities determina le funzionalità del sistema e del lettore che eseguono il file SWF, consentendo di personalizzare il contenuto per diversi formati. Ad esempio, lo schermo di un dispositivo mobile è diverso da quello di un computer. Per offrire il contenuto appropriato al maggior numero possibile di utenti, è possibile utilizzare l'oggetto System.capabilities per determinare il tipo di dispositivo utilizzato da ogni singolo utente. È quindi possibile specificare al server di inviare file SWF diversi a seconda delle funzionalità del dispositivo oppure indicare al file SWF di alterare la propria presentazione in base alle funzionalità del dispositivo. È possibile inviare informazioni sulle funzionalità mediante il metodo HTTP GET or POST. L'esempio seguente mostra una stringa relativa a un dispositivo mobile: • che indica un orientamento di schermo normale • che esegue una lingua non determinata • su cui è eseguito il sistema operativo Symbian7.0sSeries60V2 • configurato in modo che l'utente non possa accedere al disco rigido, alla fotocamera o al microfono • che ha il lettore Flash Lite come versione ufficiale • per il quale il lettore Flash Lite non supporta lo sviluppo né la riproduzione di applicazioni di trasmissione su schermo da eseguire mediante Flash Media Server • che non supporta la stampa sul dispositivo • che indica che il lettore Flash Lite è in esecuzione su un dispositivo mobile che supporta il video incorporato undefinedScreenOrientation=normal language=xu OS=Symbian7.0sSeries60V2 localFileReadDisable=true avHardwareDisable=true isDebugger=false hasScreenBroadcast=false hasScreenPlayback=false hasPrinting=false hasEmbeddedVideo=true La maggior parte delle proprietà dell'oggetto System.capabilities è di sola lettura. GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 248 Ultimo aggiornamento 4/5/2010 Classi ActionScript Disponibilità Flash Lite 2.0 Riepilogo delle proprietà Modificatori Proprietà Descrizione static audioMIMETypes:Array [sola lettura] Restituisce un array di tipi MIME per codec audio supportati da un dispositivo mobile. static avHardwareDisable:Boole Un valore booleano che specifica se l'accesso alla fotocamera an [sola lettura] e al microfono dell'utente è stato negato (true) o consentito (false) dall'amministratore. static has4WayKeyAS:Boolean [sola lettura] Valore booleano che è true se Flash Lite esegue il codice ActionScript associato a gestori di eventi di tastiera che a loro volta sono associati ai tasti sinistra, destra, su e giù. static hasAccessibility:Boolean [sola lettura] Un valore booleano, che è true se il lettore è in esecuzione in un ambiente che supporta la comunicazione tra il player Flash Lite e gli strumenti di supporto all'accessibilità, ed è false in caso contrario. static hasAudio:Boolean [sola lettura] Specifica se il sistema è dotato di funzionalità audio. static hasAudioEncoder:Boolea n [sola lettura] Specifica se il player Flash Lite è in grado di codificare lo streaming audio. static hasCMIDI:Boolean [sola lettura] Restituisce true se il dispositivo mobile è in grado di riprodurre dati audio in formato CMIDI. static hasCompoundSound:Boo Restituisce true se il lettore Flash Lite è in grado di elaborare lean [sola lettura] dati audio composti. static hasDataLoading:Boolean [sola lettura] Restituisce true se il lettore Flash Lite è in grado di caricare dati aggiuntivi in modo dinamico mediante chiamate a funzioni specifiche. static hasEmail:Boolean [sola lettura] Restituisce true se il lettore Flash Lite è in grado di inviare messaggi e-mail con il comando ActionScript GetURL. static hasEmbeddedVideo:Bool ean [sola lettura] Un valore booleano che indica se il dispositivo mobile supporta il video incorporato. static hasMappableSoftKeys:Bo olean Restituisce true se il dispositivo mobile consente di reimpostare o riassegnare etichette di tasti virtuali e gestire gli eventi di tali tasti. static hasMFI:Boolean [sola lettura] Restituisce true se il dispositivo mobile è in grado di riprodurre dati audio in formato MFi. static hasMIDI:Boolean [sola lettura] Restituisce true se il dispositivo mobile è in grado di riprodurre dati audio in formato MIDI. static hasMMS:Boolean [sola lettura] Restituisce true se il dispositivo mobile è in grado di inviare messaggi MMS con il comando ActionScript GetURL. static hasMouse:Boolean [sola lettura] Indica se il dispositivo mobile invia eventi collegati al mouse a un lettore di Flash Lite. static hasMP3:Boolean [sola lettura] Specifica se il dispositivo mobile è dotato di decodificatore MP3. GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 249 Ultimo aggiornamento 4/5/2010 Classi ActionScript Modificatori Proprietà Descrizione static hasPrinting:Boolean [sola lettura] Un valore booleano, che è true se il lettore è in esecuzione su un dispositivo mobile che supporta la stampa; false in caso contrario. static hasQWERTYKeyboard:Bo olean [sola lettura] Restituisce true se il lettore Flash Lite è in grado di elaborare codice ActionScript associato a tutti i tasti di una tastiera QWERTY standard, compreso il tasto BACKSPACE. static hasScreenBroadcast:Bool ean [sola lettura] Un valore booleano, che è true se il lettore supporta lo sviluppo di applicazioni di trasmissione su schermo da eseguire mediante Flash Media Server; false in caso contrario. static hasScreenPlayback:Boole an [sola lettura] Un valore booleano, che è true se il lettore supporta la riproduzione di applicazioni di trasmissione su schermo eseguite mediante Flash Media Server; false in caso contrario. static hasSharedObjects:Boolea n [sola lettura] Restituisce true se il contenuto Flash Lite che viene riprodotto in un'applicazione può accedere alla versione Flash Lite degli oggetti condivisi. static hasSMAF:Boolean [sola lettura] Restituisce true se il dispositivo mobile è in grado di riprodurre dati audio in formato SMAF. static hasSMS:Number [sola lettura] Indica se il dispositivo mobile è in grado di inviare messaggi SMS con il comando ActionScript GetURL. static hasStreamingAudio:Bool ean [sola lettura] Un valore booleano, che è true se il lettore è in grado di riprodurre l'audio in streaming; false in caso contrario. static hasStreamingVideo:Boole Un valore booleano che indica se il lettore è in grado di an [sola lettura] riprodurre il video in streaming. static hasStylus:Boolean [sola lettura] Indica se il dispositivo mobile supporta eventi correlati allo stilo. static hasVideoEncoder:Boolea n [sola lettura] Specifica se il player Flash Lite è in grado di codificare lo streaming video. static hasXMLSocket:Number [sola lettura] Indica se l'applicazione host supporta i socket XML. static imageMIMETypes:Array [sola lettura] Restituisce un array che contiene tutti i tipi MIME che la funzione loadMovie e i codec per un dispositivo mobile supportano per l'elaborazione delle immagini. static isDebugger:Boolean [sola lettura] Un valore booleano che indica se il lettore è una release ufficiale (false) o una speciale versione di debug (true). static language:String [sola lettura] Indica la lingua del sistema su cui è in esecuzione il lettore. static localFileReadDisable:Bool Un valore booleano che specifica se l'accesso in lettura al disco ean [sola lettura] rigido dell'utente è stato negato (true) o consentito (false) dall'amministratore. static MIMETypes:Array [sola lettura] Restituisce un array che contiene tutti i tipi MIME supportati dalla funzione loadMovie e dagli oggetti Sound e Video. static os:String [sola lettura] Una stringa che indica il sistema operativo corrente. static screenOrientation:String [sola lettura] System.capabilities che indica l'orientamento attuale Questa variabile membro dell'oggetto dello schermo. GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 250 Ultimo aggiornamento 4/5/2010 Classi ActionScript Modificatori Proprietà Descrizione static screenResolutionX:Numb er [sola lettura] Un numero intero che indica la risoluzione orizzontale massima dello schermo. static screenResolutionY:Numb er [sola lettura] Un numero intero che indica la risoluzione verticale massima dello schermo. static softKeyCount:Number [sola lettura] Indica il numero di tasti virtuali rimappabili supportati dal dispositivo mobile. static version:String [sola lettura] Una stringa che contiene le informazioni sulla piattaforma e la versione del player Flash Lite (ad esempio "WIN 7,1,0,0"). static videoMIMETypes:Array [sola lettura] Indica tutti i tipi MIME per video supportati dai codec del dispositivo mobile. Proprietà ereditate dalla classe Object constructor (proprietà Object.constructor), __proto__ (proprietà Object._proto)prototype (proprietà Object.prototype), __resolve (proprietà Object.__resolve) Riepilogo dei metodi Metodi ereditati dalla classe Object addProperty (metodo Object.addProperty), hasOwnProperty (metodo Object.hasOwnProperty)isPropertyEnumerable (metodo Object.isPropertyEnumerable)isPrototypeOf (metodo Object.isPrototypeOf)registerClass (metodo Object.registerClass), toString (metodo Object.toString)unwatch (metodo Object.unwatch), valueOf (metodo Object.valueOf)watch (metodo Object.watch) audioMIMETypes (proprietà capabilities.audioMIMETypes) public static audioMIMETypes : Array [read-only] Restituisce un array di tipi MIME per codec audio supportati da un dispositivo mobile. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente traccia il valore di questa proprietà di sola lettura: trace(System.capabilities.audioMIMETypes); avHardwareDisable (proprietà capabilities.avHardwareDisable) public static avHardwareDisable : Boolean [read-only] Un valore booleano che specifica se l'accesso alla fotocamera e al microfono dell'utente è stato negato (true) o consentito (false) dall'amministratore. La stringa server è AVD. Nota: in Flash Lite 2.0, il valore restituito è sempre true. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 251 Classi ActionScript Disponibilità Flash Lite 2.0 Esempio L'esempio seguente traccia il valore di questa proprietà di sola lettura: trace(System.capabilities.avHardwareDisable); has4WayKeyAS (proprietà capabilities.has4WayKeyAS) public static has4WayKeyAS : Boolean [read-only] Valore booleano che è true se Flash Lite esegue il codice ActionScript associato a gestori di eventi di tastiera che a loro volta sono associati ai tasti sinistra, destra, su e giù. In caso contrario, questa proprietà restituisce false. Se il valore di questa variabile è true, quando viene premuto uno dei tasti a quattro direzioni, il lettore cerca innanzitutto il gestore per il tasto. Se non ne viene trovato nessuno, viene eseguita la navigazione mediante i controlli di Flash. Tuttavia, se viene trovato un gestore di eventi, per il tasto non viene eseguita alcuna azione di navigazione. In altre parole, la presenza di un gestore "keypress" (pressione del tasto) per un tasto giù disabilita la possibilità di spostarsi verso il basso. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente traccia il valore di questa proprietà di sola lettura: trace(System.capabilities.has4WayKeyAS); hasAccessibility (proprietà capabilities.hasAccessibility) public static hasAccessibility : Boolean [read-only] Un valore booleano, che è true se il lettore è in esecuzione in un ambiente che supporta la comunicazione tra il player Flash Lite e gli strumenti di supporto all'accessibilità, ed è false in caso contrario. La stringa server è ACC. Nota: in Flash Lite 2.0, il valore restituito è sempre false. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente traccia il valore di questa proprietà di sola lettura: trace(System.capabilities.hasAccessibility); Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 252 Classi ActionScript hasAudio (proprietà capabilities.hasAudio) public static hasAudio : Boolean [read-only] Specifica se il sistema è dotato di funzionalità audio. Un valore booleano, che è true se il lettore è in esecuzione in un sistema dotato di funzionalità audio, ed è false in caso contrario. La stringa server è A. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente traccia il valore di questa proprietà di sola lettura: trace(System.capabilities.hasAudio); hasAudioEncoder (proprietà capabilities.hasAudioEncoder) public static hasAudioEncoder : Boolean [read-only] Specifica se il player Flash Lite è in grado di codificare lo streaming audio. Un valore booleano, che è true se il lettore è in grado di codificare uno streaming audio (ad esempio, quello catturato da un microfono); false in caso contrario. La stringa server è AE. Nota: in Flash Lite 2.0, il valore restituito è sempre false. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente traccia il valore di questa proprietà di sola lettura: trace(System.capabilities.hasAudioEncoder); hasCMIDI (proprietà capabilities.hasCMIDI) public static hasCMIDI : Boolean [read-only] Restituisce true se il dispositivo mobile è in grado di riprodurre dati audio in formato CMIDI. In caso contrario, questa proprietà restituisce false. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente traccia il valore di questa proprietà di sola lettura: trace(System.capabilities.hasCMIDI); Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 253 Classi ActionScript hasCompoundSound (proprietà capabilities.hasCompoundSound) public static hasCompoundSound : Boolean [read-only] Restituisce true se il lettore Flash Lite è in grado di elaborare dati audio composti. In caso contrario, restituisce false. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente traccia il valore di questa proprietà di sola lettura: trace(System.capabilities.hasCompoundSound); hasDataLoading (proprietà capabilities.hasDataLoading) public static hasDataLoading : Boolean [read-only] Restituisce true se il lettore Flash Lite è in grado di caricare dati aggiuntivi in modo dinamico mediante chiamate a funzioni specifiche. È possibile chiamare le funzioni specifiche seguenti: • loadMovie() • loadMovieNum() • loadVariables() • loadVariablesNum() • XML.parseXML() • Sound.loadSound() • MovieClip.loadVariables() • MovieClip.loadMovie() • MovieClipLoader.loadClip() • LoadVars.load() • LoadVars.sendAndLoad() In caso contrario, questa proprietà restituisce false. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente traccia il valore di questa proprietà di sola lettura: trace(System.capabilities.hasDataLoading); Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 254 Classi ActionScript hasEmail (proprietà capabilities.hasEmail) public static hasEmail : Boolean [read-only] Restituisce true se il lettore Flash Lite è in grado di inviare messaggi e-mail con il comando ActionScript GetURL. In caso contrario, questa proprietà restituisce false. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente traccia il valore di questa proprietà di sola lettura: trace(System.capabilities.hasEmail); hasEmbeddedVideo (proprietà capabilities.hasEmbeddedVideo) public static hasEmbeddedVideo : Boolean [read-only] Un valore booleano che indica se il dispositivo mobile supporta il video incorporato. Nota: la proprietà hasEmbeddedVideo è sempre true in Flash Lite 2.0 e Flash Lite 2.1, per indicare il supporto delle librerie per il video incorporato. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente traccia il valore di questa proprietà di sola lettura: trace(System.capabilities.hasEmbeddedVideo); hasMappableSoftKeys (proprietà capabilities.hasMappableSoftKeys) public static hasMappableSoftKeys : Boolean Restituisce true se il dispositivo mobile consente di reimpostare o riassegnare etichette di tasti virtuali e gestire gli eventi di tali tasti. In caso contrario, restituisce false. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente traccia il valore di questa proprietà di sola lettura: trace(System.capabilities.hasMappableSoftKeys); Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 255 Classi ActionScript hasMFI (proprietà capabilities.hasMFI) public static hasMFI : Boolean [read-only] Restituisce true se il dispositivo mobile è in grado di riprodurre dati audio in formato MFi. In caso contrario, questa proprietà restituisce false. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente traccia il valore di questa proprietà di sola lettura: trace(System.capabilities.hasMFI); hasMIDI (proprietà capabilities.hasMIDI) public static hasMIDI : Boolean [read-only] Restituisce true se il dispositivo mobile è in grado di riprodurre dati audio in formato MIDI. In caso contrario, questa proprietà restituisce false. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente traccia il valore di questa proprietà di sola lettura: trace(System.capabilities.hasMIDI); hasMMS (proprietà capabilities.hasMMS) public static hasMMS : Boolean [read-only] Restituisce true se il dispositivo mobile è in grado di inviare messaggi MMS con il comando ActionScript GetURL. In caso contrario, questa proprietà restituisce false. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente traccia il valore di questa proprietà di sola lettura: trace(System.capabilities.hasMMS); Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 256 Classi ActionScript hasMouse (proprietà capabilities.hasMouse) public static hasMouse : Boolean [read-only] Indica se il dispositivo mobile invia eventi collegati al mouse a un lettore di Flash Lite. Questa proprietà restituisce true se il dispositivo mobile invia eventi collegati al mouse a un lettore di Flash Lite. In caso contrario, restituisce false. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente traccia il valore di questa proprietà di sola lettura: trace(System.capabilities.hasMouse); hasMP3 (proprietà capabilities.hasMP3) public static hasMP3 : Boolean [read-only] Specifica se il dispositivo mobile è dotato di decodificatore MP3. Un valore booleano, che è true se il lettore è in esecuzione in un sistema dotato di decodificatore MP3, ed è false in caso contrario. La stringa server è MP3. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente traccia il valore di questa proprietà di sola lettura: trace(System.capabilities.hasMP3); hasPrinting (proprietà capabilities.hasPrinting) public static hasPrinting : Boolean [read-only] Un valore booleano, che è true se il lettore è in esecuzione su un dispositivo mobile che supporta la stampa; false in caso contrario. La stringa server è PR. Nota: in Flash Lite 2.0, il valore restituito è sempre false. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente traccia il valore di questa proprietà di sola lettura: trace(System.capabilities.hasPrinting); Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 257 Classi ActionScript hasQWERTYKeyboard (proprietà capabilities.hasQWERTYKeyboard) public static hasQWERTYKeyboard : Boolean [read-only] Restituisce true se il lettore Flash Lite è in grado di elaborare codice ActionScript associato a tutti i tasti di una tastiera QWERTY standard, compreso il tasto BACKSPACE. In caso contrario, questa proprietà restituisce false. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente traccia il valore di questa proprietà di sola lettura: trace(System.capabilities.hasQWERTYKeyboard); hasScreenBroadcast (proprietà capabilities.hasScreenBroadcast) public static hasScreenBroadcast : Boolean [read-only] Un valore booleano, che è true se il lettore supporta lo sviluppo di applicazioni di trasmissione su schermo da eseguire mediante Flash Media Server; false in caso contrario. La stringa server è SB. Nota: in Flash Lite 2.0, il valore restituito è sempre false. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente traccia il valore di questa proprietà di sola lettura: trace(System.capabilities.hasScreenBroadcast); hasScreenPlayback (proprietà capabilities.hasScreenPlayback) public static hasScreenPlayback : Boolean [read-only] Un valore booleano, che è true se il lettore supporta la riproduzione di applicazioni di trasmissione su schermo eseguite mediante Flash Media Server; false in caso contrario. La stringa server è SP. Nota: in Flash Lite 2.0, il valore restituito è sempre false. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente traccia il valore di questa proprietà di sola lettura: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 258 Classi ActionScript trace(System.capabilities.hasScreenPlayback); hasSharedObjects (proprietà capabilities.hasSharedObjects) public static hasSharedObjects : Boolean [read-only] Restituisce true se il contenuto Flash Lite che viene riprodotto in un'applicazione può accedere alla versione Flash Lite degli oggetti condivisi. In caso contrario, questa proprietà restituisce false. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente traccia il valore di questa proprietà di sola lettura: trace(System.capabilities.hasSharedObjects); hasSMAF (proprietà capabilities.hasSMAF) public static hasSMAF : Boolean [read-only] Restituisce true se il dispositivo mobile è in grado di riprodurre dati audio in formato SMAF. In caso contrario, questa proprietà restituisce false. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente traccia il valore di questa proprietà di sola lettura: trace(System.capabilities.hasSMAF); hasSMS (proprietà capabilities.hasSMS) public static hasSMS : Number [read-only] Indica se il dispositivo mobile è in grado di inviare messaggi SMS con il comando ActionScript GetURL. Se Flash Lite è in grado di inviare messaggi SMS, questa variabile viene definita e ha il valore 1. In caso contrario, la variabile non viene definita. Disponibilità Flash Lite 2.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 259 Classi ActionScript Esempio L'esempio seguente traccia il valore di questa proprietà di sola lettura: trace(System.capabilities.hasSMS); hasStreamingAudio (proprietà capabilities.hasStreamingAudio) public static hasStreamingAudio : Boolean [read-only] Un valore booleano, che è true se il lettore è in grado di riprodurre l'audio in streaming; false in caso contrario. La stringa server è SA. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente traccia il valore di questa proprietà di sola lettura: trace(System.capabilities.hasStreamingAudio); hasStreamingVideo (proprietà capabilities.hasStreamingVideo) public static hasStreamingVideo : Boolean [read-only] Un valore booleano che indica se il lettore è in grado di riprodurre il video in streaming. Nota: la proprietà hasStreamingVideo è sempre false in Flash Lite 2.0 e Flash Lite 2.1, per indicare che lo streaming FLV non è supportato. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente traccia il valore di questa proprietà di sola lettura: trace(System.capabilities.hasStreamingVideo); hasStylus (proprietà capabilities.hasStylus) public static hasStylus : Boolean [read-only] Indica se il dispositivo mobile supporta eventi correlati allo stilo. Questa proprietà restituisce true se la piattaforma per il dispositivo mobile non supporta gli eventi collegati allo stilo. In caso contrario, questa proprietà restituisce false. Lo stilo non supporta l'evento on MouseMove. Questo flag capabilities consente al contenuto Flash di verificare se la piattaforma di un dispositivo mobile supporta questo evento. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 260 Classi ActionScript Disponibilità Flash Lite 2.0 Esempio L'esempio seguente traccia il valore di questa proprietà di sola lettura: trace(System.capabilities.hasStylus); hasVideoEncoder (proprietà capabilities.hasVideoEncoder) public static hasVideoEncoder : Boolean [read-only] Specifica se il player Flash Lite è in grado di codificare lo streaming video. Un valore booleano, che è true se il lettore è in grado di codificare uno streaming video (ad esempio, quello catturato da una webcam); false in caso contrario. La stringa server è VE. Nota: in Flash Lite 2.0, il valore restituito è sempre false. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente traccia il valore di questa proprietà di sola lettura: trace(System.capabilities.hasVideoEncoder); hasXMLSocket (proprietà capabilities.hasXMLSocket) public static hasXMLSocket : Number [read-only] Indica se l'applicazione host supporta i socket XML. In caso affermativo, questa variabile viene definita e ha il valore 1. In caso contrario, la variabile non viene definita. imageMIMETypes (proprietà capabilities.imageMIMETypes) public static imageMIMETypes : Array [read-only] Restituisce un array che contiene tutti i tipi MIME che la funzione loadMovie e i codec per un dispositivo mobile supportano per l'elaborazione delle immagini. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente traccia il valore di questa proprietà di sola lettura: trace(System.capabilities.imageMIMETypes); Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 261 Classi ActionScript isDebugger (proprietà capabilities.isDebugger) public static isDebugger : Boolean [read-only] Un valore booleano che indica se il lettore è una release ufficiale (false) o una speciale versione di debug (true). La stringa server è DEB. Nota: in Flash Lite 2.0, il valore restituito è sempre false. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente traccia il valore di questa proprietà di sola lettura: trace(System.capabilities.isDebugger); ***note about space instead of tab used for indents in code language (proprietà capabilities.language) public static language : String [read-only] Indica la lingua del sistema su cui è in esecuzione il lettore. Questa proprietà è specificata sotto forma di codice della lingua ISO 639-1 costituito da due lettere minuscole. Nel caso del cinese, un tag secondario del codice nazionale ISO 3166 a due lettere maiuscole distingue tra il cinese semplificato e quello tradizionale. Per i nomi delle lingue vengono utilizzati i tag inglesi. Ad esempio, fr specifica il francese. Questa proprietà è stata sottoposta a due tipi di modifica in Flash Player 7. Innanzi tutto, il codice di lingua per i sistemi inglesi non include più il codice nazionale. In Flash Player 6, tutti i sistemi inglesi restituiscono il codice di lingua e il tag secondario del codice nazionale a due lettere (en-US). In Flash Player 7, i sistemi inglesi restituiscono solo il codice di lingua (en). Secondariamente, nei sistemi Microsoft Windows questa proprietà ora restituisce la lingua dell'interfaccia utente (UI). In Flash Player 6 su piattaforma Microsoft Windows, System.capabilities.language restituisce le impostazioni internazionali dell'utente, che controllano le impostazioni per la formattazione della data, dell'ora, della valuta e dei numeri. In Flash Player 7 su piattaforma Microsoft Windows, questa proprietà ora restituisce la lingua dell'interfaccia utente (UI), che fa riferimento alla lingua utilizzata per tutti i menu, le finestre di dialogo, i messaggi di errore e i file della Guida in linea. Lingua Tag Ceco (Czech) cs Danese (Danish) da Olandese (Dutch) nl Inglese (English) en Finlandese (Finnish) fi Francese (French) fr Tedesco (German) de Ungherese (Hungarian) hu Italiano it Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 262 Classi ActionScript Lingua Tag Giapponese (Japanese) ja Coreano (Korean) ko Norvegese (Norwegian) no Altre/sconosciute xu Polacco (Polish) pl Portoghese (Portuguese) pt Russo (Russian) ru Cinese semplificato (Simplified Chinese) zh-CN Spagnolo (Spanish) es Svedese (Swedish) sv Cinese tradizionale (Traditional Chinese) zh-TW Turco (Turkish) tr Disponibilità Flash Lite 2.0 Esempio L'esempio seguente traccia il valore di questa proprietà di sola lettura: trace(System.capabilities.language); localFileReadDisable (proprietà capabilities.localFileReadDisable) public static localFileReadDisable : Boolean [read-only] Un valore booleano che specifica se l'accesso in lettura al disco rigido dell'utente è stato negato (true) o consentito (false) dall'amministratore. Se impostata su true, il player Flash Lite non è in grado di leggere i file (compreso il primo file SWF con cui viene lanciato) dal disco rigido dell'utente. Ad esempio, i tentativi di leggere un file presente nel disco rigido dell'utente mediante XML.load(), LoadMovie() o LoadVars.load() danno esito negativo se questa proprietà è impostata su true. Se la proprietà è impostata su true, anche la lettura delle librerie condivise di runtime viene bloccata, tuttavia la lettura degli oggetti condivisi locali viene consentita a prescindere dal valore di questa proprietà. La stringa server è LFD. Nota: in Flash Lite 2.0, il valore restituito è sempre true. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente traccia il valore di questa proprietà di sola lettura: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 263 Classi ActionScript trace(System.capabilities.localFileReadDisable); MIMETypes (proprietà capabilities.MIMETypes) public static MIMETypes : Array [read-only] Restituisce un array che contiene tutti i tipi MIME supportati dalla funzione loadMovie e dagli oggetti Sound e Video. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente traccia il valore di questa proprietà di sola lettura: trace(System.capabilities.MIMETypes); os (proprietà capabilities.os) public static os : String [read-only] Una stringa che indica il sistema operativo corrente. La proprietà os può restituire le stringhe seguenti: "Windows XP", "Windows 2000", "Windows NT", "Windows 98/ME", "Windows 95", "Windows CE" (disponibile solo nel Flash Player SDK e non nella versione desktop), "Linux" e "MacOS". La stringa server è OS. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente traccia il valore di questa proprietà di sola lettura: trace(System.capabilities.os); screenOrientation (proprietà capabilities.screenOrientation) public static screenOrientation : String [read-only] Una variabile membro dell'oggetto System.capabilities che indica l'orientamento attuale dello schermo. Valori possibili della proprietà screenOrientation: • normal lo schermo ha un orientamento normale • rotated90 lo schermo è ruotato di 90 gradi • rotated180 lo schermo è ruotato di 180 gradi • rotated270 lo schermo è ruotato di 270 gradi Disponibilità Flash Lite 2.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 264 Classi ActionScript Esempio L'esempio seguente traccia il valore di questa proprietà di sola lettura: trace(System.capabilities.screenOrientation); screenResolutionX (proprietà capabilities.screenResolutionX) public static screenResolutionX : Number [read-only] Un numero intero che indica la risoluzione orizzontale massima dello schermo. La stringa server è R (che restituisce sia la larghezza che l'altezza dello schermo). Disponibilità Flash Lite 2.0 Esempio L'esempio seguente traccia il valore di questa proprietà di sola lettura: trace(System.capabilities.screenResolutionX); screenResolutionY (proprietà capabilities.screenResolutionY) public static screenResolutionY : Number [read-only] Un numero intero che indica la risoluzione verticale massima dello schermo. La stringa server è R (che restituisce sia la larghezza che l'altezza dello schermo). Disponibilità Flash Lite 2.0 Esempio L'esempio seguente traccia il valore di questa proprietà di sola lettura: trace(System.capabilities.screenResolutionY); softKeyCount (proprietà capabilities.softKeyCount) public static softKeyCount : Number [read-only] Indica il numero di tasti virtuali rimappabili supportati dal dispositivo mobile. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente traccia il valore di questa proprietà di sola lettura: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 265 Classi ActionScript trace(System.capabilities.softKeyCount); version (proprietà capabilities.version) public static version : String [read-only] Una stringa che contiene le informazioni sulla piattaforma e la versione del player Flash Lite (ad esempio "WIN 7,1,0,0"). La stringa server è V. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente traccia il valore di questa proprietà di sola lettura: trace(System.capabilities.version); videoMIMETypes (proprietà capabilities.videoMIMETypes) public static videoMIMETypes : Array [read-only] Indica tutti i tipi MIME per video supportati dai codec del dispositivo mobile. Questa proprietà restituisce un array di tutti i tipi MIME per video supportati dai codec del dispositivo mobile. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente traccia il valore di questa proprietà di sola lettura: trace(System.capabilities.videoMIMETypes); Color Object | +-Color public class Color extends Object La classe Color consente di impostare il valore RGB del colore e il valore di trasformazione del colore dei clip filmato e di recuperarli una volta che sono stati impostati. Per creare un oggetto Color prima di chiamarne i metodi, utilizzare la funzione di costruzione new Color(). GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 266 Ultimo aggiornamento 4/5/2010 Classi ActionScript Disponibilità Flash Lite 2.0 Riepilogo delle proprietà Proprietà ereditate dalla classe Object constructor (proprietà Object.constructor), __proto__ (proprietà Object._proto)prototype (proprietà Object.prototype), __resolve (proprietà Object.__resolve) Riepilogo delle funzioni di costruzione Firma Descrizione Color(target:Object) Crea un oggetto Color per il clip filmato specificato dal parametro target_mc. Riepilogo dei metodi Modificatori Firma Descrizione getRGB() : Number Restituisce la combinazione R+G+B attualmente utilizzata dall'oggetto color. getTransform() : Object Restituisce il valore di trasformazione impostato dall'ultima chiamata a Color.setTransform(). setRGB(offset:Number ) : Void Specifica un colore RGB per un oggetto Color. setTransform(transform Imposta le informazioni di trasformazione del colore per un Object:Object) : Void oggetto Color. Metodi ereditati dalla classe Object addProperty (metodo Object.addProperty), hasOwnProperty (metodo Object.hasOwnProperty)isPropertyEnumerable (metodo Object.isPropertyEnumerable)isPrototypeOf (metodo Object.isPrototypeOf)registerClass (metodo Object.registerClass), toString (metodo Object.toString)unwatch (metodo Object.unwatch), valueOf (metodo Object.valueOf)watch (metodo Object.watch) Color (funzione di costruzione) public Color(target:Object) Crea un oggetto Color per il clip filmato specificato dal parametro target_mc. È possibile utilizzare i metodi di questo oggetto Color per modificare il colore di un clip filmato target. Disponibilità Flash Lite 2.0 Parametri target:Object - Il nome dell'istanza di un clip filmato. Esempio L'esempio seguente crea un oggetto Color di nome my_color per il clip filmato my_mc e ne imposta il valore RGB sul colore arancione: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 267 Classi ActionScript var my_color:Color = new Color(my_mc); my_color.setRGB(0xff9933); getRGB (metodo Color.getRGB) public getRGB() : Number Restituisce la combinazione R+G+B attualmente utilizzata dall'oggetto color. Disponibilità Flash Lite 2.0 Restituisce Number - Un numero che rappresenta il valore numerico RGB per il colore specificato. Esempio Il codice seguente recupera il valore RGB dell'oggetto Color my_color, converte il valore in una stringa esadecimale e lo assegna alla variabile myValue. Per un esempio del funzionamento di questo codice, aggiungere un'istanza di clip filmato allo stage, quindi assegnarle il nome di istanza mt_mc: var my_color:Color = new Color(my_mc); // set the color my_color.setRGB(0xff9933); var myValue:String = my_color.getRGB().toString(16); // trace the color value trace(myValue); // traces ff9933 Vedete anche setRGB (metodo Color.setRGB) getTransform (metodo Color.getTransform) public getTransform() : Object Restituisce il valore di trasformazione impostato dall'ultima chiamata a Color.setTransform(). Disponibilità Flash Lite 2.0 Restituisce Object - Un oggetto le cui proprietà contengono i valori correnti dell'offset e della percentuale del colore specificato. Esempio L'esempio seguente ottiene l'oggetto transform, quindi per i colori e l'alfa di my_mc imposta delle nuove percentuali relative ai valori correnti. Per un esempio di funzionamento di questo codice, collocare un clip filmato a più colori sullo stage con il nome di istanza my_mc. Quindi, collocare il codice seguente sul fotogramma 1 nella linea temporale principale e selezionare Controllo > Prova filmato: var my_color:Color = new Color(my_mc); var myTransform:Object = my_color.getTransform(); myTransform = { ra: 50, ba: 50, aa: 30}; my_color.setTransform(myTransform); Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 268 Classi ActionScript Per consultare delle descrizioni dei parametri di un oggetto trasformazione colore, vedete Color.setTransform(). Vedete anche setTransform (metodo Color.setTransform) setRGB (metodo Color.setRGB) public setRGB(offset:Number) : Void Specifica un colore RGB per un oggetto Color. Se si chiama questo metodo, le eventuali impostazioni precedenti di Color.setTransform() vengono ignorate. Disponibilità Flash Lite 2.0 Parametri offset:Number - 0xRRGGBB Il colore esadecimale o RGB da impostare. RR, GG e BB sono composti da due cifre esadecimali che specificano l'offset di ciascun componente di colore. 0x indica al compilatore ActionScript che il numero è un valore esadecimale. Esempio Questo esempio imposta il valore di colore RGB per il clip filmato my_mc. Per un esempio di funzionamento di questo codice, collocare un clip filmato sullo stage con il nome di istanza my_mc. Quindi, collocare il codice seguente sul fotogramma 1 nella linea temporale principale e selezionare Controllo > Prova filmato: var my_color:Color = new Color(my_mc); my_color.setRGB(0xFF0000); // my_mc turns red Vedete anche setTransform (metodo Color.setTransform) setTransform (metodo Color.setTransform) public setTransform(transformObject:Object) : Void Imposta le informazioni di trasformazione del colore per un oggetto Color. Il parametro colorTransformObject è un oggetto generico che viene creato dalla funzione di costruzione new Object. È dotato di parametri che specificano i valori percentuali e di offset dei componenti rosso, verde, blu e alfa (trasparenza) di un colore, nel formato 0xRRGGBBAA. I parametri di un oggetto trasformazione colore corrispondono alle impostazioni della finestra di dialogo Effetto avanzato e sono definiti nel modo seguente: • ra è la percentuale relativa al componente rosso (da -100 a 100). • rb è l'offset relativo al componente rosso (da -255 a 255). • ga è la percentuale relativa al componente verde (da -100 a 100). • gb è l'offset relativo al componente verde (da -255 a 255). • ba è la percentuale relativa al componente blu (da -100 a 100). • bb è l'offset relativo al componente blu (da -255 a 255). • aa è la percentuale relativa all'alfa (da -100 a 100). Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 269 Classi ActionScript • ab è l'offset relativo all'alfa (da -255 a 255). È possibile creare un parametro di colorTransformObject nel modo seguente: var myColorTransform:Object = new Object(); myColorTransform.ra = 50; myColorTransform.rb = 244; myColorTransform.ga = 40; myColorTransform.gb = 112; myColorTransform.ba = 12; myColorTransform.bb = 90; myColorTransform.aa = 40; myColorTransform.ab = 70; Per creare un parametro di colorTransformObject è anche possibile utilizzare la sintassi seguente: var myColorTransform:Object = { ra: 50, rb: 244, ga: 40, gb: 112, ba: 12, bb: 90, aa: 40, ab: 70} Disponibilità Flash Lite 2.0 Parametri transformObject:Object - Un oggetto creato con la funzione di costruzione new Object. Questa istanza della classe Object deve avere le seguenti proprietà che specificano i valori di trasformazione del colore: ra, rb, ga, gb, ba, bb, aa, ab. Queste proprietà vengono illustrate di seguito. Esempio Questo esempio crea un oggetto new Color per un file SWF di destinazione, crea un oggetto generico di nome myColorTransform con le proprietà definite in precedenza e utilizza il metodo setTransform() per passare colorTransformObject ad un oggetto Color. Per utilizzare questo codice in un documento Flash (FLA), collocarlo sul fotogramma 1 della linea temporale principale e posizionare un clip filmato sullo stage con il nome di istanza my_mc, come accade nel codice seguente: // Create a color object called my_color for the target my_mc var my_color:Color = new Color(my_mc); // Create a color transform object called myColorTransform using // Set the values for myColorTransform var myColorTransform:Object = { ra: 50, rb: 244, ga: 40, gb: 112, ba: 12, bb: 90, aa: 40, ab: 70}; // Associate the color transform object with the Color object // created for my_mc my_color.setTransform(myColorTransform); Vedete anche Object GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 270 Ultimo aggiornamento 4/5/2010 Classi ActionScript ColorTransform (flash.geom.ColorTransform) Object | +-flash.geom.ColorTransform public class ColorTransform extends Object La classe ColorTransform consente di rettificare matematicamente tutti i valori di colore di un clip filmato. La funzione di regolazione del colore o trasformazione del colore può essere applicata a tutti e quattro i canali: rosso, verde, blu e trasparenza alfa. Quando si applica un oggetto ColorTransform a un clip filmato, viene calcolato un nuovo valore per ciascun canale di colore nel modo seguente: • Nuovo valore rosso = (valore rosso precedente * redMultiplier + redOffset • Nuovo valore verde = (valore verde precedente * greenMultiplier + greenOffset • Nuovo valore blu = (valore blu precedente * blueMultiplier + blueOffset • Nuovo valore alfa = (valore alfa precedente * alphaMultiplier + alphaOffset I valori dei canali di colore che dopo il calcolo risultano maggiori di 255 vengono impostati su 255. I valori inferiori a 0 vengono impostati su 0. Per poter chiamare i metodi dell'oggetto ColorTransform, è necessario prima utilizzare la funzione di costruzione new ColorTransform() per creare un oggetto ColorTransform. Le trasformazioni del colore non si applicano al colore di sfondo di un clip filmato (ad esempio, un oggetto SWF caricato), ma solo agli elementi grafici e ai simboli associati al clip filmato. Disponibilità Flash Lite 3.1 Vedete anche colorTransform (proprietà Transform.colorTransform) Riepilogo delle proprietà Modificatori Proprietà Descrizione alphaMultiplier:Number Un valore decimale che viene moltiplicato per il valore del canale di trasparenza alfa. alphaOffset:Number Un numero da -255 a 255 che viene aggiunto al valore del canale di trasparenza alfa dopo che questo è stato moltiplicato per il valore alphaMultiplier. blueMultiplier:Number Un valore decimale che viene moltiplicato per il valore del canale blu. blueOffset:Number Un numero da -255 a 255 che viene aggiunto al valore del canale blu dopo che questo è stato moltiplicato per il valore blueMultiplier. greenMultiplier:Number Un valore decimale che viene moltiplicato per il valore del canale verde. GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 271 Ultimo aggiornamento 4/5/2010 Classi ActionScript Modificatori Proprietà Descrizione greenOffset:Number Un numero da -255 a 255 che viene aggiunto al valore del canale verde dopo che questo è stato moltiplicato per il valore greenMultiplier. redMultiplier:Number Un valore decimale che viene moltiplicato per il valore del canale rosso. redOffset:Number Un numero da -255 a 255 che viene aggiunto al valore del canale rosso dopo che questo è stato moltiplicato per il valore redMultiplier. rgb:Number Il valore di colore RGB per un oggetto ColorTransform. “constructor (proprietà Object.constructor)” a pagina 507, __proto__ (proprietà Object._proto), prototype (proprietà Object.prototype), “__resolve (proprietà Object.__resolve)” a pagina 512 Riepilogo delle funzioni di costruzione Firma Descrizione ColorTransform([redMult Crea un oggetto ColorTransform per un oggetto di visualizzazione con i valori dei iplier:Number], canali di colore e alfa specificati. [greenMultiplier:Number ], [blueMultiplier:Number] , [alphaMultiplier:Number ], [redOffset:Number], [greenOffset:Number], [blueOffset:Number], [alphaOffset:Number]) Riepilogo dei metodi Modificatori Firma Descrizione concat(second:ColorT ransform) : Void Applica al clip filmato una seconda trasformazione di colore additiva. toString() : String Formatta e restituisce una stringa che descrive tutte le proprietà dell'oggetto ColorTransform. “addProperty (metodo Object.addProperty)” a pagina 505, “hasOwnProperty (metodo Object.hasOwnProperty)” a pagina 508, “isPropertyEnumerable (metodo Object.isPropertyEnumerable)” a pagina 508, “isPrototypeOf (metodo Object.isPrototypeOf)” a pagina 509, “registerClass (metodo Object.registerClass)” a pagina 511, “toString (metodo Object.toString)” a pagina 515, “unwatch (metodo Object.unwatch)” a pagina 516, valueOf (metodo Object.valueOf),“watch (metodo Object.watch)” a pagina 518 alphaMultiplier (proprietà ColorTransform.alphaMultiplier) public alphaMultiplier : Number Un valore decimale che viene moltiplicato per il valore del canale di trasparenza alfa. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 272 Classi ActionScript Se impostate direttamente il valore di trasparenza alfa di un clip filmato utilizzando la proprietà MovieClip._alpha, quest'ultima modifica il valore della proprietà alphaMultiplier dell'oggetto ColorTransform di quel clip filmato. Disponibilità Flash Lite 3.1 Esempio L'esempio seguente crea l'oggetto ColorTransform colorTrans e ne modifica il valore alphaMultiplier da 1 a .5. import flash.geom.ColorTransform; import flash.geom.Transform; var colorTrans:ColorTransform = new ColorTransform(); trace(colorTrans.alphaMultiplier); // 1 colorTrans.alphaMultiplier = .5; trace(colorTrans.alphaMultiplier); // .5 var rect:MovieClip = createRectangle(20, 80, 0x000000); var trans:Transform = new Transform(rect); trans.colorTransform = colorTrans; function createRectangle(width:Number, height:Number, color:Number, scope:MovieClip):MovieClip { scope = (scope == undefined) ? this : scope; var depth:Number = scope.getNextHighestDepth(); var mc:MovieClip = scope.createEmptyMovieClip("mc_" + depth, depth); mc.beginFill(color); mc.lineTo(0, height); mc.lineTo(width, height); mc.lineTo(width, 0); mc.lineTo(0, 0); return mc; } Vedete anche _alpha (MovieClip._alpha, proprietà) alphaOffset (proprietà ColorTransform.alphaOffset) public alphaOffset : Number Un numero da -255 a 255 che viene aggiunto al valore del canale trasparenza di alfa dopo che questo è stato moltiplicato per il valore alphaMultiplier. Disponibilità Flash Lite 3.1 Esempio L'esempio seguente crea l'oggetto ColorTransform colorTrans e ne modifica il valore alphaOffset da 0 a -128. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 273 Classi ActionScript import flash.geom.ColorTransform; import flash.geom.Transform; var colorTrans:ColorTransform = new ColorTransform(); trace(colorTrans.alphaOffset); // 0 colorTrans.alphaOffset = -128; trace(colorTrans.alphaOffset); // -128 var rect:MovieClip = createRectangle(20, 80, 0x000000); var trans:Transform = new Transform(rect); trans.colorTransform = colorTrans; function createRectangle(width:Number, height:Number, color:Number, scope:MovieClip):MovieClip { scope = (scope == undefined) ? this : scope; var depth:Number = scope.getNextHighestDepth(); var mc:MovieClip = scope.createEmptyMovieClip("mc_" + depth, depth); mc.beginFill(color); mc.lineTo(0, height); mc.lineTo(width, height); mc.lineTo(width, 0); mc.lineTo(0, 0); return mc; } blueMultiplier (proprietà ColorTransform.blueMultiplier) public blueMultiplier : Number Un valore decimale che viene moltiplicato per il valore del canale blu. Disponibilità Flash Lite 3.1 Esempio L'esempio seguente crea l'oggetto ColorTransform colorTrans e ne modifica il valore blueMultiplier da 1 a .5. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 274 Classi ActionScript import flash.geom.ColorTransform; import flash.geom.Transform; var colorTrans:ColorTransform = new ColorTransform(); trace(colorTrans.blueMultiplier); // 1 colorTrans.blueMultiplier = .5; trace(colorTrans.blueMultiplier); // .5 var rect:MovieClip = createRectangle(20, 80, 0x0000FF); var trans:Transform = new Transform(rect); trans.colorTransform = colorTrans; function createRectangle(width:Number, height:Number, color:Number, scope:MovieClip):MovieClip { scope = (scope == undefined) ? this : scope; var depth:Number = scope.getNextHighestDepth(); var mc:MovieClip = scope.createEmptyMovieClip("mc_" + depth, depth); mc.beginFill(color); mc.lineTo(0, height); mc.lineTo(width, height); mc.lineTo(width, 0); mc.lineTo(0, 0); return mc; } blueOffset (proprietà ColorTransform.blueOffset) public blueOffset : Number Un numero da -255 a 255 che viene aggiunto al valore del canale blu dopo che questo è stato moltiplicato per il valore blueMultiplier. Disponibilità Flash Lite 3.1 Esempio L'esempio seguente crea l'oggetto ColorTransform colorTrans e ne modifica il valore blueOffset da 0 a 255. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 275 Classi ActionScript import flash.geom.ColorTransform; import flash.geom.Transform; var colorTrans:ColorTransform = new ColorTransform(); trace(colorTrans.blueOffset); // 0 colorTrans.blueOffset = 255; trace(colorTrans.blueOffset); // 255 var rect:MovieClip = createRectangle(20, 80, 0x000000); var trans:Transform = new Transform(rect); trans.colorTransform = colorTrans; function createRectangle(width:Number, height:Number, color:Number, scope:MovieClip):MovieClip { scope = (scope == undefined) ? this : scope; var depth:Number = scope.getNextHighestDepth(); var mc:MovieClip = scope.createEmptyMovieClip("mc_" + depth, depth); mc.beginFill(color); mc.lineTo(0, height); mc.lineTo(width, height); mc.lineTo(width, 0); mc.lineTo(0, 0); return mc; } Funzione di costruzione ColorTransform public ColorTransform([redMultiplier:Number], [greenMultiplier:Number], [blueMultiplier:Number], [alphaMultiplier:Number], [redOffset:Number], [greenOffset:Number], [blueOffset:Number], [alphaOffset:Number]) Crea un oggetto ColorTransform per un oggetto di visualizzazione con i valori dei canali di colore e alfa specificati. Disponibilità Flash Lite 3.1 Parametri redMultiplier:Number [opzionale] - Il valore del moltiplicatore del canale rosso, compreso nell'intervallo 0-1. Il valore predefinito è 1. greenMultiplier:Number opzionale] - Il valore del moltiplicatore del canale verde, compreso nell'intervallo 0-1. Il valore predefinito è 1. blueMultiplier:Number [opzionale] - Il valore del moltiplicatore del canale blu, compreso nell'intervallo 0-1. Il valore predefinito è 1. alphaMultiplier:Number [opzionale] - Il valore del moltiplicatore della trasparenza alfa, compreso nell'intervallo 01. Il valore predefinito è 1. redOffset:Number [opzionale] - L'offset del valore del canale rosso (da -255 a 255). Il valore predefinito è 0. greenOffset:Number [opzionale] - L'offset del valore del canale verde (da -255 a 255). Il valore predefinito è 0. blueOffset:Number [opzionale] - L'offset del valore del canale blu (da -255 a 255). Il valore predefinito è 0. alphaOffset:Number [opzionale] - L'offset del valore della trasparenza alfa (da -255 a 255). Il valore predefinito è 0. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 276 Classi ActionScript Esempio Nell'esempio seguente viene creato un oggetto ColorTransform denominato greenTransform: var greenTransform:flash.geom.ColorTransform = new flash.geom.ColorTransform(0.5, 1.0, 0.5, 0.5, 10, 10, 10, 0); Nell'esempio seguente viene creato l'oggetto ColorTransform colorTrans_1 con i valori predefiniti della funzione di costruzione. Il fatto che colorTrans_1 e colorTrans_2 traccino gli stessi valori prova che vengono utilizzati i valori predefiniti della funzione di costruzione. import flash.geom.ColorTransform; var colorTrans_1:ColorTransform = new ColorTransform(1, 1, 1, 1, 0, 0, 0, 0); trace(colorTrans_1); //(redMultiplier=1, greenMultiplier=1, blueMultiplier=1, alphaMultiplier=1, redOffset=0, greenOffset=0, blueOffset=0, alphaOffset=0) var colorTrans_2:ColorTransform = new ColorTransform(); trace(colorTrans_2); //(redMultiplier=1, greenMultiplier=1, blueMultiplier=1, alphaMultiplier=1, redOffset=0, greenOffset=0, blueOffset=0, alphaOffset=0) concat (metodo ColorTransform.concat) public concat(second:ColorTransform) : Void Applica al clip filmato una seconda trasformazione di colore additivo. Il secondo gruppo di parametri di trasformazione viene applicato ai colori del clip filmato dopo che è stata completata la prima trasformazione. Disponibilità Flash Lite 3.1 Parametri second:ColorTransform - Un secondo oggetto ColorTransform da combinare con l'oggetto ColorTransform corrente. Esempio L'esempio seguente concatena l'oggetto ColorTransform colorTrans_2 a colorTrans_1 determinando l'offset completo del rosso combinato con il moltiplicatore alfa di .5. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 277 Classi ActionScript import flash.geom.ColorTransform; import flash.geom.Transform; var colorTrans_1:ColorTransform = new ColorTransform(1, 1, 1, 1, 255, 0, 0, 0); trace(colorTrans_1); // (redMultiplier=1, greenMultiplier=1, blueMultiplier=1, alphaMultiplier=1, redOffset=255, greenOffset=0, blueOffset=0, alphaOffset=0) var colorTrans_2:ColorTransform = new ColorTransform(1, 1, 1, .5, 0, 0, 0, 0); trace(colorTrans_2); // (redMultiplier=1, greenMultiplier=1, blueMultiplier=1, alphaMultiplier=0.5, redOffset=0, greenOffset=0, blueOffset=0, alphaOffset=0) colorTrans_1.concat(colorTrans_2); trace(colorTrans_1); // (redMultiplier=1, greenMultiplier=1, blueMultiplier=1, alphaMultiplier=0.5, redOffset=255, greenOffset=0, blueOffset=0, alphaOffset=0) var rect:MovieClip = createRectangle(20, 80, 0x000000); var trans:Transform = new Transform(rect); trans.colorTransform = colorTrans_1; function createRectangle(width:Number, height:Number, color:Number, scope:MovieClip):MovieClip { scope = (scope == undefined) ? this : scope; var depth:Number = scope.getNextHighestDepth(); var mc:MovieClip = scope.createEmptyMovieClip("mc_" + depth, depth); mc.beginFill(color); mc.lineTo(0, height); mc.lineTo(width, height); mc.lineTo(width, 0); mc.lineTo(0, 0); return mc; } greenMultiplier (proprietà ColorTransform.greenMultiplier) public greenMultiplier : Number Un valore decimale che viene moltiplicato per il valore del canale verde. Disponibilità Flash Lite 3.1 Esempio L'esempio seguente crea l'oggetto ColorTransform colorTrans e ne modifica il valore greenMultiplier da 1 a .5. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 278 Classi ActionScript import flash.geom.ColorTransform; import flash.geom.Transform; var colorTrans:ColorTransform = new ColorTransform(); trace(colorTrans.greenMultiplier); // 1 colorTrans.greenMultiplier = .5; trace(colorTrans.greenMultiplier); // .5 var rect:MovieClip = createRectangle(20, 80, 0x00FF00), this; var trans:Transform = new Transform(rect); trans.colorTransform = colorTrans; function createRectangle(width:Number, height:Number, color:Number, scope:MovieClip):MovieClip { scope = (scope == undefined) ? this : scope; var depth:Number = scope.getNextHighestDepth(); var mc:MovieClip = scope.createEmptyMovieClip("mc_" + depth, depth); mc.beginFill(color); mc.lineTo(0, height); mc.lineTo(width, height); mc.lineTo(width, 0); mc.lineTo(0, 0); return mc; } greenOffset (proprietà ColorTransform.greenOffset) public greenOffset : Number Un numero da -255 a 255 che viene aggiunto al valore del canale verde dopo che questo è stato moltiplicato per il valore greenMultiplier. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente crea l'oggetto ColorTransform colorTrans e ne modifica il valore greenOffset da 0 a 255. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 279 Classi ActionScript import flash.geom.ColorTransform; import flash.geom.Transform; var colorTrans:ColorTransform = new ColorTransform(); trace(colorTrans.greenOffset); // 0 colorTrans.greenOffset = 255; trace(colorTrans.greenOffset); // 255 var rect:MovieClip = createRectangle(20, 80, 0x000000); var trans:Transform = new Transform(rect); trans.colorTransform = colorTrans; function createRectangle(width:Number, height:Number, color:Number, scope:MovieClip):MovieClip { scope = (scope == undefined) ? this : scope; var depth:Number = scope.getNextHighestDepth(); var mc:MovieClip = scope.createEmptyMovieClip("mc_" + depth, depth); mc.beginFill(color); mc.lineTo(0, height); mc.lineTo(width, height); mc.lineTo(width, 0); mc.lineTo(0, 0); return mc; } redMultiplier (proprietà ColorTransform.redMultiplier) public redMultiplier : Number Un valore decimale che viene moltiplicato per il valore del canale rosso. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente crea l'oggetto ColorTransform colorTrans e ne modifica il valore redMultiplier da 1 a .5. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 280 Classi ActionScript import flash.geom.ColorTransform; import flash.geom.Transform; var colorTrans:ColorTransform = new ColorTransform(); trace(colorTrans.redMultiplier); // 1 colorTrans.redMultiplier = .5; trace(colorTrans.redMultiplier); // .5 var rect:MovieClip = createRectangle(20, 80, 0xFF0000); var trans:Transform = new Transform(rect); trans.colorTransform = colorTrans; function createRectangle(width:Number, height:Number, color:Number, scope:MovieClip):MovieClip { scope = (scope == undefined) ? this : scope; var depth:Number = scope.getNextHighestDepth(); var mc:MovieClip = scope.createEmptyMovieClip("mc_" + depth, depth); mc.beginFill(color); mc.lineTo(0, height); mc.lineTo(width, height); mc.lineTo(width, 0); mc.lineTo(0, 0); return mc; } redOffset (proprietà ColorTransform.redOffset) public redOffset : Number Un numero da -255 a 255 che viene aggiunto al valore del canale rosso dopo che questo è stato moltiplicato per il valore redMultiplier. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente crea l'oggetto ColorTransform colorTrans e ne modifica il valore redOffset da 0 a 255. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 281 Classi ActionScript import flash.geom.ColorTransform; import flash.geom.Transform; var colorTrans:ColorTransform = new ColorTransform(); trace(colorTrans.redOffset); // 0 colorTrans.redOffset = 255; trace(colorTrans.redOffset); // 255 var rect:MovieClip = createRectangle(20, 80, 0x000000); var trans:Transform = new Transform(rect); trans.colorTransform = colorTrans; function createRectangle(width:Number, height:Number, color:Number, scope:MovieClip):MovieClip { scope = (scope == undefined) ? this : scope; var depth:Number = scope.getNextHighestDepth(); var mc:MovieClip = scope.createEmptyMovieClip("mc_" + depth, depth); mc.beginFill(color); mc.lineTo(0, height); mc.lineTo(width, height); mc.lineTo(width, 0); mc.lineTo(0, 0); return mc; } rgb (proprietà ColorTransform.rgb) public rgb : Number Il valore di colore RGB per un oggetto ColorTransform. Quando viene impostata, questa proprietà modifica i tre valori di offset del colore (redOffset, greenOffset e blueOffset) e imposta i tre valori dei moltiplicatori (redMultiplier, greenMultiplier e blueMultiplier) a 0. I valori del moltiplicatore e dell'offset della trasparenza alfa restano invariati. Passate un valore per questa proprietà utilizzando il formato seguente: 0xRRGGBB. RR, GG e BB sono composti da due cifre esadecimali che specificano l'offset di ciascun componente di colore. 0x indica al compilatore ActionScript che il numero è un valore esadecimale. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente crea l'oggetto ColorTransform colorTrans e modifica il valore rgb a 0xFF0000. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 282 Classi ActionScript import flash.geom.ColorTransform; import flash.geom.Transform; var colorTrans:ColorTransform = new ColorTransform(); trace(colorTrans.rgb); // 0 colorTrans.rgb = 0xFF0000; trace(colorTrans.rgb); // 16711680 trace("0x" + colorTrans.rgb.toString(16)); // 0xff0000 var rect:MovieClip = createRectangle(20, 80, 0x000000); var trans:Transform = new Transform(rect); trans.colorTransform = colorTrans; function createRectangle(width:Number, height:Number, color:Number, scope:MovieClip):MovieClip { scope = (scope == undefined) ? this : scope; var depth:Number = scope.getNextHighestDepth(); var mc:MovieClip = scope.createEmptyMovieClip("mc_" + depth, depth); mc.beginFill(color); mc.lineTo(0, height); mc.lineTo(width, height); mc.lineTo(width, 0); mc.lineTo(0, 0); return mc; } toString (metodo ColorTransform.toString) public toString() : String Formatta e restituisce una stringa che descrive tutte le proprietà dell'oggetto ColorTransform. Disponibilità Flash Lite 2.0 Restituisce String Una stringa che elenca tutte le proprietà dell'oggetto ColorTransform. Esempio L'esempio seguente crea l'oggetto ColorTransform colorTrans e chiama il relativo metodo toSting(). Il risultato del metodo è una stringa con il formato seguente: (redMultiplier=RM, greenMultiplier=GM, blueMultiplier=BM, alphaMultiplier=AM, redOffset=RO, greenOffset=GO, blueOffset=BO, alphaOffset=AO). import flash.geom.ColorTransform; var colorTrans:ColorTransform = new ColorTransform(1, 2, 3, 4, -255, -128, 128, 255); trace(colorTrans.toString()); // (redMultiplier=1, greenMultiplier=2, blueMultiplier=3, alphaMultiplier=4, redOffset=-255, greenOffset=-128, blueOffset=128, alphaOffset=255) Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 283 Classi ActionScript Date Object | +-Date public class Date extends Object La classe Date consente di recuperare i valori relativi alla data e all'ora dell'ora universale (UTC; precedentemente definita GMT, Greenwich Mean Time) o del sistema operativo su cui è in esecuzione il player Flash Lite. I metodi della classe Date non sono statici ma si applicano solo al singolo oggetto Date specificato quando viene chiamato il metodo. Il metodo Date.UTC() è un'eccezione ed è un metodo statico. La classe Date gestisce l'ora legale in modo diverso a seconda del sistema operativo e della versione di Flash Player. La versione 6 e successive di Flash Player gestiscono l'ora legale sui seguenti sistemi operativi nei modi indicati di seguito: • Windows - L'oggetto Date regola automaticamente l'output per l'ora legale. L'oggetto Date rileva se l'ora legale è adottata nella versione locale corrente e, in caso affermativo, rileva la data e l'ora di transizione dall'ora standard all'ora legale. Tuttavia, le date di transizione attualmente in vigore vengono applicate alle date passate e future, e pertanto potrebbe essere calcolata una variazione non corretta dell'ora legale per le ore del passato per cui la versione locale prevedeva date di transizione diverse. • Mac OS X - L'oggetto Date regola automaticamente l'output per l'ora legale. Per determinare se a una data o a un'ora del presente o del passato deve essere applicata la variazione dell'ora legale viene utilizzato il database delle informazioni sui fusi orari di Mac OS X. • Mac OS 9 - Il sistema operativo fornisce solo le informazioni sufficienti a determinare se alla data e all'ora corrente deve essere applicata la variazione dell'ora legale. Di conseguenza, l'oggetto Date presuppone che la variazione corrente dell'ora legale viene applicata a tutte le date e le ore nel passato e nel futuro. La versione 5 di Flash Player gestisce l'ora legale sui seguenti sistemi operativi nel modo indicato di seguito: • Windows - Vengono sempre applicate le regole statunitensi per l'ora legale e questo comporta delle transizioni non corrette in Europa e nelle altre aree del mondo che adottano l'ora legale ma hanno ore di transizione diverse rispetto agli Stati Uniti. Flash rileva in modo corretto se nella versione locale corrente è utilizzata l'ora legale. Per chiamare i metodi della classe Date, è prima necessario creare un oggetto Date mediante la funzione di costruzione della classe Date, descritta più avanti in questa sezione. Disponibilità Flash Lite 2.0 Riepilogo delle proprietà Proprietà ereditate dalla classe Object constructor (proprietà Object.constructor), __proto__ (proprietà Object._proto)prototype (proprietà Object.prototype), __resolve (proprietà Object.__resolve) GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 284 Ultimo aggiornamento 4/5/2010 Classi ActionScript Riepilogo delle funzioni di costruzione Firma Descrizione Date([yearOrTimevalue:Number], [month:Number], [date:Number], [hour:Number], [minute:Number], [second:Number], [millisecond:Number]) Crea un nuovo oggetto Date che contiene la data e l'ora specificate. Riepilogo dei metodi Modificatori Firma Descrizione getDate():Number Restituisce il giorno del mese (un numero intero compreso tra 1 e 31) dell'oggetto Date specificato, in base all'ora locale. getDay():Number Restituisce il giorno della settimana (0 per domenica, 1 per lunedì, e così via) dell'oggetto Date specificato, in base all'ora locale. getFullYear() : Number Restituisce l'anno completo (un numero di quattro cifre, ad esempio 2000) dell'oggetto Date specificato, in base all'ora locale. getHours() : Number Restituisce l'ora (un numero intero compreso tra 0 e 23) dell'oggetto Date specificato, in base all'ora locale. getLocaleLongDate() : String Restituisce una stringa che rappresenta la data corrente in formato esteso e formattata in base alle impostazioni internazionali attualmente definite. getLocaleShortDate() : String Restituisce una stringa che rappresenta la data corrente in formato breve e formattata in base alle impostazioni internazionali attualmente definite. getLocaleTime() : String Restituisce una stringa che rappresenta l'ora corrente formattata in base alle impostazioni internazionali attualmente definite. getMilliseconds() : Number Restituisce i millisecondi (un numero intero compreso tra 0 e 999) dell'oggetto Date specificato, in base all'ora locale. getMinutes() : Number Restituisce i minuti (un numero intero compreso tra 0 e 59) dell'oggetto Date specificato, in base all'ora locale. getMonth() : Number Restituisce il mese (0 per gennaio, 1 per febbraio, e così via) dell'oggetto Date specificato, in base all'ora locale. getSeconds() : Number Restituisce i secondi (un numero intero compreso tra 0 e 59) dell'oggetto Date specificato, in base all'ora locale. getTime() : Number Restituisce il numero di millisecondi trascorsi dalla mezzanotte del 1° gennaio 1970 (ora universale) per l'oggetto Date specificato. getTimezoneOffset() : Number Restituisce la differenza, espressa in minuti, tra l'ora locale del computer e l'ora universale. getUTCDate() : Number Restituisce il giorno del mese (un numero intero compreso tra 1 e 31) dell'oggetto Date specificato, in base all'ora universale. getUTCDay() : Number Restituisce il giorno della settimana (0 per domenica, 1 per lunedì, e così via) dell'oggetto Date specificato, in base all'ora universale. GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 285 Ultimo aggiornamento 4/5/2010 Classi ActionScript Modificatori Firma Descrizione getUTCFullYear() : Number Restituisce l'anno completo (un numero di quattro cifre) dell'oggetto Date specificato, in base all'ora universale. getUTCHours() : Number Restituisce l'ora (un numero intero compreso tra 0 e 23) dell'oggetto Date specificato, in base all'ora universale. getUTCMilliseconds() : Number Restituisce i millisecondi (un numero intero compreso tra 0 e 999) dell'oggetto Date specificato, in base all'ora universale. getUTCMinutes() : Number Restituisce i minuti (un numero intero compreso tra 0 e 59) dell'oggetto Date specificato, in base all'ora universale. getUTCMonth() : Number Restituisce il mese (un numero intero compreso tra 0 [gennaio] e 11 [dicembre]) dell'oggetto Date specificato, in base all'ora universale. getUTCSeconds() : Number Restituisce i secondi (un numero intero compreso tra 0 e 59) dell'oggetto Date specificato, in base all'ora universale. getUTCYear() : Number Restituisce l'anno di questo oggetto Date in base all'ora universale (UTC, Coordinated Universal Time). getYear() : Number Restituisce l'anno dell'oggetto Date specificato, in base all'ora locale. setDate(date:Number) : Number Imposta il giorno del mese per l'oggetto Date specificato, in base all'ora locale, e restituisce il nuovo valore, espresso in millisecondi. setFullYear(year:Numbe Imposta l'anno dell'oggetto Date specificato, in base all'ora r, [month:Number], locale, e restituisce il nuovo valore, espresso in millisecondi. [date:Number]) : Number setHours(hour:Number) Imposta le ore dell'oggetto Date specificato, in base all'ora : Number locale, e restituisce il nuovo valore, espresso in millisecondi. setMilliseconds(millise cond:Number) : Number Imposta i millisecondi per l'oggetto Date specificato, in base all'ora locale, e restituisce il nuovo valore, espresso in millisecondi. setMinutes(minute:Nu mber) : Number Imposta i minuti per un oggetto Date specificato, in base all'ora locale, e restituisce il nuovo valore, espresso in millisecondi. setMonth(month:Numbe Imposta il mese per l'oggetto Date specificato, in base all'ora r, [date:Number]) : locale, e restituisce il nuovo valore, espresso in millisecondi. Number setSeconds(second:Nu mber) : Number Imposta i secondi per l'oggetto Date specificato, in base all'ora locale, e restituisce il nuovo valore, espresso in millisecondi. setTime(millisecond: Number) : Number Imposta la data per l'oggetto Date specificato, espressa in millisecondi dalla mezzanotte del 1° gennaio 1970, e restituisce il nuovo valore, espresso in millisecondi. setUTCDate(date:Numb er) : Number Imposta la data per l'oggetto Date specificato, in base all'ora universale, e restituisce il nuovo valore, espresso in millisecondi. setUTCFullYear(year:Nu mber, [month:Number], [date:Number]) : Number Imposta l'anno per l'oggetto Date specificato (my_date) in base all'ora universale, e restituisce il nuovo valore, espresso in millisecondi. GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 286 Ultimo aggiornamento 4/5/2010 Classi ActionScript Modificatori Firma Descrizione setUTCHours(hour:Num ber, [minute:Number], [second:Number], [millisecond:Number ]) : Number Imposta l'ora per l'oggetto Date specificato, in base all'ora universale, e restituisce il nuovo valore, espresso in millisecondi. setUTCMilliseconds(mill isecond:Number) : Imposta i millisecondi per l'oggetto Date specificato, in base all'ora universale, e restituisce il nuovo valore, espresso in millisecondi. Number setUTCMinutes(minute: Number, [second:Number], [millisecond:Number ]) : Number Imposta i minuti per l'oggetto Date specificato, in base all'ora universale, e restituisce il nuovo valore, espresso in millisecondi. setUTCMonth(month:Nu mber, [date:Number]) : Number Imposta il mese, e facoltativamente il giorno, per l'oggetto Date specificato, in base all'ora universale, e restituisce il nuovo valore, espresso in millisecondi. setUTCSeconds(second: Imposta i secondi per l'oggetto Date specificato, in base all'ora Number, universale, e restituisce il nuovo valore, espresso in [millisecond:Number millisecondi. ]) : Number static setYear(year:Number) : Number Imposta l'anno per l'oggetto Date specificato, in base all'ora locale, e restituisce il nuovo valore, espresso in millisecondi. toString() : String Restituisce un valore di tipo stringa per l'oggetto Date specificato in formato leggibile. UTC(year:Number, month:Number, [date:Number], [hour:Number], [minute:Number], [second:Number], [millisecond:Number ]) : Number Restituisce il numero di millisecondi trascorsi tra la mezzanotte del 1° gennaio 1970 (ora universale) e il tempo specificato nei parametri. valueOf() : Number Restituisce il numero di millisecondi trascorsi a partire dalla mezzanotte del 1 gennaio 1970 (ora universale) per l'oggetto Date specificato. Metodi ereditati dalla classe Object addProperty (metodo Object.addProperty), hasOwnProperty (metodo Object.hasOwnProperty)isPropertyEnumerable (metodo Object.isPropertyEnumerable)isPrototypeOf (metodo Object.isPrototypeOf)registerClass (metodo Object.registerClass), toString (metodo Object.toString)unwatch (metodo Object.unwatch), valueOf (metodo Object.valueOf)watch (metodo Object.watch) Date (funzione di costruzione) public Date([yearOrTimevalue:Number], [month:Number], [date:Number], [hour:Number], [minute:Number], [second:Number], [millisecond:Number]) Crea un nuovo oggetto Date che contiene la data e l'ora specificate. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 287 Classi ActionScript La funzione di costruzione Date() richiede fino a sette parametri per specificare una data e un'ora al millisecondo. In alternativa, è possibile passare un singolo valore alla funzione di costruzione Date() che indica un valore temporale basato sul numero di millisecondi trascorsi dal 1 gennaio 1970 alle 0:00:000 GMT. Oppure è possibile non specificare alcun parametro, per fare in modo che all'oggetto data Date() vengano assegnate la data e l'ora correnti. Il codice seguente mostra diversi modi per creare un oggetto Date: var var var var d1:Date d3:Date d4:Date d5:Date = = = = new new new new Date(); Date(2000, 0, 1); Date(65, 2, 6, 9, 30, 15, 0); Date(-14159025000); Nella prima riga di codice, un oggetto Date viene impostato sull'ora in cui viene eseguita l'istruzione assignment. Nella seconda riga, viene creato un oggetto Date a cui vengono passati i parametri year, month e date, con la data e l'ora corrispondenti alle 0:00:00 GMT del 1 gennaio 2000. Nella terza riga, viene creato un oggetto Date a cui vengono passati i parametri year, month e date, con la data e l'ora corrispondenti alle 09:30:15 GMT (+ 0 millisecondi) del 6 marzo 1965. Poiché il parametro year è specificato sotto forma di numero intero a due cifre, viene interpretato come 1965. Nella quarta riga, viene passato solo un parametro, ovvero un valore temporale che rappresenta il numero di millisecondi prima o dopo le 0:00:00 GMT del 1 gennaio 1970; dal momento che il valore è negativo, rappresenta un tempo precedente alle 0:00:00 GMT del 1 gennaio 1970 e in questo caso l'ora e la data sono le seguenti: 02:56:15 GMT del 21 luglio 1969. Disponibilità Flash Lite 2.0 Parametri yearOrTimevalue:Number [opzionale] - Se vengono specificati altri parametri, questo numero rappresenta un anno (ad esempio, 1965); in caso contrario, rappresenta un valore dell'ora. Se il numero rappresenta un anno, un valore compreso tra 0 e 99 indica un anno compreso tra il 1900 e il 1999; in caso contrario, è necessario specificare tutte e quattro le cifre dell'anno. Se il numero rappresenta un valore dell'ora (ovvero se non vengono specificati altri parametri), si tratta del numero di millisecondi prima o dopo le 0:00:00 GMT del 1 gennaio 1970; un valore negativo rappresenta un'ora precedente le 0:00:00 GMT del 1 gennaio 1970, mentre un valore positivo rappresenta un'ora successiva. month:Number [opzionale] - Un numero intero da 0 (gennaio) a 11 (dicembre). date:Number [opzionale] - Un numero intero compreso tra 1 e 31. hour:Number [opzionale] - Un numero intero compreso tra 0 (mezzanotte) e 23 (11 p.m.). minute:Number [opzionale] - Un numero intero compreso tra 0 e 59. second:Number [opzionale] - Un numero intero compreso tra 0 e 59. millisecond:Number [opzionale] - Un numero intero compreso tra 0 e 999. Esempio L'esempio seguente recupera la data e l'ora correnti: var now_date:Date = new Date(); L'esempio seguente crea un nuovo oggetto Date per il compleanno di Mary del 12 agosto 1974 (dal momento che il parametro month è a base zero, l'esempio utilizza il numero 7 per il mese, anziché il numero 8): Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 288 Classi ActionScript var maryBirthday:Date = new Date (74, 7, 12); L'esempio seguente crea un nuovo oggetto Date e concatena i valori restituiti di Date.getMonth(), Date.getDate() e Date.getFullYear(): var today_date:Date = new Date(); var date_str:String = ((today_date.getMonth()+1)+"/"+today_date.getDate()+"/"+today_date.getFullYear()); trace(date_str); // displays current date in United States date format Vedete anche getMonth (metodo Date.getMonth), getDate (metodo Date.getDate), getFullYear (metodo Date.getFullYear) getDate (metodo Date.getDate) public getDate() : Number Restituisce il giorno del mese (un numero intero compreso tra 1 e 31) dell'oggetto Date specificato, in base all'ora locale. La data e l'ora locali vengono determinate in base al sistema operativo su cui il player Flash Lite è in esecuzione. Disponibilità Flash Lite 2.0 Restituisce Number - Un numero intero. Esempio L'esempio seguente crea un nuovo oggetto Date e concatena i valori restituiti di Date.getMonth(), Date.getDate() e Date.getFullYear(): var today_date:Date = new Date(); var date_str:String = (today_date.getDate()+"/"+(today_date.getMonth()+1)+"/"+today_date.getFullYear()); trace(date_str); // displays current date in United States date format Vedete anche getMonth (metodo Date.getMonth), getFullYear (metodo Date.getFullYear) getDay (metodo Date.getDay) public getDay() : Number Restituisce il giorno della settimana (0 per domenica, 1 per lunedì, e così via) dell'oggetto Date specificato, in base all'ora locale. La data e l'ora locali vengono determinate in base al sistema operativo su cui il player Flash Lite è in esecuzione. Disponibilità Flash Lite 2.0 Restituisce Number -- Un numero intero che rappresenta il giorno della settimana. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 289 Classi ActionScript Esempio L'esempio seguente crea un nuovo oggetto Date e utilizza getDay() per determinare il giorno corrente della settimana: var dayOfWeek_array:Array = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"); var today_date:Date = new Date(); var day_str:String = dayOfWeek_array[today_date.getDay()]; trace("Today is "+day_str); getFullYear (metodo Date.getFullYear) public getFullYear() : Number Restituisce l'anno completo (un numero di quattro cifre, ad esempio 2000) dell'oggetto Date specificato, in base all'ora locale. La data e l'ora locali vengono determinate in base al sistema operativo su cui il player Flash Lite è in esecuzione. Disponibilità Flash Lite 2.0 Restituisce Number - Un numero intero che rappresenta l'anno. Esempio L'esempio seguente utilizza la funzione di costruzione per creare un oggetto Date. L'istruzione trace mostra il valore restituito dal metodo getFullYear(). var my_date:Date = new Date(); trace(my_date.getYear()); // displays 104 trace(my_date.getFullYear()); // displays current year getHours (metodo Date.getHours) public getHours() : Number Restituisce l'ora (un numero intero compreso tra 0 e 23) dell'oggetto Date specificato, in base all'ora locale. La data e l'ora locali vengono determinate in base al sistema operativo su cui il player Flash Lite è in esecuzione. Disponibilità Flash Lite 2.0 Restituisce Number - Un numero intero. Esempio L'esempio seguente utilizza la funzione di costruzione per creare un oggetto Date basato sull'ora corrente e utilizza il metodo getHours() per visualizzare i valori dell'ora di tale oggetto: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 290 Classi ActionScript var my_date:Date = new Date(); trace(my_date.getHours()); var my_date:Date = new Date(); var hourObj:Object = getHoursAmPm(my_date.getHours()); trace(hourObj.hours); trace(hourObj.ampm); function getHoursAmPm(hour24:Number):Object { var returnObj:Object = new Object(); returnObj.ampm = (hour24<12) ? "AM" : "PM"; var hour12:Number = hour24%12; if (hour12 == 0) { hour12 = 12; } returnObj.hours = hour12; return returnObj; } getLocaleLongDate (metodo Date.getLocaleLongDate) public getLocaleLongDate() : String Restituisce una stringa che rappresenta la data corrente in formato esteso e formattata in base alle impostazioni internazionali attualmente definite. Nota: il formato della data dipende dal dispositivo mobile e dalle impostazioni internazionali definite. Disponibilità Flash Lite 2.0 Restituisce String - Una stringa che rappresenta la data corrente in formato esteso, formattata in base alle impostazioni internazionali attualmente definite. Esempio L'esempio seguente utilizza la funzione di costruzione per creare un oggetto Date in base all'ora corrente. Inoltre, utilizza il metodo getLocaleLongDate() per restituire una stringa che rappresenta la data corrente in formato esteso e formattata in base alle impostazioni internazionali attualmente definite, nel modo seguente: var my_date:Date = new Date(); trace(my_date.getLocaleLongDate()); Seguono alcuni esempi di valori restituiti da getLocaleLongDate(): October 16, 2005 16 October 2005 getLocaleShortDate (metodo Date.getLocaleShortDate) public getLocaleShortDate() : String Restituisce una stringa che rappresenta la data corrente in formato breve e formattata in base alle impostazioni internazionali attualmente definite. Nota: il formato della data dipende dal dispositivo mobile e dalle impostazioni internazionali definite. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 291 Classi ActionScript Disponibilità Flash Lite 2.0 Restituisce String - Una stringa che rappresenta la data corrente in formato breve, formattata in base alle impostazioni internazionali attualmente definite. Esempio L'esempio seguente utilizza la funzione di costruzione per creare un oggetto Date in base all'ora corrente. Inoltre, utilizza il metodo getLocaleShortDate() per restituire una stringa che rappresenta la data corrente in formato breve e formattata in base alle impostazioni internazionali attualmente definite, nel modo seguente: var my_date:Date = new Date(); trace(my_date.getLocaleShortDate()); Seguono alcuni esempi di valori restituiti da getLocaleLongDate(): 10/16/2005 16-10-2005 getLocaleTime (metodo Date.getLocaleTime) public getLocaleTime() : String Restituisce una stringa che rappresenta l'ora corrente formattata in base alle impostazioni internazionali attualmente definite. Nota: il formato della data dipende dal dispositivo mobile e dalle impostazioni internazionali definite. Disponibilità Flash Lite 2.0 Restituisce String - Una stringa che rappresenta l'ora corrente, formattata in base alle impostazioni internazionali attualmente definite. Esempio L'esempio seguente utilizza la funzione di costruzione per creare un oggetto Date in base all'ora corrente. Inoltre, utilizza il metodo getLocaleTime() per restituire l'ora locale corrente, nel modo seguente: var my_date:Date = new Date(); trace(my_date.getLocaleTime()); Seguono alcuni esempi di valori restituiti da getLocaleTime(): 6:10:44 PM 18:10:44 getMilliseconds (metodo Date.getMilliseconds) public getMilliseconds() : Number Restituisce i millisecondi (un numero intero compreso tra 0 e 999) dell'oggetto Date specificato, in base all'ora locale. La data e l'ora locali vengono determinate in base al sistema operativo su cui il player Flash Lite è in esecuzione. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 292 Classi ActionScript Disponibilità Flash Lite 2.0 Restituisce Number - Un numero intero. Esempio L'esempio seguente utilizza la funzione di costruzione per creare un oggetto Date basato sull'ora corrente e utilizza il metodo getMilliseconds() per visualizzare il valore dei millisecondi di tale oggetto: var my_date:Date = new Date(); trace(my_date.getMilliseconds()); getMinutes (metodo Date.getMinutes) public getMinutes() : Number Restituisce i minuti (un numero intero compreso tra 0 e 59) dell'oggetto Date specificato, in base all'ora locale. La data e l'ora locali vengono determinate in base al sistema operativo su cui il player Flash Lite è in esecuzione. Disponibilità Flash Lite 2.0 Restituisce Number - Un numero intero. Esempio L'esempio seguente utilizza la funzione di costruzione per creare un oggetto Date basato sull'ora corrente e utilizza il metodo getMinutes() per visualizzare il valore dei minuti di tale oggetto: var my_date:Date = new Date(); trace(my_date.getMinutes()); getMonth (metodo Date.getMonth) public getMonth() : Number Restituisce il mese (0 per gennaio, 1 per febbraio, e così via) dell'oggetto Date specificato, in base all'ora locale. La data e l'ora locali vengono determinate in base al sistema operativo su cui il player Flash Lite è in esecuzione. Disponibilità Flash Lite 2.0 Restituisce Number - Un numero intero. Esempio L'esempio seguente utilizza la funzione di costruzione per creare un oggetto Date basato sull'ora corrente e utilizza il metodo getMonth() per visualizzare il valore del mese di tale oggetto: var my_date:Date = new Date(); trace(my_date.getMonth()); Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 293 Classi ActionScript L'esempio seguente utilizza la funzione di costruzione per creare un oggetto Date basato sull'ora corrente e utilizza il metodo getMonth() per visualizzare il mese corrente sotto forma di valore numerico, oltre al nome del mese. var my_date:Date = new Date(); trace(my_date.getMonth()); trace(getMonthAsString(my_date.getMonth())); function getMonthAsString(month:Number):String { var monthNames_array:Array = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); return monthNames_array[month]; } getSeconds (metodo Date.getSeconds) public getSeconds() : Number Restituisce i secondi (un numero intero compreso tra 0 e 59) dell'oggetto Date specificato, in base all'ora locale. La data e l'ora locali vengono determinate in base al sistema operativo su cui il player Flash Lite è in esecuzione. Disponibilità Flash Lite 2.0 Restituisce Number - Un numero intero. Esempio L'esempio seguente utilizza la funzione di costruzione per creare un oggetto Date basato sull'ora corrente e utilizza il metodo getSeconds() per visualizzare il valore dei secondi di tale oggetto: var my_date:Date = new Date(); trace(my_date.getSeconds()); getTime (metodo Date.getTime) public getTime() : Number Restituisce il numero di millisecondi trascorsi dalla mezzanotte del 1 gennaio 1970 (ora universale) per l'oggetto Date specificato. Utilizzare questo metodo per rappresentare un istante specifico nel tempo in cui confrontare due o più oggetti Date. Disponibilità Flash Lite 2.0 Restituisce Number - Un numero intero. Esempio L'esempio seguente utilizza la funzione di costruzione per creare un oggetto Date basato sull'ora corrente e utilizza il metodo getTime() per visualizzare il numero dei millisecondi trascorsi dalla mezzanotte del 1 gennaio 1970: var my_date:Date = new Date(); trace(my_date.getTime()); Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 294 Classi ActionScript getTimezoneOffset (metodo Date.getTimezoneOffset) public getTimezoneOffset() : Number Restituisce la differenza, espressa in minuti, tra l'ora locale del computer e l'ora universale. Disponibilità Flash Lite 2.0 Restituisce Number - Un numero intero. Esempio L'esempio seguente restituisce la differenza tra l'ora legale di San Francisco e l'ora universale. L'ora legale è fattorizzata nel risultato restituito solo se la data definita nell'oggetto Date ha luogo durante l'ora legale. L'output di questo esempio è 420 minuti e viene visualizzato nel pannello Output (7 ore * 60 minuti/ora = 420 minuti). Questo esempio riguarda l'ora legale del Pacifico (GMT -07:00). Il risultato varia a seconda del luogo e del periodo dell'anno. var my_date:Date = new Date(); trace(my_date.getTimezoneOffset()); getUTCDate (metodo Date.getUTCDate) public getUTCDate() : Number Restituisce il giorno del mese (un numero intero compreso tra 1 e 31) dell'oggetto Date specificato, in base all'ora universale. Disponibilità Flash Lite 2.0 Restituisce Number - Un numero intero. Esempio L'esempio seguente crea un nuovo oggetto Date e utilizza Date.getUTCDate() e Date.getDate(). Il valore restituito da Date.getUTCDate() può essere diverso dal valore restituito da Date.getDate(), a seconda del rapporto che esiste tra il fuso orario locale e l'ora universale. var my_date:Date = new Date(2004,8,25); trace(my_date.getUTCDate()); // output: 25 Vedete anche getDate (metodo Date.getDate) getUTCDay (metodo Date.getUTCDay) public getUTCDay() : Number Restituisce il giorno della settimana (0 per domenica, 1 per lunedì, e così via) dell'oggetto Date specificato, in base all'ora universale. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 295 Classi ActionScript Disponibilità Flash Lite 2.0 Restituisce Number - Un numero intero. Esempio L'esempio seguente crea un nuovo oggetto Date e utilizza Date.getUTCDay() e Date.getDay(). Il valore restituito da Date.getUTCDay() può essere diverso dal valore restituito da Date.getDay(), a seconda del rapporto che esiste tra il fuso orario locale e l'ora universale. var today_date:Date = new Date(); trace(today_date.getDay()); // output will be based on local timezone trace(today_date.getUTCDay()); // output will equal getDay() plus or minus one Vedete anche getDay (metodo Date.getDay) getUTCFullYear (metodo Date.getUTCFullYear) public getUTCFullYear() : Number Restituisce l'anno completo (un numero di quattro cifre) dell'oggetto Date specificato, in base all'ora universale. Disponibilità Flash Lite 2.0 Restituisce Number - Un numero intero. Esempio L'esempio seguente crea un nuovo oggetto Date e utilizza Date.getUTCFullYear() e Date.getFullYear(). Il valore restituito da Date.getUTCFullYear() può essere diverso dal valore restituito da Date.getFullYear() se la data corrente è 31 dicembre o 1 gennaio, a seconda del rapporto che esiste tra il fuso orario locale e l'ora universale. var today_date:Date = new Date(); trace(today_date.getFullYear()); // display based on local timezone trace(today_date.getUTCFullYear()); // displays getYear() plus or minus 1 Vedete anche getFullYear (metodo Date.getFullYear) getUTCHours (metodo Date.getUTCHours) public getUTCHours() : Number Restituisce l'ora (un numero intero compreso tra 0 e 23) dell'oggetto Date specificato, in base all'ora universale. Disponibilità Flash Lite 2.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 296 Classi ActionScript Restituisce Number - Un numero intero. Esempio L'esempio seguente crea un nuovo oggetto Date e utilizza Date.getUTCHours() e Date.getHours(). Il valore restituito da Date.getUTCHours() può essere diverso dal valore restituito da Date.getHours(), a seconda del rapporto che esiste tra il fuso orario locale e l'ora universale. var today_date:Date = new Date(); trace(today_date.getHours()); // display based on local timezone trace(today_date.getUTCHours()); // display equals getHours() plus or minus 12 Vedete anche getHours (metodo Date.getHours) getUTCMilliseconds (metodo Date.getUTCMilliseconds) public getUTCMilliseconds() : Number Restituisce i millisecondi (un numero intero compreso tra 0 e 999) dell'oggetto Date specificato, in base all'ora universale. Disponibilità Flash Lite 2.0 Restituisce Number - Un numero intero. Esempio L'esempio seguente crea un nuovo oggetto Date e utilizza Date.getUTCMilliseconds() per restituire il valore dei millisecondi dell'oggetto Date. var today_date:Date = new Date(); trace(today_date.getUTCMilliseconds()); getUTCMinutes (metodo Date.getUTCMinutes) public getUTCMinutes() : Number Restituisce i minuti (un numero intero compreso tra 0 e 59) dell'oggetto Date specificato, in base all'ora universale. Disponibilità Flash Lite 2.0 Restituisce Number - Un numero intero. Esempio L'esempio seguente crea un nuovo oggetto Date e utilizza Date.getUTCMinutes() per restituire il valore dei minuti dell'oggetto Date. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 297 Classi ActionScript var today_date:Date = new Date(); trace(today_date.getUTCMinutes()); getUTCMonth (metodo Date.getUTCMonth) public getUTCMonth() : Number Restituisce il mese (un numero intero compreso tra 0 [gennaio] e 11 [dicembre]) dell'oggetto Date specificato, in base all'ora universale. Disponibilità Flash Lite 2.0 Restituisce Number - Un numero intero. Esempio L'esempio seguente crea un nuovo oggetto Date e utilizza Date.getUTCMonth() e Date.getMonth(). Il valore restituito da Date.getUTCMonth() può essere diverso dal valore restituito da Date.getMonth() se la data corrente è il primo o l'ultimo giorno del mese, a seconda del rapporto che esiste tra il fuso orario locale e l'ora universale. var today_date:Date = new Date(); trace(today_date.getMonth()); // output based on local timezone trace(today_date.getUTCMonth()); // output equals getMonth() plus or minus 1 Vedete anche getMonth (metodo Date.getMonth) getUTCSeconds (metodo Date.getUTCSeconds) public getUTCSeconds() : Number Restituisce i secondi (un numero intero compreso tra 0 e 59) dell'oggetto Date specificato, in base all'ora universale. Disponibilità Flash Lite 2.0 Restituisce Number - Un numero intero. Esempio L'esempio seguente crea un nuovo oggetto Date e utilizza getUTCSeconds() per restituire il valore dei secondi dell'oggetto Date. var today_date:Date = new Date(); trace(today_date.getUTCSeconds()); getUTCYear (metodo Date.getUTCYear) public getUTCYear() : Number Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 298 Classi ActionScript Restituisce l'anno della Date in base all'ora universale (UTC, Coordinated Universal Time). L'anno è l'anno completo meno 1900. Ad esempio, l'anno 2000 viene rappresentato come 100. Disponibilità Flash Lite 2.0 Restituisce Number Esempio L'esempio seguente crea un nuovo oggetto Date e utilizza Date.getUTCFullYear() e Date.getFullYear(). Il valore restituito da Date.getUTCFullYear() può essere diverso dal valore restituito da Date.getFullYear() se la data corrente è 31 dicembre o 1 gennaio, a seconda del rapporto che esiste tra il fuso orario locale e l'ora universale. var today_date:Date = new Date(); trace(today_date.getFullYear()); // display based on local timezone trace(today_date.getUTCFullYear()); // displays getYear() plus or minus 1 getYear (metodo Date.getYear) public getYear() : Number Restituisce l'anno dell'oggetto Date specificato, in base all'ora locale. La data e l'ora locali vengono determinate in base al sistema operativo su cui il player Flash Lite è in esecuzione. L'anno è l'anno completo meno 1900. Ad esempio, l'anno 2000 viene rappresentato come 100. Disponibilità Flash Lite 2.0 Restituisce Number - Un numero intero. Esempio L'esempio seguente crea un nuovo oggetto Date con il mese e l'anno impostati su maggio 2004. Il metodo Date.getYear() restituisce 104, mentre Date.getFullYear() restituisce 2004: var today_date:Date = new Date(2004,4); trace(today_date.getYear()); // output: 104 trace(today_date.getFullYear()); // output: 2004 Vedete anche getFullYear (metodo Date.getFullYear) setDate (metodo Date.setDate) public setDate(date:Number) : Number Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 299 Classi ActionScript Imposta il giorno del mese per l'oggetto Date specificato, in base all'ora locale, e restituisce il nuovo valore, espresso in millisecondi. La data e l'ora locali vengono determinate in base al sistema operativo su cui il player Flash Lite è in esecuzione. Disponibilità Flash Lite 2.0 Parametri date:Number - Un numero intero compreso tra 1 e 31. Restituisce Number - Un numero intero. Esempio L'esempio seguente crea un nuovo oggetto Date, impostando come data il 15 maggio 2004, e utilizza Date.setDate() per trasformare la data in 25 maggio 2004: var today_date:Date = new Date(2004,4,15); trace(today_date.getDate()); //displays 15 today_date.setDate(25); trace(today_date.getDate()); //displays 25 setFullYear (metodo Date.setFullYear) public setFullYear(year:Number, [month:Number], [date:Number]) : Number Imposta l'anno dell'oggetto Date specificato, in base all'ora locale, e restituisce il nuovo valore, espresso in millisecondi. Se i parametri month e date vengono specificati, vengono impostati sull'ora locale. La data e l'ora locali vengono determinate in base al sistema operativo su cui il player Flash Lite è in esecuzione. Se si chiama questo metodo, gli altri campi dell'oggetto Date non vengono modificati, ma è possibile che Date.getUTCDay() e Date.getDay() riportino un nuovo valore se il giorno della settimana cambia come conseguenza della chiamata a questo metodo. Disponibilità Flash Lite 2.0 Parametri year:Number - Un numero di quattro cifre che specifica un anno. I numeri a due cifre non rappresentano gli anni a quattro cifre; ad esempio, 99 non corrisponde all'anno 1999, bensì all'anno 99. month:Number [opzionale] - Un numero intero da 0 (gennaio) a 11 (dicembre). Se si omette questo parametro, il campo del mese dell'oggetto Date specificato non viene modificato. date:Number [opzionale] - Un numero compreso tra -1 e 31. Se si omette questo parametro, il campo della data dell'oggetto Date specificato non viene modificato. Restituisce Number - Un numero intero. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 300 Classi ActionScript Esempio L'esempio seguente crea un nuovo oggetto Date, impostando come data il 15 maggio 2004, e utilizza Date.setFullYear() per trasformare la data in 15 maggio 2002: var my_date:Date = new Date(2004,4,15); trace(my_date.getFullYear()); //output: 2004 my_date.setFullYear(2002); trace(my_date.getFullYear()); //output: 2002 Vedete anche getUTCDay (metodo Date.getUTCDay), getDay (metodo Date.getDay) setHours (metodo Date.setHours) public setHours(hour:Number) : Number Imposta le ore dell'oggetto Date specificato, in base all'ora locale, e restituisce il nuovo valore, espresso in millisecondi. La data e l'ora locali vengono determinate in base al sistema operativo su cui il player Flash Lite è in esecuzione. Disponibilità Flash Lite 2.0 Parametri hour:Number - Un numero intero compreso tra 0 (mezzanotte) e 23 (11 p.m.). Restituisce Number - Un numero intero. Esempio L'esempio seguente crea inizialmente un nuovo oggetto Date, impostando come ora e data le 8:00 a.m. del 15 maggio 2004, e utilizza Date.setHours() per trasformare l'ora in 4:00 p.m.: var my_date:Date = new Date(2004,4,15,8); trace(my_date.getHours()); // output: 8 my_date.setHours(16); trace(my_date.getHours()); // output: 16 setMilliseconds (metodo Date.setMilliseconds) public setMilliseconds(millisecond:Number) : Number Imposta i millisecondi per l'oggetto Date specificato, in base all'ora locale, e restituisce il nuovo valore, espresso in millisecondi. La data e l'ora locali vengono determinate in base al sistema operativo su cui il player Flash Lite è in esecuzione. Disponibilità Flash Lite 2.0 Parametri millisecond:Number - Un numero intero compreso tra 0 e 999. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 301 Classi ActionScript Restituisce Number - Un numero intero. Esempio L'esempio seguente crea inizialmente un nuovo oggetto Date, impostando come data le 8:30 a.m. del 15 maggio 2004 con il valore dei millisecondi impostato su 250, quindi utilizza Date.setMilliseconds() per modificare il valore dei millisecondi con 575: var my_date:Date = new Date(2004,4,15,8,30,0,250); trace(my_date.getMilliseconds()); // output: 250 my_date.setMilliseconds(575); trace(my_date.getMilliseconds()); // output: 575 setMinutes (metodo Date.setMinutes) public setMinutes(minute:Number) : Number Imposta i minuti per un oggetto Date specificato, in base all'ora locale, e restituisce il nuovo valore, espresso in millisecondi. La data e l'ora locali vengono determinate in base al sistema operativo su cui il player Flash Lite è in esecuzione. Disponibilità Flash Lite 2.0 Parametri minute:Number - Un numero intero compreso tra 0 e 59. Restituisce Number - Un numero intero. Esempio L'esempio seguente crea inizialmente un nuovo oggetto Date, impostando come ora e data le 8:00 a.m. del 15 maggio 2004, e utilizza Date.setMinutes() per trasformare l'ora in 8:30 a.m.: var my_date:Date = new Date(2004,4,15,8,0); trace(my_date.getMinutes()); // output: 0 my_date.setMinutes(30); trace(my_date.getMinutes()); // output: 30 setMonth (metodo Date.setMonth) public setMonth(month:Number, [date:Number]) : Number Imposta il mese per l'oggetto Date specificato, in base all'ora locale, e restituisce il nuovo valore, espresso in millisecondi. La data e l'ora locali vengono determinate in base al sistema operativo su cui il player Flash Lite è in esecuzione. Disponibilità Flash Lite 2.0 Parametri month:Number - Un numero intero da 0 (gennaio) a 11 (dicembre). Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 302 Classi ActionScript date:Number [opzionale] - Un numero intero compreso tra 1 e 31. Se omettete questo parametro, il campo della data dell'oggetto Date specificato non viene modificato. Restituisce Number - Un numero intero. Esempio L'esempio seguente crea un nuovo oggetto Date, impostando come data il 15 maggio 2004, e utilizza Date.setMonth() per trasformare la data in 15 giugno 2004: var my_date:Date = new Date(2004,4,15); trace(my_date.getMonth()); //output: 4 my_date.setMonth(5); trace(my_date.getMonth()); //output: 5 setSeconds (metodo Date.setSeconds) public setSeconds(second:Number) : Number Imposta i secondi per l'oggetto Date specificato, in base all'ora locale, e restituisce il nuovo valore, espresso in millisecondi. La data e l'ora locali vengono determinate in base al sistema operativo su cui il player Flash Lite è in esecuzione. Disponibilità Flash Lite 2.0 Parametri second:Number - Un numero intero compreso tra 0 e 59. Restituisce Number - Un numero intero. Esempio L'esempio seguente crea inizialmente un nuovo oggetto Date, impostando come ora e data le 08:00:00 a.m. del 15 maggio 2004, e utilizza Date.setSeconds() per trasformare l'ora in 8:00:45 a.m.: var my_date:Date = new Date(2004,4,15,8,0,0); trace(my_date.getSeconds()); // output: 0 my_date.setSeconds(45); trace(my_date.getSeconds()); // output: 45 setTime (metodo Date.setTime) public setTime(millisecond:Number) : Number Imposta la data per l'oggetto Date specificato, espressa in millisecondi e dalla mezzanotte del 1 gennaio 1970, e restituisce il nuovo valore, espresso in millisecondi. Disponibilità Flash Lite 2.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 303 Classi ActionScript Parametri millisecond:Number - Un numero; un valore intero in cui 0 corrisponde alla mezzanotte del 1 gennaio, secondo l'ora universale. Restituisce Number - Un numero intero. Esempio L'esempio seguente crea inizialmente un nuovo oggetto Date, impostando come ora e data le 08:00:00 a.m. del 15 maggio 2004, e utilizza Date.setTime() per trasformare l'ora in 08:30 a.m.: var my_date:Date = new Date(2004,4,15,8,0,0); var myDate_num:Number = my_date.getTime(); // convert my_date to milliseconds myDate_num += 30 * 60 * 1000; // add 30 minutes in milliseconds my_date.setTime(myDate_num); // set my_date Date object 30 minutes forward trace(my_date.getFullYear()); // output: 2004 trace(my_date.getMonth()); // output: 4 trace(my_date.getDate()); // output: 15 trace(my_date.getHours()); // output: 8 trace(my_date.getMinutes()); // output: 30 setUTCDate (metodo Date.setUTCDate) public setUTCDate(date:Number) : Number Imposta la data per l'oggetto Date specificato, in base all'ora universale, e restituisce il nuovo valore, espresso in millisecondi. Se si chiama questo metodo, gli altri campi dell'oggetto Date non vengono modificati, ma è possibile che Date.getUTCDay() e Date.getDay() riportino un nuovo valore se il giorno della settimana cambia come conseguenza della chiamata a questo metodo. Disponibilità Flash Lite 2.0 Parametri date:Number - Un numero; un numero intero compreso tra 1 e 31. Restituisce Number - Un numero intero. Esempio L'esempio seguente crea inizialmente un nuovo oggetto Date con la data corrente, utilizza Date.setUTCDate() per modificare il valore della data in 10, quindi lo modifica nuovamente in 25: var my_date:Date = new Date(); my_date.setUTCDate(10); trace(my_date.getUTCDate()); // output: 10 my_date.setUTCDate(25); trace(my_date.getUTCDate()); // output: 25 Vedete anche getUTCDay (metodo Date.getUTCDay), getDay (metodo Date.getDay) Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 304 Classi ActionScript setUTCFullYear (metodo Date.setUTCFullYear) public setUTCFullYear(year:Number, [month:Number], [date:Number]) : Number Imposta l'anno per l'oggetto Date specificato (my_date) in base all'ora universale, e restituisce il nuovo valore, espresso in millisecondi. Facoltativamente, questo metodo può anche impostare il mese e la data rappresentati dall'oggetto Date specificato. Se si chiama questo metodo, gli altri campi dell'oggetto Date non vengono modificati, ma è possibile che Date.getUTCDay() e Date.getDay() riportino un nuovo valore se il giorno della settimana cambia come conseguenza della chiamata a questo metodo. Disponibilità Flash Lite 2.0 Parametri year:Number - Un numero intero che rappresenta l'anno specificato come anno a quattro cifre (ad esempio, 2000). month:Number [opzionale] - Un numero intero da 0 (gennaio) a 11 (dicembre). Se si omette questo parametro, il campo del mese dell'oggetto Date specificato non viene modificato. date:Number [opzionale] - Un numero intero compreso tra 1 e 31. Se si omette questo parametro, il campo della data dell'oggetto Date specificato non viene modificato. Restituisce Number - Un numero intero. Esempio L'esempio seguente crea inizialmente un nuovo oggetto Date con la data corrente, utilizza Date.setUTCFullYear() per modificare il valore dell'anno in 2001, quindi lo modifica in 25 maggio 1995: var my_date:Date = new Date(); my_date.setUTCFullYear(2001); trace(my_date.getUTCFullYear()); // output: 2001 my_date.setUTCFullYear(1995, 4, 25); trace(my_date.getUTCFullYear()); // output: 1995 trace(my_date.getUTCMonth()); // output: 4 trace(my_date.getUTCDate()); // output: 25 Vedete anche getUTCDay (metodo Date.getUTCDay), getDay (metodo Date.getDay) setUTCHours (metodo Date.setUTCHours) public setUTCHours(hour:Number, [minute:Number], [second:Number], [millisecond:Number]) : Number Imposta l'ora per l'oggetto Date specificato, in base all'ora universale, e restituisce il nuovo valore, espresso in millisecondi. Disponibilità Flash Lite 2.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 305 Classi ActionScript Parametri hour:Number - Un numero; un numero intero compreso tra 0 (mezzanotte) e 23 (11 p.m.). minute:Number [opzionale] - Un numero; un numero intero compreso tra 0 e 59. Se omettete questo parametro, il campo dei minuti dell'oggetto Date specificato non viene modificato. second:Number [opzionale] - Un numero; un numero intero compreso tra 0 e 59. Se omettete questo parametro, il campo dei secondi dell'oggetto Date specificato non viene modificato. millisecond:Number [opzionale] - Un numero; un numero intero compreso tra 0 e 999. Se omettete questo parametro, il campo dei millisecondi dell'oggetto Date specificato non viene modificato. Restituisce Number - Un numero intero. Esempio L'esempio seguente crea inizialmente un nuovo oggetto Date con la data corrente, utilizza Date.setUTCHours() per modificare l'ora in 8:30 a.m., quindi la modifica nuovamente in 5:30:47 p.m.: var my_date:Date = new Date(); my_date.setUTCHours(8,30); trace(my_date.getUTCHours()); // output: 8 trace(my_date.getUTCMinutes()); // output: 30 my_date.setUTCHours(17,30,47); trace(my_date.getUTCHours()); // output: 17 trace(my_date.getUTCMinutes()); // output: 30 trace(my_date.getUTCSeconds()); // output: 47 setUTCMilliseconds (metodo Date.setUTCMilliseconds) public setUTCMilliseconds(millisecond:Number) : Number Imposta i millisecondi per l'oggetto Date specificato, in base all'ora universale, e restituisce il nuovo valore, espresso in millisecondi. Disponibilità Flash Lite 2.0 Parametri millisecond:Number - Un numero intero compreso tra 0 e 999. Restituisce Number - Un numero intero. Esempio L'esempio seguente crea inizialmente un nuovo oggetto Date, impostando come data le 8:30 a.m. del 15 maggio 2004 con il valore dei millisecondi impostato su 250, quindi utilizza Date.setUTCMilliseconds() per modificare il valore dei millisecondi con 575: var my_date:Date = new Date(2004,4,15,8,30,0,250); trace(my_date.getUTCMilliseconds()); // output: 250 my_date.setUTCMilliseconds(575); trace(my_date.getUTCMilliseconds()); // output: 575 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 306 Classi ActionScript setUTCMinutes (metodo Date.setUTCMinutes) public setUTCMinutes(minute:Number, [second:Number], [millisecond:Number]) : Number Imposta i minuti per l'oggetto Date specificato, in base all'ora universale, e restituisce il nuovo valore, espresso in millisecondi. Disponibilità Flash Lite 2.0 Parametri minute:Number - Un numero intero compreso tra 0 e 59. second:Number [opzionale] - Un numero intero compreso tra 0 e 59. Se omettete questo parametro, il campo dei secondi dell'oggetto Date specificato non viene modificato. millisecond:Number [opzionale] - Un numero intero compreso tra 0 e 999. Se omettete questo parametro, il campo dei millisecondi dell'oggetto Date specificato non viene modificato. Restituisce Number - Un numero intero. Esempio L'esempio seguente crea inizialmente un nuovo oggetto Date, impostando come ora e data le 08:00 a.m. del 15 maggio 2004, e utilizza Date.setUTCMinutes() per trasformare l'ora in 08:30 a.m.: var my_date:Date = new Date(2004,4,15,8,0); trace(my_date.getUTCMinutes()); // output: 0 my_date.setUTCMinutes(30); trace(my_date.getUTCMinutes()); // output: 30 setUTCMonth (metodo Date.setUTCMonth) public setUTCMonth(month:Number, [date:Number]) : Number Imposta il mese, e facoltativamente il giorno, per l'oggetto Date specificato, in base all'ora universale, e restituisce il nuovo valore, espresso in millisecondi. Se si chiama questo metodo, gli altri campi dell'oggetto Date non vengono modificati ma è possibile che Date.getUTCDay() e Date.getDay() riportino un nuovo valore se il giorno della settimana cambia come conseguenza del fatto che sia stato specificato un valore per il parametro date. Disponibilità Flash Lite 2.0 Parametri month:Number - Un numero intero da 0 (gennaio) a 11 (dicembre). date:Number [opzionale] - Un numero intero compreso tra 1 e 31. Se omettete questo parametro, il campo della data dell'oggetto Date specificato non viene modificato. Restituisce Number - Un numero intero. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 307 Classi ActionScript Esempio L'esempio seguente crea un nuovo oggetto Date, impostando come data il 15 maggio 2004, e utilizza Date.setMonth() per trasformare la data in 15 giugno 2004: var today_date:Date = new Date(2004,4,15); trace(today_date.getUTCMonth()); // output: 4 today_date.setUTCMonth(5); trace(today_date.getUTCMonth()); // output: 5 Vedete anche getUTCDay (metodo Date.getUTCDay), getDay (metodo Date.getDay) setUTCSeconds (metodo Date.setUTCSeconds) public setUTCSeconds(second:Number, [millisecond:Number]) : Number Imposta i secondi per l'oggetto Date specificato, in base all'ora universale, e restituisce il nuovo valore, espresso in millisecondi. Disponibilità Flash Lite 2.0 Parametri second:Number - Un numero intero compreso tra 0 e 59. millisecond:Number [opzionale] - Un numero intero compreso tra 0 e 999. Se omettete questo parametro, il campo dei millisecondi dell'oggetto Date specificato non viene modificato. Restituisce Number - Un numero intero. Esempio L'esempio seguente crea inizialmente un nuovo oggetto Date, impostando come ora e data le 08:00:00 a.m. del 15 maggio 2004, e utilizza Date.setSeconds() per trasformare l'ora in 08:30:45 a.m.: var my_date:Date = new Date(2004,4,15,8,0,0); trace(my_date.getUTCSeconds()); // output: 0 my_date.setUTCSeconds(45); trace(my_date.getUTCSeconds()); // output: 45 setYear (metodo Date.setYear) public setYear(year:Number) : Number Imposta l'anno per l'oggetto Date specificato, in base all'ora locale, e restituisce il nuovo valore, espresso in millisecondi. La data e l'ora locali vengono determinate in base al sistema operativo su cui il player Flash Lite è in esecuzione. Disponibilità Flash Lite 2.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 308 Classi ActionScript Parametri year:Number - Un numero che rappresenta l'anno. Se year è un numero intero compreso tra 0 e 99, setYear imposta l'anno come 1900 + year; in caso contrario, l'anno è il valore del parametro year. Restituisce Number - Un numero intero. Esempio L'esempio seguente crea un nuovo oggetto Date con la data impostata sul 25 maggio 2004, utilizza setYear() per modificare l'anno in 1999, quindi modifica l'anno in 2003: var my_date:Date = new Date(2004,4,25); trace(my_date.getYear()); // output: 104 trace(my_date.getFullYear()); // output: 2004 my_date.setYear(99); trace(my_date.getYear()); // output: 99 trace(my_date.getFullYear()); // output: 1999 my_date.setYear(2003); trace(my_date.getYear()); // output: 103 trace(my_date.getFullYear()); // output: 2003 toString (metodo Date.toString) public toString() : String Restituisce un valore di tipo stringa per l'oggetto Date specificato in formato leggibile. Disponibilità Flash Lite 2.0 Restituisce String - Una stringa. Esempio L'esempio seguente restituisce le informazioni presenti nell'oggetto Date di nome dateOfBirth_date sotto forma di stringa. L'output dalle istruzioni trace sono espressi in ora locale e variano di conseguenza. Per l'ora legale del Pacifico l'output precede di sette ore l'ora universale: Mon Aug 12 18:15:00 GMT-0700 1974. var dateOfBirth_date:Date = new Date(74, 7, 12, 18, 15); trace (dateOfBirth_date); trace (dateOfBirth_date.toString()); UTC (metodo Date.UTC) public static UTC(year:Number, month:Number, [date:Number], [hour:Number], [minute:Number], [second:Number], [millisecond:Number]) : Number Restituisce il numero di millisecondi trascorsi tra la mezzanotte del 1 gennaio 1970 (ora universale) e il tempo specificato nei parametri. Si tratta di un metodo statico che viene richiamato attraverso la funzione di costruzione dell'oggetto Date e non attraverso un oggetto Date specifico. Questo metodo consente di creare un oggetto Date che presuppone l'ora universale, mentre la funzione di costruzione di Date presuppone l'ora locale. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 309 Classi ActionScript Disponibilità Flash Lite 2.0 Parametri year:Number - Un numero intero a quattro cifre che rappresenta l'anno (ad esempio, 2000). month:Number - Un numero intero da 0 (gennaio) a 11 (dicembre). date:Number [opzionale] - Un numero intero compreso tra 1 e 31. hour:Number [opzionale] - Un numero intero compreso tra 0 (mezzanotte) e 23 (11 p.m.). minute:Number [opzionale] - Un numero intero compreso tra 0 e 59. second:Number [opzionale] - Un numero intero compreso tra 0 e 59. millisecond:Number [opzionale] - Un numero intero compreso tra 0 e 999. Restituisce Number - Un numero intero. Esempio L'esempio seguente crea un nuovo oggetto Date di nome maryBirthday_date definito nell'ora universale. Si tratta della variazione in base all'ora universale dell'esempio utilizzato per il metodo della funzione di costruzione new Date. L'output è in ora locale e varia di conseguenza. Per l'ora legale del Pacifico l'output precede di sette ore l'ora universale. Sun Aug 11 17:00:00 GMT-0700 1974. var maryBirthday_date:Date = new Date(Date.UTC(1974, 7, 12)); trace(maryBirthday_date); valueOf (metodo Date.valueOf) public valueOf() : Number Restituisce il numero di millisecondi trascorsi a partire dalla mezzanotte del 1 gennaio 1970 (ora universale) per l'oggetto Date specificato. Disponibilità Flash Lite 2.0 Restituisce Number - Il numero di millisecondi. Error Object | +-Error public class Error extends Object GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 310 Ultimo aggiornamento 4/5/2010 Classi ActionScript Contiene informazioni su un errore che si è verificato in uno script. È possibile creare un oggetto Error mediante la funzione di costruzione Error. Di solito, un nuovo oggetto Error viene generato (throw) dall'interno di un blocco di codice try, che viene successivamente rilevato da un blocco di codice catch o finally. È anche possibile creare una sottoclasse della classe Error e generare delle istanze di tale sottoclasse. Disponibilità Flash Lite 2.0 Riepilogo delle proprietà Modificatori Proprietà Descrizione message:String Contiene il messaggio associato all'oggetto Error. name:String Contiene il nome dell'oggetto Error. Proprietà ereditate dalla classe Object constructor (proprietà Object.constructor), __proto__ (proprietà Object._proto)prototype (proprietà Object.prototype), __resolve (proprietà Object.__resolve) Riepilogo delle funzioni di costruzione Firma Descrizione Error([message:String Crea un nuovo oggetto Error. ]) Riepilogo dei metodi Modificatori Firma Descrizione toString() : String Restituisce la stringa "Error" per impostazione predefinita oppure il valore contenuto in Error.message, se definito. Metodi ereditati dalla classe Object addProperty (metodo Object.addProperty), hasOwnProperty (metodo Object.hasOwnProperty)isPropertyEnumerable (metodo Object.isPropertyEnumerable)isPrototypeOf (metodo Object.isPrototypeOf)registerClass (metodo Object.registerClass), toString (metodo Object.toString)unwatch (metodo Object.unwatch), valueOf (metodo Object.valueOf)watch (metodo Object.watch) Error (funzione di costruzione) public Error([message:String]) Crea un nuovo oggetto Error. Se si passa un parametro message, il suo valore viene assegnato alla proprietà Error.message. Disponibilità Flash Lite 2.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 311 Classi ActionScript Parametri message:String [opzionale] - Una stringa associata all'oggetto Error. Esempio Nell'esempio seguente, una funzione genera un errore (con un messaggio specificato) se le due stringhe che le vengono passate non sono identiche: function compareStrings(str1_str:String, str2_str:String):Void { if (str1_str != str2_str) { throw new Error("Strings do not match."); } } try { compareStrings("Dog", "dog"); // output: Strings do not match. } catch (e_err:Error) { trace(e_err.toString()); } Vedete anche Istruzione throw, Istruzione try..catch..finally message (proprietà Error.message) public message : String Il messaggio associato all'oggetto Error. Per impostazione predefinita, il valore di questa proprietà è "Error". È possibile specificare una proprietà message quando si crea un oggetto Error passando la stringa di errore alla funzione di costruzione Error. Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente, una funzione genera un messaggio specificato a seconda dei parametri immessi in theNum. Se è possibile dividere due numeri, vengono visualizzati SUCCESS e il numero. Gli errori specifici vengono visualizzati se si tenta di dividere per 0 o se si immette solo un parametro: function divideNum(num1:Number, num2:Number):Number { if (isNaN(num1) || isNaN(num2)) { throw new Error("divideNum function requires two numeric parameters."); } else if (num2 == 0) { throw new Error("cannot divide by zero."); } return num1/num2; } try { var theNum:Number = divideNum(1, 0); trace("SUCCESS! "+theNum); } catch (e_err:Error) { trace("ERROR! "+e_err.message); trace("\t"+e_err.name); } Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 312 Classi ActionScript Se si prova questo codice ActionScript senza alcuna modifica ai numeri che si sta dividendo, un errore viene visualizzato nel pannello Output poiché si sta tentando di dividere per 0. Vedete anche Istruzione throw, Istruzione try..catch..finally name (proprietà Error.name) public name : String Contiene il nome dell'oggetto Error. Per impostazione predefinita, il valore di questa proprietà è "Error". Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente, una funzione genera un errore specificato a seconda dei due numeri che si tenta di dividere. Aggiungere il codice ActionScript seguente al fotogramma 1 della linea temporale: function divideNumber(numerator:Number, denominator:Number):Number { if (isNaN(numerator) || isNaN(denominator)) { throw new Error("divideNumber() function requires two numeric parameters."); } else if (denominator == 0) { throw new DivideByZeroError(); } return numerator/denominator; } try { var theNum:Number = divideNumber(1, 0); trace("SUCCESS! "+theNum); // output: DivideByZeroError -> Unable to divide by zero. } catch (e_err:DivideByZeroError) { // divide by zero error occurred trace(e_err.name+" -> "+e_err.toString()); } catch (e_err:Error) { // generic error occurred trace(e_err.name+" -> "+e_err.toString()); } Aggiungere il codice seguente a un file .as denominato DivideByZeroError.as e salvare il file della classe nella stessa directory del documento fla. class DivideByZeroError extends Error { var name:String = "DivideByZeroError"; var message:String = "Unable to divide by zero."; } Vedete anche Istruzione throw, Istruzione try..catch..finally toString (metodo Error.toString) public toString() : String Restituisce la stringa "Error" oppure il valore contenuto in Error.message, se definito. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 313 Classi ActionScript Disponibilità Flash Lite 2.0 Restituisce String - Una stringa. Esempio Nell'esempio seguente, una funzione genera un errore (con un messaggio specificato) se le due stringhe che le vengono passate non sono identiche: function compareStrings(str1_str:String, str2_str:String):Void { if (str1_str != str2_str) { throw new Error("Strings do not match."); } } try { compareStrings("Dog", "dog"); // output: Strings do not match. } catch (e_err:Error) { trace(e_err.toString()); } Vedete anche message (proprietà Error.message), Istruzione throw, Istruzione try..catch..finally ExtendedKey Object | +-ExtendedKey public class ExtendedKey extends Object Fornisce codici tasto estesi che possono essere restituiti dal metodo Key.getCode(). Disponibilità Flash Lite 2.0 Esempio L'esempio seguente crea un listener che viene chiamato quando viene premuto un tasto. Utilizza il metodo Key.getCode() per ottenere il codice tasto del tasto che era stato premuto: GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 314 Ultimo aggiornamento 4/5/2010 Classi ActionScript var myListener = new Object(); myListener.onKeyDown = function() { var code = Key.getCode(); trace(code + " down"); } myListener.onKeyUp = function() { trace("onKeyUp called"); } Key.addListener(myListener); Vedete anche getCode (metodo Key.getCode) Riepilogo delle proprietà Modificatori Proprietà Descrizione static SOFT1:String Il valore del codice tasto per il tasto virtuale SOFT1. static SOFT3:String Il valore del codice tasto per il tasto virtuale SOFT3. static SOFT4:String Il valore del codice tasto per il tasto virtuale SOFT4. static SOFT5:String Il valore del codice tasto per il tasto virtuale SOFT5. static SOFT6:String Il valore del codice tasto per il tasto virtuale SOFT6. static SOFT7:String Il valore del codice tasto per il tasto virtuale SOFT7. static SOFT8:String Il valore del codice tasto per il tasto virtuale SOFT8. static SOFT9:String Il valore del codice tasto per il tasto virtuale SOFT9. static SOFT10:String Il valore del codice tasto per il tasto virtuale SOFT10. static SOFT11:String Il valore del codice tasto per il tasto virtuale SOFT11. static SOFT12:String Il valore del codice tasto per il tasto virtuale SOFT12. static SOFT2:String Il valore del codice tasto per il tasto virtuale SOFT2. Proprietà ereditate dalla classe Object constructor (proprietà Object.constructor), __proto__ (proprietà Object._proto)prototype (proprietà Object.prototype), __resolve (proprietà Object.__resolve) Riepilogo dei metodi Metodi ereditati dalla classe Object addProperty (metodo Object.addProperty), hasOwnProperty (metodo Object.hasOwnProperty)isPropertyEnumerable (metodo Object.isPropertyEnumerable)isPrototypeOf (metodo Object.isPrototypeOf)registerClass (metodo Object.registerClass), toString (metodo Object.toString)unwatch (metodo Object.unwatch), valueOf (metodo Object.valueOf)watch (metodo Object.watch) Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 315 Classi ActionScript SOFT1 (proprietà ExtendedKey.SOFT1) public static SOFT1 : String Il valore del codice tasto per il tasto virtuale SOFT1. Il codice tasto SOFT1 corrisponde sempre al tasto virtuale sinistro; SOFT2 sempre al tasto virtuale destro. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente crea un listener che gestisce i tasti virtuali sinistro e destro: var myListener:Object = new Object(); myListener.onKeyDown = function () { var keyCode = Key.getCode(); switch (keyCode) { case ExtendedKey.SOFT1: // Handle left soft key. break; case ExtendedKey.SOFT2: // Handle right soft key break; } } Key.addListener(myListener); SOFT2 (proprietà ExtendedKey.SOFT2) public static SOFT2 : String Il valore del codice tasto per il tasto virtuale SOFT2. Il codice tasto SOFT2 corrisponde sempre al tasto virtuale destro; SOFT1 sempre al tasto virtuale sinistro. Disponibilità Flash Lite 2.0 Vedete anche SOFT1 (proprietà ExtendedKey.SOFT1) SOFT3 (proprietà ExtendedKey.SOFT3) public static SOFT3 : String Il valore del codice tasto per il tasto virtuale SOFT3. Disponibilità Flash Lite 2.0 SOFT4 (proprietà ExtendedKey.SOFT4) public static SOFT4 : String Il valore del codice tasto per il tasto virtuale SOFT4. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 316 Classi ActionScript Disponibilità Flash Lite 2.0 SOFT5 (proprietà ExtendedKey.SOFT5) public static SOFT5 : String Il valore del codice tasto per il tasto virtuale SOFT5. Disponibilità Flash Lite 2.0 SOFT6 (proprietà ExtendedKey.SOFT6) public static SOFT6 : String Il valore del codice tasto per il tasto virtuale SOFT6. Disponibilità Flash Lite 2.0 SOFT7 (proprietà ExtendedKey.SOFT7) public static SOFT7 : String Il valore del codice tasto per il tasto virtuale SOFT7. Disponibilità Flash Lite 2.0 SOFT8 (proprietà ExtendedKey.SOFT8) public static SOFT8 : String Il valore del codice tasto per il tasto virtuale SOFT8. Disponibilità Flash Lite 2.0 SOFT9 (proprietà ExtendedKey.SOFT9) public static SOFT9 : String Il valore del codice tasto per il tasto virtuale SOFT9. SOFT10 (proprietà ExtendedKey.SOFT10) public static SOFT10 : String Il valore del codice tasto per il tasto virtuale SOFT10. Disponibilità Flash Lite 2.0 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 317 Ultimo aggiornamento 4/5/2010 Classi ActionScript SOFT11 (proprietà ExtendedKey.SOFT11) public static SOFT11 : String Il valore del codice tasto per il tasto virtuale SOFT11. Disponibilità Flash Lite 2.0 SOFT12 (proprietà ExtendedKey.SOFT12) public static SOFT12 : String Il valore del codice tasto per il tasto virtuale SOFT12. Disponibilità Flash Lite 2.0 Function Object | +-Function public dynamic class Function extends Object Sia le funzioni ActionScript definite dall'utente che quelle incorporate sono rappresentate da oggetti Function, che a loro volta sono istanze della classe Function. Disponibilità Flash Lite 2.0 Riepilogo delle proprietà Proprietà ereditate dalla classe Object constructor (proprietà Object.constructor), __proto__ (proprietà Object._proto)prototype (proprietà Object.prototype), __resolve (proprietà Object.__resolve) Riepilogo dei metodi Modificatori Firma Descrizione apply(thisObject:Obje Specifica il valore di thisObject da utilizzare all'interno delle ct, [argArray:Array]) funzioni chiamate da ActionScript. call(thisObject:Object , [parameter1:Object]) Metodi ereditati dalla classe Object Richiama la funzione rappresentata da un oggetto Function. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 318 Classi ActionScript addProperty (metodo Object.addProperty), hasOwnProperty (metodo Object.hasOwnProperty)isPropertyEnumerable (metodo Object.isPropertyEnumerable)isPrototypeOf (metodo Object.isPrototypeOf)registerClass (metodo Object.registerClass), toString (metodo Object.toString)unwatch (metodo Object.unwatch), valueOf (metodo Object.valueOf)watch (metodo Object.watch) apply (metodo Function.apply) public apply(thisObject:Object, [argArray:Array]) 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. Disponibilità Flash Lite 2.0 Parametri thisObject:Object - L'oggetto a cui viene applicato myFunction. argArray:Array [opzionale] - Un array i cui elementi vengono passati come parametri a myFunction. Restituisce Qualunque valore specificato dalla funzione chiamata. Esempio Le chiamate alla funzione seguenti sono equivalenti: Math.atan2(1, 0) Math.atan2.apply(null, [1, 0]) L'esempio seguente mostra il modo in cui apply() passa un array di parametri: function theFunction() { trace(arguments); } // create a new array to pass as a parameter to apply() var firstArray:Array = new Array(1,2,3); theFunction.apply(null,firstArray); // outputs: 1,2,3 // create a second array to pass as a parameter to apply() var secondArray:Array = new Array("a", "b", "c"); theFunction.apply(null,secondArray); // outputs a,b,c L'esempio seguente mostra il modo in cui apply() passa un array di parametri e ne specifica il valore: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 319 Classi ActionScript // define a function function theFunction() { trace("this == myObj? " + (this == myObj)); trace("arguments: " + arguments); } // instantiate an object var myObj:Object = new Object(); // create arrays to pass as a parameter to apply() var firstArray:Array = new Array(1,2,3); var secondArray:Array = new Array("a", "b", "c"); // use apply() to set the value of this to be myObj and send firstArray theFunction.apply(myObj,firstArray); // output: // this == myObj? true // arguments: 1,2,3 // use apply() to set the value of this to be myObj and send secondArray theFunction.apply(myObj,secondArray); // output: // this == myObj? true // arguments: a,b,c Vedete anche call (metodo Function.call) call (metodo Function.call) public call(thisObject:Object, [parameter1:Object]) 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 richiamare 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. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 320 Classi ActionScript Disponibilità Flash Lite 2.0 Parametri thisObject:Object - Un oggetto che specifica il valore di thisObject all'interno del corpo della funzione. parameter1:Object [opzionale] - Un parametro da passare a myFunction. È possibile specificare zero o più parametri. Esempio L'esempio seguente utilizza Function.call() per fare in modo che una funzione si comporti come metodo di un altro oggetto, senza memorizzare la funzione nell'oggetto: function myObject() { } function myMethod(obj) { trace("this == obj? " + (this == obj)); } var obj:Object = new myObject(); myMethod.call(obj, obj); Viene visualizzata l'istruzione trace: this == obj? true Vedete anche apply (metodo Function.apply) Key Object | +-Key public class Key extends Object La classe Key è una classe di primo livello di cui è possibile utilizzare metodi e proprietà senza ricorrere a una funzione di costruzione. Per creare le interfacce, utilizzare i metodi della classe Key. Le proprietà delle classi Key sono costanti che rappresentano i tasti utilizzati più frequentemente per il controllo delle applicazioni, quali i tasti freccia, Pg su e Pg giù. Per determinare quali sono i tasti supportati da un dispositivo, utilizzare le proprietà System.capabilities. Non tutti i dispositivi e i tipi di contenuto Flash Lite supportano tutti i tasti. I dispositivi che supportano la navigazione in due direzioni, ad esempio, non supportano i tasti di navigazione sinistro e destro. Non tutti i dispositivi inoltre hanno accesso ai tasti virtuali del dispositivo. Per ulteriori informazioni, vedete Sviluppo di applicazioni Flash Lite 2.x e 3.x. Disponibilità Flash Lite 2.0 Vedete anche ExtendedKey GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 321 Ultimo aggiornamento 4/5/2010 Classi ActionScript “has4WayKeyAS (proprietà capabilities.has4WayKeyAS)” a pagina 251 “hasMappableSoftKeys (proprietà capabilities.hasMappableSoftKeys)” a pagina 254 “hasQWERTYKeyboard (proprietà capabilities.hasQWERTYKeyboard)” a pagina 257 “softKeyCount (proprietà capabilities.softKeyCount)” a pagina 264 Riepilogo delle proprietà Modificatori Proprietà Descrizione static BACKSPACE:Number Il valore del codice tasto per il tasto Backspace (8). static CAPSLOCK:Number Il valore del codice tasto per il tasto Bloc Maiusc (20). static CONTROL:Number Il valore del codice tasto per il tasto Ctrl (17). static DELETEKEY:Number Il valore del codice tasto per il tasto Canc (46). static DOWN:Number Il valore del codice tasto per il tasto freccia giù (40). static END:Number Il valore del codice tasto per il tasto Fine (35). static ENTER:Number Il valore del codice tasto per il tasto Invio (13). static ESCAPE:Number Il valore del codice tasto per il tasto Esc (27). static HOME:Number Il valore del codice tasto per il tasto Home (36). static INSERT:Number Il valore del codice tasto per il tasto Ins (45). static LEFT:Number Il valore del codice tasto per il tasto freccia sinistra (37). static _listeners:Array [sola lettura] Un elenco dei riferimenti a tutti gli oggetti listener registrati con l'oggetto Key. static PGDN:Number Il valore del codice tasto per il tasto Pg giù (34). static PGUP:Number Il valore del codice tasto per il tasto Pg su (33). static RIGHT:Number Il valore del codice tasto per il tasto freccia destra (39). static SHIFT:Number Il valore del codice tasto per il tasto Maiusc (16). static SPACE:Number Il valore del codice tasto per la barra spaziatrice (32). static TAB:Number Il valore del codice tasto per il tasto Tab (9). static UP:Number Il valore del codice tasto per il tasto freccia su (38). Proprietà ereditate dalla classe Object constructor (proprietà Object.constructor), __proto__ (proprietà Object._proto), prototype (proprietà Object.prototype), __resolve (proprietà Object.__resolve) Riepilogo degli eventi Evento Descrizione onKeyDown = Notificato quando viene premuto un tasto. function() {} onKeyUp = function() {} Notificato quando viene rilasciato un tasto. GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 322 Ultimo aggiornamento 4/5/2010 Classi ActionScript Riepilogo dei metodi Modificatori Firma Descrizione static addListener(listener: Object) : Void Registra un oggetto per ricevere la notifica di onKeyDown e onKeyUp. static getAscii() : Number Restituisce il codice ASCII dell'ultimo tasto premuto o rilasciato. static getCode() : Number Restituisce il valore del codice tasto dell'ultimo tasto premuto o rilasciato. static isDown(code:Number) : Boolean Restituisce true se viene premuto il tasto specificato in code; false in caso contrario. static removeListener(listene Rimuove un oggetto registrato in precedenza con r:Object) : Boolean Key.addListener(). Metodi ereditati dalla classe Object addProperty (metodo Object.addProperty), hasOwnProperty (metodo Object.hasOwnProperty), isPropertyEnumerable (metodo Object.isPropertyEnumerable), isPrototypeOf (metodo Object.isPrototypeOf)registerClass (metodo Object.registerClass), toString (metodo Object.toString)unwatch (metodo Object.unwatch), valueOf (metodo Object.valueOf), watch (metodo Object.watch) addListener (metodo Key.addListener) public static addListener(listener:Object) : Void Registra un oggetto per ricevere le notifiche di onKeyDown e onKeyUp. Quando un tasto viene premuto o rilasciato, a prescindere dal fatto che sia stato attivato, per tutti gli oggetti "in ascolto" registrati con addListener() viene richiamato il metodo onKeyDown oppure onKeyUp. Più oggetti possono "ascoltare" le notifiche della tastiera. Disponibilità Flash Lite 2.0 Parametri listener:Object - Un oggetto con metodi onKeyDown and onKeyUp. Esempio L'esempio seguente crea un nuovo oggetto listener e definisce le funzioni per onKeyDown e onKeyUp. L'ultima riga chiama addListener() per registrare il listener con l'oggetto Key in modo che possa ricevere le notifiche dagli eventi key down (tasto premuto) e key up (tasto rilasciato). var myListener:Object = new Object(); myListener.onKeyDown = function () { trace ("You pressed a key."); } myListener.onKeyUp = function () { trace ("You released a key."); } Key.addListener(myListener); Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 323 Classi ActionScript Vedete anche getCode (metodo Key.getCode), isDown (metodo Key.isDown), onKeyDown (listener di eventi Key.onKeyDown), onKeyUp (listener di eventi Key.onKeyUp), removeListener (metodo Key.removeListener) BACKSPACE (proprietà Key.BACKSPACE) public static BACKSPACE : Number Il valore del codice tasto per il tasto Backspace (8). Disponibilità Flash Lite 2.0 Esempio L'esempio seguente crea un nuovo oggetto listener e definisce una funzione per onKeyDown. L'ultima riga utilizza addListener() per registrare il listener con l'oggetto Key in modo che possa ricevere le notifiche dagli eventi key down (tasto premuto). var keyListener:Object = new Object(); keyListener.onKeyDown = function() { if (Key.isDown(Key.BACKSPACE)) { trace("you pressed the Backspace key."); } else { trace("you DIDN'T press the Backspace key."); } }; Key.addListener(keyListener); CAPSLOCK (proprietà Key.CAPSLOCK) public static CAPSLOCK : Number Il valore del codice tasto per il tasto Bloc Maiusc (20). Disponibilità Flash Lite 2.0 CONTROL (proprietà Key.CONTROL) public static CONTROL : Number Il valore del codice tasto per il tasto Ctrl (17). Disponibilità Flash Lite 2.0 DELETEKEY (proprietà Key.DELETEKEY) public static DELETEKEY : Number Il valore del codice tasto per il tasto Canc (46). Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 324 Classi ActionScript Disponibilità Flash Lite 2.0 DOWN (proprietà Key.DOWN) public static DOWN : Number Il valore del codice tasto per il tasto freccia giù (40). Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente, un clip filmato di nome car_mc viene spostato di una distanza costante (10) quando si premono i tasti freccia. Inserire un clip filmato sullo stage e assegnare il nome di istanza car_mc. var DISTANCE:Number = 10; var keyListener_obj:Object = new Object(); keyListener_obj.onKeyDown = function() { switch (Key.getCode()) { case Key.LEFT : car_mc._x -= DISTANCE; break; case Key.UP : car_mc._y -= DISTANCE; break; case Key.RIGHT : car_mc._x += DISTANCE; break; case Key.DOWN : car_mc._y += DISTANCE; break; } }; Key.addListener(keyListener_obj); END (proprietà Key.END) public static END : Number Il valore del codice tasto per il tasto Fine (35). Disponibilità Flash Lite 2.0 ENTER (proprietà Key.ENTER) public static ENTER : Number Il valore del codice tasto per il tasto Invio (13). Disponibilità Flash Lite 2.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 325 Classi ActionScript Esempio Nell'esempio seguente, un clip filmato viene spostato quando si premono i tasti freccia. Il clip filmato si arresta quando si preme il tasto di selezionare e si elimina l'evento onEnterFrame. Inserire un clip filmato sullo stage e assegnare il nome di istanza car_mc. var DISTANCE:Number = 5; var keyListener:Object = new Object(); keyListener.onKeyDown = function() { switch (Key.getCode()) { case Key.LEFT : car_mc.onEnterFrame = function() { this._x -= DISTANCE; }; break; case Key.UP : car_mc.onEnterFrame = function() { this._y -= DISTANCE; }; break; case Key.RIGHT : car_mc.onEnterFrame = function() { this._x += DISTANCE; }; break; case Key.DOWN : car_mc.onEnterFrame = function() { this._y += DISTANCE; }; break; case Key.ENTER : delete car_mc.onEnterFrame; break; } }; Key.addListener(keyListener); ESCAPE (proprietà Key.ESCAPE) public static ESCAPE : Number Il valore del codice tasto per il tasto Esc (27). Disponibilità Flash Lite 2.0 Esempio L'esempio seguente imposta un timer. Quando si preme il tasto di selezione, il pannello Output visualizza il tempo impiegato per premere il tasto. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 326 Classi ActionScript var keyListener:Object = new Object(); keyListener.onKeyDown = function() { if (Key.isDown(Key.ENTER)) { // get the current timer, convert the value // to seconds and round it to two decimal places. var timer:Number = Math.round(getTimer()/10)/100; trace("You pressed the Select key after: "+getTimer()+"ms ("+timer+"s)"); } }; Key.addListener(keyListener); getAscii (metodo Key.getAscii) public static getAscii() : Number Restituisce il codice ASCII dell'ultimo tasto premuto o rilasciato. I valori ASCII restituiti sono i valori della tastiera inglese. Ad esempio, se si preme Maiusc+2 su una tastiera giapponese o americana, Key.getAscii() restituisce @. Disponibilità Flash Lite 2.0 Restituisce Number - Il valore ASCII dell'ultimo tasto premuto. Il metodo restituisce 0 se non è stato premuto o rilasciato alcun tasto oppure se il valore ASCII non è accessibile per motivi di sicurezza. Esempio L'esempio seguente chiama il metodo getAscii() ogni volta che viene premuto un tasto. L'esempio crea un oggetto listener di nome keyListener e definisce una funzione che risponde all'evento onKeyDown chiamando Key.getAscii(). L'oggetto keyListener viene quindi registrato nell'oggetto Key, che trasmette il messaggio onKeyDown ogni volta che viene premuto un tasto durante la riproduzione del file SWF. var keyListener:Object = new Object(); keyListener.onKeyDown = function() { trace("The ASCII code for the last key typed is: "+Key.getAscii()); }; Key.addListener(keyListener); L'esempio seguente aggiunge una chiamata a Key.getAscii() per mostrare la differenza tra i due metodi getAscii() e getCode(). La differenza principale con Key.getAscii() consiste nel fatto che Key.getCode() non fa distinzione tra lettere maiuscole e minuscole. var keyListener:Object = new Object(); keyListener.onKeyDown = function() { trace("For the last key typed:"); trace("\tThe Key code is: "+Key.getCode()); trace("\tThe ASCII value is: "+Key.getAscii()); trace(""); }; Key.addListener(keyListener); getCode (metodo Key.getCode) public static getCode() : Number Restituisce il valore del codice tasto dell'ultimo tasto premuto o rilasciato. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 327 Classi ActionScript l'implementazione Flash Lite di questo metodo restituisce una stringa o un numero, a seconda del codice del tasto passato dalla piattaforma. Gli unici codici tasto validi sono quelli standard accettati da questa classe, nonché i codici tasto speciali elencati come proprietà della classe ExtendedKey. Disponibilità Flash Lite 2.0 Restituisce Number - Il codice tasto dell'ultimo tasto premuto. Il metodo restituisce 0 se non è stato premuto o rilasciato alcun tasto oppure se il codice del tasto non è accessibile per motivi di sicurezza. Esempio L'esempio seguente chiama il metodo getCode() ogni volta che viene premuto un tasto. L'esempio crea un oggetto listener di nome keyListener e definisce una funzione che risponde all'evento onKeyDown chiamando Key.getCode(). L'oggetto keyListener viene registrato nell'oggetto Key, che trasmette il messaggio onKeyDown ogni volta che viene premuto un tasto durante la riproduzione del file SWF. var keyListener:Object = new Object(); keyListener.onKeyDown = function() { // Compare return value of getCode() to constant if (Key.getCode() == Key.ENTER) { trace ("Virtual key code: "+Key.getCode()+" (ENTER key)"); } else { trace("Virtual key code: "+Key.getCode()); } }; Key.addListener(keyListener); L'esempio seguente aggiunge una chiamata a Key.getAscii() per mostrare la differenza tra i due metodi. La differenza principale con Key.getAscii() consiste nel fatto che Key.getCode() non fa distinzione tra lettere maiuscole e minuscole. var keyListener:Object = new Object(); keyListener.onKeyDown = function() { trace("For the last key typed:"); trace("\tThe Key code is: "+Key.getCode()); trace("\tThe ASCII value is: "+Key.getAscii()); trace(""); }; Key.addListener(keyListener); Disponibilità Flash Lite 2.0 Vedete anche getAscii (metodo Key.getAscii) HOME (proprietà Key.HOME) public static HOME : Number Il valore del codice tasto per il tasto Home (36). Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 328 Classi ActionScript Disponibilità Flash Lite 2.0 INSERT (proprietà Key.INSERT) public static INSERT : Number Il valore del codice tasto per il tasto Ins (45). Disponibilità Flash Lite 2.0 isDown (metodo Key.isDown) public static isDown(code:Number) : Boolean Restituisce true se viene premuto il tasto specificato in code; false in caso contrario. Disponibilità Flash Lite 2.0 Parametri code:Number - Il valore del codice tasto assegnato a un tasto specifico oppure una proprietà della classe Key associata a un tasto specifico. Restituisce Boolean - Restituisce il valore true se viene premuto il tasto specificato in code; false in caso contrario. Esempio Lo script seguente consente all'utente di utilizzare i tasti freccia sinistra e destra per controllare la posizione di un clip filmato sullo stage denominato car_mc: car_mc.onEnterFrame = function() { if (Key.isDown(Key.RIGHT)) { this._x += 10; } else if (Key.isDown(Key.LEFT)) { this._x -= 10; } }; LEFT (proprietà Key.LEFT) public static LEFT : Number Il valore del codice tasto per il tasto freccia sinistra (37). Disponibilità Flash Lite 2.0 _listeners (proprietà Key._listeners) public static _listeners : Array [read-only] Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 329 Classi ActionScript Un elenco dei riferimenti a tutti gli oggetti listener registrati con l'oggetto Key. Questa proprietà è destinata all'uso interno, tuttavia può risultare utile per determinare il numero di listener attualmente registrati con l'oggetto key. Gli oggetti vengono aggiunti e rimossi da questo array per mezzo di chiamate ai metodi addListener() e removelistener(). Disponibilità Flash Lite 2.0 Esempio L'esempio seguente mostra come utilizzare la proprietà length per determinare il numero di oggetti listener attualmente registrati nell'oggetto Key. var myListener:Object = new Object(); myListener.onKeyDown = function () { trace ("You pressed a key."); } Key.addListener(myListener); trace(Key._listeners.length); // Output: 1 onKeyDown (listener di eventi Key.onKeyDown) onKeyDown = function() {} Notificato quando viene premuto un tasto. Per utilizzare onKeyDown è necessario creare un oggetto listener. Quindi è possibile definire una funzione per onKeyDown e utilizzare addListener() per registrare il listener con l'oggetto Key, come illustrato nell'esempio seguente: var keyListener:Object = new Object(); keyListener.onKeyDown = function() { trace("DOWN -> Code: "+Key.getCode()+"\tACSII: "+Key.getAscii()+"\tKey: "+chr(Key.getAscii())); }; keyListener.onKeyUp = function() { trace("UP -> Code: "+Key.getCode()+"\tACSII: "+Key.getAscii()+"\tKey: "+chr(Key.getAscii())); }; Key.addListener(keyListener); I listener consentono a parti di codice diverse di cooperare, dal momento che più listener possono ricevere notifiche relative allo stesso evento. Disponibilità Flash Lite 2.0 Vedete anche addListener (metodo Key.addListener) onKeyUp (listener di eventi Key.onKeyUp) onKeyUp = function() {} Notificato quando viene rilasciato un tasto. Per utilizzare onKeyUp è necessario creare un oggetto listener. Quindi è possibile definire una funzione per onKeyUp e utilizzare addListener() per registrare il listener con l'oggetto Key, come illustrato nell'esempio seguente: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 330 Classi ActionScript var keyListener:Object = new Object(); keyListener.onKeyDown = function() { trace("DOWN -> Code: "+Key.getCode()+"\tACSII: "+Key.getAscii()+"\tKey: "+chr(Key.getAscii())); }; keyListener.onKeyUp = function() { trace("UP -> Code: "+Key.getCode()+"\tACSII: "+Key.getAscii()+"\tKey: "+chr(Key.getAscii())); }; Key.addListener(keyListener); I listener consentono a parti di codice diverse di cooperare, dal momento che più listener possono ricevere notifiche relative allo stesso evento. Disponibilità Flash Lite 2.0 Vedete anche addListener (metodo Key.addListener) PGDN (proprietà Key.PGDN) public static PGDN : Number Il valore del codice tasto per il tasto Pg giù (34). Disponibilità Flash Lite 2.0 PGUP (proprietà Key.PGUP) public static PGUP : Number Il valore del codice tasto per il tasto Pg su (33). Disponibilità Flash Lite 2.0 removeListener (metodo Key.removeListener) public static removeListener(listener:Object) : Boolean Rimuove un oggetto registrato in precedenza con Key.addListener(). Disponibilità Flash Lite 2.0 Parametri listener:Object - Un oggetto. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 331 Classi ActionScript Restituisce Boolean - Se listener è stato rimosso correttamente, il metodo restituisce true. Se listener non è stato rimosso correttamente (ad esempio, se listener non faceva parte dell'elenco dei listener dell'oggetto Key), il metodo restituisce false. RIGHT (proprietà Key.RIGHT) public static RIGHT : Number Il valore del codice tasto per il tasto freccia destra (39). Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente, un clip filmato di nome car_mc viene spostato quando si premono i tasti freccia. var DISTANCE:Number = 10; var keyListener_obj:Object = new Object(); keyListener_obj.onKeyDown = function() { switch (Key.getCode()) { case Key.LEFT : car_mc._x -= DISTANCE; break; case Key.UP : car_mc._y -= DISTANCE; break; case Key.RIGHT : car_mc._x += DISTANCE; break; case Key.DOWN : car_mc._y += DISTANCE; break; } }; Key.addListener(keyListener_obj); SHIFT (proprietà Key.SHIFT) public static SHIFT : Number Il valore del codice tasto per il tasto Maiusc (16). Disponibilità Flash Lite 2.0 SPACE (proprietà Key.SPACE) public static SPACE : Number Il valore del codice tasto per la barra spaziatrice (32). Disponibilità Flash Lite 2.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 332 Classi ActionScript TAB (proprietà Key.TAB) public static TAB : Number Il valore del codice tasto per il tasto Tab (9). Disponibilità Flash Lite 2.0 UP (proprietà Key.UP) public static UP : Number Il valore del codice tasto per il tasto freccia su (38). Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente, un clip filmato sullo stage di nome car_mc viene spostato di una distanza costante (10) quando si premono i tasti freccia. var DISTANCE:Number = 10; var keyListener_obj:Object = new Object(); keyListener_obj.onKeyDown = function() { switch (Key.getCode()) { case Key.LEFT : car_mc._x -= DISTANCE; break; case Key.UP : car_mc._y -= DISTANCE; break; case Key.RIGHT : car_mc._x += DISTANCE; break; case Key.DOWN : car_mc._y += DISTANCE; break; } }; Key.addListener(keyListener_obj); LoadVars Object | +-LoadVars public dynamic class LoadVars extends Object GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 333 Ultimo aggiornamento 4/5/2010 Classi ActionScript La classe LoadVars rappresenta un'alternativa alla funzione loadVariables() quando si desidera trasferire le variabili tramite HTTP tra Flash Lite e un server Web. Utilizzare la classe LoadVars per ottenere la verifica del corretto caricamento dei dati e per monitorare l'avanzamento dello scaricamento. La classe LoadVars consente di inviare tutte le variabili di un oggetto a un URL specificato e di caricare in un oggetto tutte le variabili in corrispondenza di un URL specificato. Inoltre, consente di inviare delle variabili specifiche, anziché tutte le variabili, per migliorare l'efficienza dell'applicazione. Utilizzare il gestore LoadVars.onLoad per garantire che l'applicazione venga eseguita quando vengono caricati i dati, e non prima. La classe LoadVars funziona in modo molto simile alla classe XML; utilizza i metodi load(), send() e sendAndLoad() per comunicare con un server. La differenza principale tra le classi LoadVars e XML sta nel fatto che LoadVars trasferisce coppie nome/valore di ActionScript anziché una struttura ad albero DOM (Document Object Model) XML memorizzata nell'oggetto XML. La classe LoadVars segue le stesse restrizioni di sicurezza della classe XML. Disponibilità Flash Lite 2.0 Vedete anche Funzione loadVariables, onLoad (gestore LoadVars.onLoad), hasXMLSocket (proprietà capabilities.hasXMLSocket) Riepilogo delle proprietà Modificatori Proprietà contentType:String Descrizione Il tipo MIME che viene inviato al server quando chiamate LoadVars.send() o LoadVars.sendAndLoad(). loaded:Boolean Un valore booleano che indica se un'operazione load o sendAndLoad è stata completata; non è definito per impostazione predefinita. Proprietà ereditate dalla classe Object constructor (proprietà Object.constructor), __proto__ (proprietà Object._proto)prototype (proprietà Object.prototype), __resolve (proprietà Object.__resolve) Riepilogo degli eventi Evento Descrizione onData = function(src:String) {} Richiamato quando i dati sono stati completamente scaricati dal server o quando si verifica un errore mentre i dati vengono scaricati da un server. Richiamato quando un'operazione LoadVars.load() o function(success:Bo LoadVars.sendAndLoad() è terminata. olean) {} onLoad = Riepilogo delle funzioni di costruzione Firma Descrizione LoadVars() Crea un oggetto LoadVars. GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 334 Ultimo aggiornamento 4/5/2010 Classi ActionScript Riepilogo dei metodi Modificatori Firma Descrizione addRequestHeader(head er:Object, headerValue:String) : Aggiunge o modifica intestazioni di richieste HTTP, ad esempio Content-Type o SOAPAction, inviate con azioni POST. Void decode(queryString:S tring) : Void Converte la stringa variabile in proprietà dell'oggetto LoadVars specificato. getBytesLoaded() : Number Restituisce il numero di byte scaricati da LoadVars.load() o LoadVars.sendAndLoad(). getBytesTotal() : Number Restituisce il numero di byte scaricati da LoadVars.load() o LoadVars.sendAndLoad(). load(url:String) : Boolean Scarica le variabili dall'URL specificato, ne analizza i dati e inserisce le variabili risultanti nell'oggetto LoadVars. send(url:String, target:String, [method:String]) : Boolean Invia le variabili dell'oggetto LoadVars all'URL specificato. sendAndLoad(url:Strin g, target:Object, [method:String]) : Boolean Invia le variabili dell'oggetto LoadVars all'URL specificato. toString() : String Restituisce una stringa che contiene tutte le variabili enumerabili nell'oggetto LoadVars, con la codifica del contenuto MIME application/x-www-form-urlencoded. Metodi ereditati dalla classe Object addProperty (metodo Object.addProperty), hasOwnProperty (metodo Object.hasOwnProperty), isPropertyEnumerable (metodo Object.isPropertyEnumerable)isPrototypeOf (metodo Object.isPrototypeOf), registerClass (metodo Object.registerClass), toString (metodo Object.toString)unwatch (metodo Object.unwatch), valueOf (metodo Object.valueOf), watch (metodo Object.watch) addRequestHeader (metodo LoadVars.addRequestHeader) public addRequestHeader(header:Object, headerValue:String) : Void Aggiunge o modifica intestazioni di richiesta HTTP, quali Content-Type o SOAPAction, inviate con azioni POST. Nel primo uso, al metodo si passano due stringhe: header e headerValue. Nel secondo uso; si passa un array di stringhe, alternando i nomi e i valori delle intestazioni. Se vengono effettuate più chiamate per impostare lo stesso nome di intestazione, ciascun valore successivo sostituisce il valore impostato nella chiamata precedente. Le seguenti intestazioni HTTP standard non non possono essere aggiunte o modificate con questo metodo: AcceptRanges, Age, Allow, Allowed, Connection, Content-Length, Content-Location, Content-Range, ETag, Host, Last-Modified, Locations, Max-Forwards, Proxy-Authenticate, Proxy-Authorization, Public, Range, Retry-After, Server, TE, Trailer, Transfer-Encoding, Upgrade, URI, Vary, Via, Warning e WWW-Authenticate. Disponibilità Flash Lite 2.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 335 Classi ActionScript Parametri header:Object - Una stringa o un array di stringhe che rappresenta il nome di intestazione di una richiesta HTTP. headerValue:String - Una stringa che rappresenta il valore associato a header. Esempio L'esempio seguente aggiunge un'intestazione HTTP personalizzata di nome SOAPAction con un valore Foo all'oggetto my_lv: my_lv.addRequestHeader("SOAPAction", "'Foo'"); Nell'esempio seguente viene creato un array denominato headers che contiene due intestazioni HTTP alternate e i relativi valori associati. L'array viene passato come argomento a addRequestHeader(). var headers = ["Content-Type", "text/plain", "X-ClientAppVersion", "2.0"]; my_lv.addRequestHeader(headers); L'esempio seguente crea un nuovo oggetto LoadVars che aggiunge un'intestazione di richiesta di nome FLASH-UUID. L'intestazione contiene una variabile che può essere verificata dal server. var my_lv:LoadVars = new LoadVars(); my_lv.addRequestHeader("FLASH-UUID", "41472"); my_lv.name = "Mort"; my_lv.age = 26; my_lv.send("http://flash-mx.com/mm/cgivars.cfm", "_blank", "POST"); Vedete anche addRequestHeader (metodo XML.addRequestHeader) contentType (proprietà LoadVars.contentType) public contentType : String Il tipo MIME che viene inviato al server quando si chiama LoadVars.send() o LoadVars.sendAndLoad(). Il valore predefinito è application/x-www-form-urlencoded. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente crea un oggetto LoadVars e visualizza il tipo di contenuto predefinito dei dati che vengono inviati al server. var my_lv:LoadVars = new LoadVars(); trace(my_lv.contentType); // output: application/x-www-form-urlencoded Vedete anche send (metodo LoadVars.send), sendAndLoad (metodo LoadVars.sendAndLoad) decode (metodo LoadVars.decode) public decode(queryString:String) : Void Converte la stringa variabile in proprietà dell'oggetto LoadVars specificato. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 336 Classi ActionScript Questo metodo è utilizzato internamente dal gestore di eventi LoadVars.onData. Per la maggior parte degli utenti non è necessario chiamare questo metodo direttamente. Se si ignora il gestore di eventi LoadVars.onData, è possibile chiamare esplicitamenteLoadVars.decode() per analizzare la sintassi di una stringa di variabili. Disponibilità Flash Lite 2.0 Parametri queryString:String - Una stringa di query con codifica URL che contiene coppie nome/valore. Esempio L'esempio seguente traccia le tre variabili: // Create a new LoadVars object var my_lv:LoadVars = new LoadVars(); //Convert the variable string to properties my_lv.decode("name=Mort&score=250000"); trace(my_lv.toString()); // Iterate over properties in my_lv for (var prop in my_lv) { trace(prop+" -> "+my_lv[prop]); } Vedete anche onData (gestore LoadVars.onData), parseXML (metodo XML.parseXML) getBytesLoaded (metodo LoadVars.getBytesLoaded) public getBytesLoaded() : Number Restituisce il numero di byte scaricati da una chiamata a LoadVars.load() o LoadVars.sendAndLoad(). Questo metodo restituisce il valore non definito se non è in corso o non è ancora iniziata alcuna operazione di caricamento. Nota: non è possibile utilizzare questo metodo per restituire informazioni relative a un file locale sul disco rigido. Disponibilità Flash Lite 2.0 Restituisce Number - Un numero intero. Vedete anche load (metodo LoadVars.load), sendAndLoad (metodo LoadVars.sendAndLoad) getBytesTotal (metodo LoadVars.getBytesTotal) public getBytesTotal() : Number Restituisce il numero di byte scaricati da LoadVars.load() o LoadVars.sendAndLoad(). Questo metodo restituisce non definito se non è in corso o non è ancora iniziata alcuna operazione di caricamento. Il valore undefined viene restituito anche se non è possibile determinare il numero di byte totali (ad esempio, nel caso in cui lo scaricamento sia stato iniziato ma il server non abbia trasmesso un valore HTTP content-length). Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 337 Classi ActionScript Nota: non è possibile utilizzare questo metodo per restituire informazioni relative a un file locale sul disco rigido. Disponibilità Flash Lite 2.0 Restituisce Number - Un numero intero. Vedete anche load (metodo LoadVars.load), sendAndLoad (metodo LoadVars.sendAndLoad) load (metodo LoadVars.load) public load(url:String) : Boolean Scarica le variabili dall'URL specificato, ne analizza i dati e colloca le variabili risultanti in un oggetto LoadVars. Qualsiasi proprietà dell'oggetto LoadVars con lo stesso nome delle variabili scaricate viene sovrascritta. Qualsiasi proprietà dell'oggetto LoadVars con un nome diverso delle variabili scaricate non viene sovrascritta. Questa azione è asincrona. I dati scaricati devono essere del tipo contenuto MIME application/x-www-form-urlencoded. Si tratta dello stesso formato utilizzato da loadVariables(). Nei file SWF eseguiti in una versione di Flash Player precedente alla 7, l'url deve trovarsi nello stesso superdominio del file SWF che emette la chiamata. Un superdominio può essere derivato rimovendo il componente più a sinistra dell'URL di un file. Ad esempio, un file SWF all'indirizzo www.someDomain.com può scaricare i dati da origini presenti in store.someDomain.com poiché entrambi i file si trovano nello stesso superdominio di nome someDomain.com. Nei file SWF di qualunque versione eseguita in Flash Player 7 o superiore, url deve trovarsi esattamente nello stesso dominio. Ad esempio, un file SWF che si trova nel sito www.someDomain.com può caricare dati solo da altre origini presenti nel sito www.someDomain.com. Per caricare dati da un dominio diverso, è possibile collocare un file di criteri dei domini sul server che ospita il file SWF. Inoltre, nei file pubblicati per Flash Player 7, la distinzione tra maiuscole e minuscole è supportata per le variabili esterne caricate con LoadVars.load(). Questo metodo è simile a XML.load(). Disponibilità Flash Lite 2.0 Parametri url:String - L'URL da cui scaricare le variabili. Se il file SWF che emette la chiamata viene eseguito in un browser Web, l'url deve trovarsi nello stesso dominio del file SWF; per informazioni dettagliate, consultare la sezione Descrizione. Restituisce Boolean - Se non viene passato alcun parametro (null), restituisce false; in caso contrario true. Utilizzare il gestore di eventi onLoad() per verificare la riuscita del caricamento dei dati. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 338 Classi ActionScript Esempio Il codice seguente definisce un gestore onLoad() che segnala quando i dati vengono restituiti all'applicazione da un file di testo, quindi carica i dati dal file di testo e li invia alla finestra Output. var my_lv:LoadVars = new LoadVars(); my_lv.onLoad = function(success:Boolean) { if (success) { trace(this.toString()); } else { trace("Error loading/parsing LoadVars."); } }; my_lv.load("http://www.helpexamples.com/flash/params.txt"); Vedete anche load (metodo XML.load), loaded (proprietà LoadVars.loaded), onLoad (gestore LoadVars.onLoad) loaded (proprietà LoadVars.loaded) public loaded : Boolean Un valore booleano che indica se un'operazione load o sendAndLoad è stata completata; non è definito per impostazione predefinita. Quando viene avviata un'operazione LoadVars.load() o LoadVars.sendAndLoad(), la proprietà loaded viene impostata su false; al completamento dell'operazione, la proprietà loaded viene impostata su true. Se l'operazione non è ancora completata oppure non è riuscita a causa di un errore, la proprietà loaded rimane impostata su false. La proprietà è simile alla proprietà XML.loaded. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente carica un file di testo e visualizza le informazioni nel pannello Output quando l'operazione viene completata. var my_lv:LoadVars = new LoadVars(); my_lv.onLoad = function(success:Boolean) { trace("LoadVars loaded successfully: "+this.loaded); }; my_lv.load("http://www.helpexamples.com/flash/params.txt"); Vedete anche load (metodo LoadVars.load), sendAndLoad (metodo LoadVars.sendAndLoad), load (metodo XML.load) LoadVars (funzione di costruzione) public LoadVars() Crea un oggetto LoadVars. Chiama i metodi dell'oggetto LoadVars per inviare e caricare dati. Disponibilità Flash Lite 2.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 339 Classi ActionScript Esempio Nell'esempio seguente viene creato un oggetto LoadVars denominato my_lv: var my_lv:LoadVars = new LoadVars(); onData (gestore LoadVars.onData) onData = function(src:String) {} Richiamato quando i dati sono stati completamente scaricati dal server o quando si verifica un errore mentre si stanno scaricando i dati da un server. Questo gestore viene richiamato prima che i dati vengano analizzati e può essere utilizzato per chiamare una routine di analisi sintattica personalizzata anziché quella incorporata in Flash Lite. Il valore del parametro src passato alla funzione assegnata a LoadVars.onData può essere non definito o una stringa che contiene le coppie nome/valore con codifica URL scaricate dal server. Se il parametro srcnon è definito, significa che si è verificato un errore durante lo scaricamento dei dati dal server. L'implementazione predefinita di LoadVars.onData chiama LoadVars.onLoad. È possibile sostituire questa implementazione predefinita mediante l'assegnazione di una funzione personalizzata a LoadVars.onData, ma LoadVars.onLoad viene chiamato solo nell'implementazione di LoadVars.onData. Disponibilità Flash Lite 2.0 Parametri src:String - Un valore di stringa o undefined; i dati originari (non analizzati) di una chiamata a un metodo LoadVars.load() o LoadVars.sendAndLoad(). Esempio L'esempio seguente carica un file di testo e visualizza le informazioni in un'istanza TextField di nome content_txt quando l'operazione viene completata. Se si verifica un errore, le informazioni vengono visualizzate nel pannello Output. var my_lv:LoadVars = new LoadVars(); my_lv.onData = function(src:String) { if (src == undefined) { trace("Error loading content."); return; } content_txt.text = src; }; my_lv.load("http://www.helpexamples.com/flash/params.txt", my_lv, "GET"); Vedete anche onLoad (gestore LoadVars.onLoad), load (metodo LoadVars.load), sendAndLoad (metodo LoadVars.sendAndLoad) onLoad (gestore LoadVars.onLoad) onLoad = function(success:Boolean) {} Richiamato quando un'operazione LoadVars.load() o LoadVars.sendAndLoad() è terminata. Se l'operazione è stata eseguita correttamente, my_lv viene compilato con le variabili scaricate dall'operazione, che sono disponibili quando viene richiamato questo gestore. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 340 Classi ActionScript Questo gestore non è definito per impostazione predefinita. Questo gestore di eventi è simile a XML.onLoad. Disponibilità Flash Lite 2.0 Parametri success:Boolean - Indica se l'operazione di caricamento ha avuto esito positivo (true) o negativo (false). Esempio Vedere l'esempio per il metodo LoadVars.sendAndLoad(). Vedete anche onLoad (gestore XML.onLoad), loaded (proprietà LoadVars.loaded), load (metodo LoadVars.load), sendAndLoad (metodo LoadVars.sendAndLoad) send (metodo LoadVars.send) public send(url:String, target:String, [method:String]) : Boolean Invia le variabili dell'oggetto LoadVars all'URL specificato. Le variabili vengono concatenate in una stringa nel formato application/x-www-form-urlencoded o nel valore di LoadVars.contentType. Viene sempre utilizzato il metodo POST, a meno che non sia specificato GET. È necessario specificare il parametro target per eseguire lo script o l'applicazione corrispondente all'URL specificato. Se si omette il parametro target, la funzione restituisce true, ma non viene eseguito lo script o l'applicazione. Il metodo send() è utile se si desidera che la risposta del server: • Sostituisca il contenuto SWF (utilizzare "_self" come parametro target); • Venga visualizzata in una nuova finestra (utilizzare "_blank" come parametro target); • Venga visualizzata nel frame principale o di primo livello (utilizzare "_parent" o "_top" come parametro target); • Venga visualizzata in un frame con nome (utilizzare il nome del frame come stringa per il parametro target); Una chiamata al metodo send() con esito positivo apre sempre una nuova finestra del browser o sostituisce il contenuto di una finestra o di un frame esistente. Se invece si desidera inviare informazioni a un server e continuare a riprodurre il file SWF senza aprire una nuova finestra o senza sostituire il contenuto di una finestra o di un frame, utilizzare il metodo LoadVars.sendAndLoad(). Questo metodo è simile a XML.send(). Disponibilità Flash Lite 2.0 Parametri url:String - L'URL su cui caricare le variabili. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 341 Classi ActionScript target:String - La finestra o il frame del browser in cui viene visualizzata una risposta. È possibile immettere il nome di una finestra specifica o selezionare tra i seguenti nomi riservati di destinazioni: • "_self" indica il frame corrente nella finestra corrente. • "_blank" indica una nuova finestra. • "_parent" indica l'elemento principale del frame corrente. • "_top" specifica il frame di primo livello nella finestra corrente. method:String (opzionale) - Il metodo GET o POST del protocollo HTTP. Il valore predefinito è POST. Restituisce Boolean - False, se non è specificato alcun parametro, in caso contrario true. Esempio L'esempio seguente copia due valori dai campi di testo e invia i dati a uno script CFM, che viene utilizzato per gestire le informazioni. Ad esempio, lo script può verificare se l'utente ha totalizzato un punteggio elevato e successivamente inserire tale dato in una tabella di database. var my_lv:LoadVars = new LoadVars(); my_lv.playerName = playerName_txt.text; my_lv.playerScore = playerScore_txt.text; my_lv.send("setscore.cfm", "_blank", "POST"); Vedete anche sendAndLoad (metodo LoadVars.sendAndLoad), send (metodo XML.send) sendAndLoad (metodo LoadVars.sendAndLoad) public sendAndLoad(url:String, target:Object, [method:String]) : Boolean Invia le variabili dell'oggetto LoadVars all'URL specificato. La risposta del server viene scaricata e analizzata, quindi le variabili risultanti vengono collocate nell'oggetto target. Le variabili vengono inviate allo stesso modo di LoadVars.send(). Le variabili vengono scaricate in target allo stesso modo di LoadVars.load(). Nei file SWF eseguiti in una versione di Flash Player precedente alla 7 (ad esempio, Flash Lite 1.x), l'url deve trovarsi nello stesso superdominio del file SWF che emette la chiamata. Un superdominio può essere derivato rimovendo il componente più a sinistra dell'URL di un file. Ad esempio, un file SWF all'indirizzo www.someDomain.com può scaricare i dati da origini presenti in store.someDomain.com poiché entrambi i file si trovano nello stesso superdominio di nome someDomain.com. Nei file SWF di qualunque versione eseguita in Flash Player 7 o superiore (ad esempio, Flash Lite 2.x e 3.x), l'url deve trovarsi esattamente nello stesso dominio. Ad esempio, un file SWF che si trova nel sito www.someDomain.com può caricare dati solo da altre origini presenti nel sito www.someDomain.com. Per caricare dati da un dominio diverso, è possibile collocare un file di criteri dei domini sul server che ospita il file SWF. Questo metodo è simile a XML.sendAndLoad(). Disponibilità Flash Lite 2.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 342 Classi ActionScript Parametri url:String - L'URL su cui caricare le variabili. Se il file SWF che emette la chiamata viene eseguito in un browser Web, url deve trovarsi nello stesso dominio del file SWF. target:Object - L'oggetto LoadVars o XML che riceve le variabili scaricate. method:String (opzionale) - Il metodo GET o POST del protocollo HTTP. Il valore predefinito è POST. Restituisce Boolean Esempio Per l'esempio seguente, aggiungere allo stage un campo di testo di nome name_txt, un campo di testo dinamico di nome result_txt e un pulsante di nome submit_btn. Quando l'utente fa clic sul pulsante, vengono creati due oggetti LoadVars: send_lv e result_lv. L'oggetto send_lv copia il nome dall'istanza name_txt e invia i dati a greeting.cfm. Il risultato di questo script viene caricato nell'oggetto result_lv e la risposta del server viene visualizzata nel campo di testo result_txt. Aggiungere il codice ActionScript seguente al fotogramma 1 della linea temporale: var send_lv:LoadVars = new LoadVars(); var result_lv:LoadVars = new LoadVars(); result_lv.onLoad = function(success:Boolean) { if (success) { result_txt.text = result_lv.welcomeMessage; } else { result_txt.text = "Error connecting to server."; } }; submit_btn.onRelease = function(){ send_lv.name = name_txt.text; send_lv.sendAndLoad("http://www.flash-mx.com/mm/greeting.cfm", result_lv); } Vedete anche send (metodo LoadVars.send), load (metodo LoadVars.load), sendAndLoad (metodo XML.sendAndLoad) toString (metodo LoadVars.toString) public toString() : String Restituisce una stringa che contiene tutte le variabili enumerabili nell'oggetto LoadVars, con la codifica del contenuto MIME application/x-www-form-urlencoded. Disponibilità Flash Lite 2.0 Restituisce String Esempio L'esempio seguente crea un'istanza di un nuovo oggetto LoadVars(), crea due proprietà e utilizza toString() per restituire una stringa che contiene entrambe le proprietà in formato con codifica URL: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 343 Classi ActionScript var my_lv:LoadVars = new LoadVars(); my_lv.name = "Gary"; my_lv.age = 26; trace (my_lv.toString()); //output: age=26&name=Gary LocalConnection Object | +-LocalConnection public dynamic class LocalConnection extends Object La classe LocalConnection consente di sviluppare file SWF in grado di inviare istruzioni gli uni agli altri senza utilizzare fscommand() o JavaScript. Gli oggetti LocalConnection possono comunicare solo tra file SWF in esecuzione sulla stessa unità client; tuttavia, possono essere eseguiti in applicazioni diverse. È possibile utilizzare gli oggetti LocalConnection per inviare e ricevere dati in un solo file SWF, ma non si tratta di un'implementazione standard; tutti gli esempi di questa sezione descrivono la comunicazione tra file SWF diversi. usate i metodi LocalConnection.send() e LocalConnection.connect()per inviare e ricevere dati. Notate che i comandi LocalConnection.send() e LocalConnection.connect() specificano entrambi lo stesso nome di connessione, lc_name: // Code in the receiving SWF file this.createTextField("result_txt", 1, 10, 10, 100, 22); result_txt.border = true; var receiving_lc:LocalConnection = new LocalConnection(); receiving_lc.methodToExecute = function(param1:Number, param2:Number) { result_txt.text = param1+param2; }; receiving_lc.connect("lc_name"); // Code in the sending SWF file var sending_lc:LocalConnection = new LocalConnection(); sending_lc.send("lc_name", "methodToExecute", 5, 7); Il modo più semplice per utilizzare un oggetto LocalConnection consiste nel consentire la comunicazione solo tra gli oggetti LocalConnection di uno stesso dominio, per evitare problemi legati alla sicurezza. Tuttavia, se è necessario consentire la comunicazione tra domini diversi, esistono diversi modi per implementare delle misure di sicurezza. Per ulteriori informazioni, consultate la descrizione del parametro connectionName in LocalConnection.send() e le voci relative a LocalConnection.allowDomain e LocalConnection.domain(). Disponibilità Flash Lite 3.1 Riepilogo delle proprietà constructor (proprietà Object.constructor), __proto__ (proprietà Object._proto), prototype (proprietà Object.prototype), __resolve (proprietà Object.__resolve) GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 344 Ultimo aggiornamento 4/5/2010 Classi ActionScript Riepilogo degli eventi Evento Descrizione allowDomain = Richiamato ogni volta che un oggetto LocalConnection riceve la richiesta di richiamare un metodo di un altro oggetto LocalConnection. function([sendi ngDomain:]) {}String allowInsecureDomai n = function([sendi ngDomain:]) {}String onStatus = function(infoOb ject:Object){} Richiamato ogni volta che un oggetto LocalConnection ricevente, contenuto in un file SWF residente in un dominio che utilizza un protocollo di sicurezza (HTTPS), riceve la richiesta di richiamare un metodo da un oggetto LocalConnection mittente contenuto in un file SWF residente in un dominio che non utilizza un protocollo di sicurezza. Richiamato dopo che un oggetto LocalConnection mittente tenta di inviare un comando a un oggetto LocalConnection ricevente. Riepilogo delle funzioni di costruzione Firma Descrizione LocalConnection() Crea un oggetto LocalConnection. Riepilogo dei metodi Modificatori Firma Descrizione close() : Void Chiude (disconnette) un oggetto LocalConnection. connect(connectionNa me:String) :Boolean Prepara un oggetto LocalConnection a ricevere i comandi provenienti da un comando LocalConnection.send() (detto oggetto LocalConnection mittente). domain() : String Restituisce una stringa che rappresenta il dominio della posizione del file SWF corrente. send(connectionName: String, methodName:String, [args: Object]) :Boolean Richiama il metodo di nome method su una connessione aperta con il comando LocalConnection.connect(connectionName) (l'oggetto LocalConnection ricevente). addProperty (metodo Object.addProperty), hasOwnProperty (metodo Object.hasOwnProperty), isPropertyEnumerable (metodo Object.isPropertyEnumerable), isPrototypeOf (metodo Object.isPrototypeOf), registerClass (metodo Object.registerClass), toString (metodo Object.toString), unwatch (metodo Object.unwatch), valueOf (metodo Object.valueOf), watch (metodo Object.watch) allowDomain (gestore LocalConnection.allowDomain) allowDomain = function([sendingDomain:String]) {} Richiamato ogni volta che receiving_lc riceve la richiesta di richiamare un metodo da un oggetto LocalConnection mittente. Flash prevede che il codice implementato in questo gestore restituisca un valore booleano true o false. Se il gestore non restituisce il valore true, la richiesta dell'oggetto mittente viene ignorata e il metodo non viene richiamato. Quando questo gestore di eventi è assente, il player Flash Lite applica la politica per la sicurezza predefinita, che equivale al codice seguente: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 345 Classi ActionScript my_lc.allowDomain = function (sendingDomain) { return (sendingDomain == this.domain()); } Utilizzare LocalConnection.allowDomain per consentire esplicitamente agli oggetti LocalConnection dei domini specificati, o di qualunque dominio, di eseguire i metodi dell'oggetto LocalConnection ricevente. Se non si dichiara il parametro sendingDomain, vengono accettati i comandi provenienti da qualsiasi dominio e il codice del gestore restituisce semplicemente il valore true. Se si dichiara sendingDomain, il valore di sendingDomain viene confrontato con i domini da cui si desidera accettare i comandi. Gli esempi seguenti descrivono entrambe le implementazioni. Nei file creati per Flash Player 6 (ad esempio, Flash Lite 1.x), il parametro sendingDomain contiene il superdominio del chiamante. Nei file creati per Flash Player 7 (ad esempio, Flash Lite 2.x e 3.x), il parametro sendingDomain contiene il dominio esatto del chiamante. In quest'ultimo caso, per consentire l'accesso da parte dei file SWF che risiedono in www.domain.com o in store.domain.com, consentire esplicitamente l'accesso da entrambi i domini. // For Flash Player 6 receiving_lc.allowDomain = function(sendingDomain) { return(sendingDomain=="domain.com"); } // For Flash Player 7 or later receiving_lc.allowDomain = function(sendingDomain) { return(sendingDomain=="www.domain.com" || sendingDomain=="store.domain.com"); } Inoltre, per i file creati per Flash Player 7 o versioni successive (ad esempio, Flash Lite 2.x e 3.x), non è possibile utilizzare questo metodo per consentire ai file SWF che risiedono su domini che utilizzano un protocollo di sicurezza (HTTPS) di autorizzare l'accesso da parte di file SWF che risiedono su domini che non utilizzano protocolli di sicurezza; in tal caso utilizzare il gestore di eventi LocalConnection.allowInsecureDomain. Talvolta può verificarsi la situazione seguente. Si supponga di caricare un file SWF secondario da un dominio diverso. È possibile implementare questo metodo in modo che il file SWF secondario sia in grado di effettuare chiamate LocalConnection al file SWF principale quando non si conosce il dominio finale da cui proviene il file SWF secondario. Questa situazione può verificarsi ad esempio quando si utilizzano i reindirizzamenti per il bilanciamento del carico di lavoro o i server di terze parti. In questa situazione, è possibile utilizzare la proprietà MovieClip._url nell'implementazione di questo metodo. Ad esempio, se si carica un file SWF in my_mc, successivamente è possibile implementare questo metodo verificando se l'argomento domain corrisponde al dominio di my_mc._url. (È necessario analizzare il dominio fuori dell'URL completo contenuto in my_mc._url). In tal caso, attendere che il file SWF in my_mc sia caricato, poiché il valore della proprietà _url non è definitivo e corretto finché il file non è stato completamente caricato. Il modo migliore per determinare se un file SWF secondario ha terminato il caricamento consiste nell'utilizzare MovieClipLoader.onLoadComplete. In realtà può verificarsi anche la situazione opposta: è possibile creare un file SWF secondario impostato per accettare le chiamate LocalConnection dal proprio elemento principale ma di cui non conosce il dominio. In questa situazione, implementare questo metodo verificando se l'argomento domain corrisponde al dominio di _parent._url. Anche in questo caso è necessario analizzare il dominio fuori dell'URL completo contenuto in _parent._url. In questo caso, non è necessario attendere il caricamento del file SWF principale poiché sarà già stato completato al momento del caricamento dell'elemento secondario. Disponibilità Flash Lite 3.1 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 346 Classi ActionScript Parametri sendingDomain:String [opzionale] - Una stringa che specifica il dominio del file SWF che contiene l'oggetto LocalConnection mittente. Esempio L'esempio seguente mostra il modo in cui un oggetto LocalConnection in un file SWF ricevente può autorizzare la chiamata dei propri metodi da parte dei file SWF di qualunque dominio. Confrontare questo esempio con quello relativo a LocalConnection.connect(), in cui solo i file SWF dello stesso dominio possono richiamare il metodo trace() nel file SWF ricevente. Per una descrizione dell'uso di underscore (_) nel nome della connessione, vedete LocalConnection.send(). this.createTextField("welcome_txt", this.getNextHighestDepth(), 10, 10, 100, 20); var my_lc:LocalConnection = new LocalConnection(); my_lc.allowDomain = function(sendingDomain:String) { domain_txt.text = sendingDomain; return true; }; my_lc.allowInsecureDomain = function(sendingDomain:String) { return (sendingDomain == this.domain()); } my_lc.sayHello = function(name:String) { welcome_txt.text = "Hello, "+name; }; my_lc.connect("_mylc"); L'esempio seguente invia una stringa al file SWF precedente e visualizza un messaggio di stato che indica se la connessione locale è riuscita a collegarsi al file. Per visualizzare il contenuto vengono utilizzati un componente TextInput di nome name_ti, un'istanza TextArea di nome status_ta e un'istanza Button di nome send_button. var sending_lc:LocalConnection; var sendListener:Object = new Object(); sendListener.click = function(evt:Object) { sending_lc = new LocalConnection(); sending_lc.onStatus = function(infoObject:Object) { switch (infoObject.level) { case 'status' : status_ta.text = "LocalConnection connected successfully."; break; case 'error' : status_ta.text = "LocalConnection encountered an error."; break; } }; sending_lc.send("_mylc", "sayHello", name_ti.text); }; send_button.addEventListener("click", sendListener); Nell'esempio seguente, il file SWF ricevente, che si trova in thisDomain.com, accetta i comandi solo dai file SWF appartenenti a thisDomain.com o thatDomain.com: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 347 Classi ActionScript var aLocalConn:LocalConnection = new LocalConnection(); aLocalConn.Trace = function(aString) { aTextField += aString+newline; }; aLocalConn.allowDomain = function(sendingDomain) { return (sendingDomain == this.domain() || sendingDomain == "www.macromedia.com"); }; aLocalConn.connect("_mylc"); Quando si pubblica per Flash Player 7 o versioni successive (Flash Lite 2.x e 3.x), viene utilizzata la corrispondenza esatta dei domini. Pertanto l'esempio dà esito negativo se i file SWF si trovano in www.thatDomain.com e dà esito positivo se i file si trovano in thatDomain.com. Vedete anche connect (metodo LocalConnection.connect), domain (metodo LocalConnection.domain), send (metodo LocalConnection.send), _url (proprietà MovieClip._url), onLoadComplete (listener di eventi MovieClipLoader.onLoadComplete), Proprietà _parent allowInsecureDomain (gestore LocalConnection.allowInsecureDomain) allowInsecureDomain = function([sendingDomain:String]) {} Richiamato ogni volta che receiving_lc, che è un file SWF che risiede in un dominio che utilizza un protocollo di sicurezza (HTTPS), riceve la richiesta di richiamare un metodo da un oggetto LocalConnection mittente contenuto in un file SWF che risiede in un dominio che non utilizza un protocollo di sicurezza. Flash prevede che il codice implementato in questo gestore restituisca un valore booleano true o false. Se il gestore non restituisce il valore true, la richiesta dell'oggetto mittente viene ignorata e il metodo non viene richiamato. Per impostazione predefinita, i file SWF che risiedono su domini che utilizzano il protocollo HTTPS sono accessibili solo da altri file SWF che risiedono su domini che utilizzano il protocollo HTTPS. Questa implementazione conserva l'integrità fornita dal protocollo HTTPS. Non è consigliabile utilizzare questo metodo per ignorare il comportamento predefinito, poiché la sicurezza HTTPS viene compromessa. Tuttavia, può essere necessario utilizzarlo per consentire l'accesso ai file HTTPS pubblicati per Flash Player 7 o versioni successive (ad esempio, Flash Lite 2.x e 3.x) da parte dei file HTTP pubblicati per Flash Player 6. Un file SWF pubblicato per Flash Player 6 può utilizzare il gestore di eventi LocalConnection.allowDomain per consentire l'accesso HTTPS al protocollo HTTP. Tuttavia, poiché la sicurezza è implementata in modo diverso in Flash Player 7, è necessario utilizzare il metodo LocalConnection.allowInsecureDomain() per consentire tale accesso nei file SWF pubblicati per Flash Player 7 o versioni successive. Disponibilità Flash Lite 3.1 Parametri sendingDomain:String [opzionale] - Una stringa che specifica il dominio del file SWF che contiene l'oggetto LocalConnection mittente. Esempio L'esempio seguente consente le connessioni dal dominio corrente o da www.macromedia.com o consente le connessioni non sicure solo dal dominio corrente. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 348 Classi ActionScript this.createTextField("welcome_txt", this.getNextHighestDepth(), 10, 10, 100, 20); var my_lc:LocalConnection = new LocalConnection(); my_lc.allowDomain = function(sendingDomain:String) { domain_txt.text = sendingDomain; return (sendingDomain == this.domain() || sendingDomain == "www.macromedia.com"); }; my_lc.allowInsecureDomain = function(sendingDomain:String) { return (sendingDomain == this.domain()); } my_lc.sayHello = function(name:String) { welcome_txt.text = "Hello, "+name; }; my_lc.connect("lc_name"); Vedete anche allowDomain (gestore LocalConnection.allowDomain), connect (metodo LocalConnection.connect) close (metodo LocalConnection.close) public close() : Void Chiude (disconnette) un oggetto LocalConnection. Eseguite questo comando se non desiderate più che l'oggetto accetti i comandi: ad esempio, per eseguire un comando LocalConnection.connect() che utilizza lo stesso parametro connectionName in un altro file SWF. Disponibilità Flash Lite 3.1 Vedete anche connect (metodo LocalConnection.connect) connect (metodo LocalConnection.connect) public connect(connectionName:String) : Boolean Prepara un oggetto LocalConnection a ricevere i comandi provenienti da un comando LocalConnection.send() (definito oggetto LocalConnection mittente). L'oggetto che chiama questo comando viene definito oggetto LocalConnection ricevente. Gli oggetti mittenti e riceventi devono essere in esecuzione sullo stesso computer client. Assicurarsi di aver definito i metodi associati a receiving_lc prima di chiamare questo metodo, come indicato in tutti gli esempi di questa sezione. Per impostazione predefinita, Flash Lite risolve connectionName nel valore "superdomain:connectionName", dove superdomain è il superdominio del file SWF che contiene il comando LocalConnection.connect(). Ad esempio, se il file SWF che contiene l'oggetto LocalConnection ricevente si trova in www.someDomain.com, connectionName risolve a "someDomain.com:connectionName". Se un file SWF si trova sul computer client, il valore assegnato a superdomain è "localhost". Sempre per impostazione predefinita, Flash Lite consente all'oggetto LocalConnection ricevente di accettare comandi solo dagli oggetti LocalConnection mittenti per cui anche il nome di connessione risolve al valore "superdomain:connectionName". In questo modo, Flash Lite rende più semplice la comunicazione tra i file SWF di uno stesso dominio. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 349 Classi ActionScript Se si implementa la comunicazione solo tra file SWF dello stesso dominio, specificare una stringa per connectionName che non inizi con un carattere di sottolineatura (_) e che non specifichi un nome di dominio (ad esempio, "myDomain:connectionName"). Utilizzare la stessa stringa nel comando LocalConnection.connect(connectionName). Se si implementa la comunicazione solo tra file SWF di domini diversi e si specifica una stringa per connectionName che inizia con un carattere di sottolineatura (_), si rende il file SWF con l'oggetto LocalConnection ricevente più portabile tra i domini. Di seguito sono illustrati i due casi possibili: • Se la stringa per connectionName non inizia con un carattere di sottolineatura (_), Flash Lite aggiunge un prefisso composto dal superdominio e da un segno di due punti (ad esempio, "myDomain:connectionName"). Benché questo assicuri che la connessione non entri in conflitto con le connessioni con lo stesso nome di altri domini, tutti gli oggetti LocalConnection mittenti devono specificare questo superdominio (ad esempio, "myDomain:connectionName"). Se il SWF con l'oggetto LocalConnection ricevente viene spostato in un altro dominio, il lettore modifica il prefisso per rispecchiare il nuovo superdominio (ad esempio, "anotherDomain:connectionName"). Tutti gli oggetti LocalConnection mittenti devono quindi essere modificati manualmente in modo da puntare al nuovo superdominio. • Se la stringa per connectionName inizia con un carattere di sottolineatura (ad esempio, "_connectionName"), Flash Lite non aggiunge alcun prefisso alla stringa. Questo significa che gli oggetti LocalConnection riceventi e mittenti utilizzeranno stringhe identiche per connectionName. Se l'oggetto ricevente utilizza LocalConnection.allowDomain per specificare che vengano accettate le connessioni da qualunque dominio, il file SWF con l'oggetto LocalConnection ricevente può essere spostato in un altro dominio senza modificare alcun oggetto LocalConnection mittente. Per ulteriori informazioni, consultate la descrizione di connectionName nella sezione relativa a LocalConnection.send() e le sezioni relative a LocalConnection.allowDomain e LocalConnection.domain(). Nota: il carattere di punto e virgola viene utilizzato come carattere speciale per separare il superdominio dalla stringa connectionName. Se una stringa per connectionName contiene un punto e virgola, non è valida. Disponibilità Flash Lite 3.1 Parametri connectionName:String - Una stringa che corrisponde al nome della connessione specificato nel comando LocalConnection.send() che apre una comunicazione con receiving_lc. Restituisce Boolean - Un valore booleano: true se nessun altro processo in esecuzione sullo stesso computer client ha già eseguito un comando che utilizza lo stesso valore per il parametro connectionName; false in caso contrario. Esempio L'esempio seguente mostra il modo in cui un file SWF di un determinato dominio può richiamare un metodo di nome printOut in un file SWF ricevente che appartiene allo stesso dominio. Innanzitutto, creare un file SWF con il codice seguente: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 350 Classi ActionScript this.createTextField("tf", this.getNextHighestDepth(), 10, 10, 300, 100); var aLocalConnection:LocalConnection = new LocalConnection(); aLocalConnection.connect("demoConnection"); aLocalConnection.printOut = function(aString:String):Void{ tf.text += aString; } Quindi, crearne un altro con il codice seguente: var sending_lc:LocalConnection = new LocalConnection(); sending_lc.send("demoConnection", "printOut", "This is a message from file B. Hello."); Per provare questo esempio, eseguire il primo file SWF, quindi eseguire il secondo. Vedete anche send (metodo LocalConnection.send), allowDomain (gestore LocalConnection.allowDomain), domain (metodo LocalConnection.domain) domain (metodo LocalConnection.domain) public domain() : String Restituisce una stringa che rappresenta il dominio della posizione del file SWF corrente. Nei file SWF pubblicati per Flash Player 6 o versioni precedenti (ad esempio, Flash Lite 1.x), la stringa restituita è il superdominio del file SWF corrente. Ad esempio, se il file SWF si trova all'indirizzo www.adobe.com, questo comando restituisce "adobe.com". Nei file SWF pubblicati per Flash Player 7 o versioni successive (ad esempio, Flash Lite 2.x e 3.x), la stringa restituita è il dominio esatto del file SWF corrente. Ad esempio, se il file SWF si trova all'indirizzo www.adobe.com, questo comando restituisce "www.adobe.com". Se il file SWF è un file locale che risiede sul computer client, questo comando restituisce "localhost". L'uso più comune di questo comando consiste nell'includere il nome del dominio dell'oggetto LocalConnection mittente come parametro per il metodo che si prevede di richiamare nell'oggetto LocalConnection ricevente, oppure con LocalConnection.allowDomain per accettare i comandi provenienti da un dominio specificato. Se si abilita la comunicazione solo tra oggetti LocalConnection che si trovano nello stesso dominio, probabilmente non è necessario utilizzare questo comando. Disponibilità Flash Lite 3.1 Restituisce String - Una stringa che rappresenta il dominio della posizione del file SWF corrente; per ulteriori informazioni, consultate la sezione Descrizione. Esempio Nell'esempio seguente, un file SWF ricevente accetta i comandi solo dai file SWF appartenenti allo stesso dominio o a example.com: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 351 Classi ActionScript // If both the sending and receiving SWF files are Flash Player 6, // then use the superdomain var my_lc:LocalConnection = new LocalConnection(); my_lc.allowDomain = function(sendingDomain):String{ return (sendingDomain==this.domain() || sendingDomain=="example.com"); } // If either the sending or receiving SWF file is Flash Player 7 or later, // then use the exact domain. In this case, commands from a SWF file posted // at www.example.com will be accepted, but those from one posted at // a different subdomain, e.g. test.example.com, will not. var my_lc:LocalConnection = new LocalConnection(); my_lc.allowDomain = function(sendingDomain):String{ return (sendingDomain==this.domain() || sendingDomain=="www.example.com"); } Nell'esempio seguente, un file SWF di invio del dominio www.yourdomain.com richiama un metodo in un file SWF ricevente del dominio www.mydomain.com. Il file SWF di invio include il proprio nome di dominio come parametro del metodo che richiama, in modo che il file SWF ricevente possa restituire un valore di risposta a un oggetto LocalConnection nel dominio corretto. Il file SWF di invio specifica anche che accetta solo i comandi provenienti dai file SWF appartenenti a mydomain.com. I numeri di riga sono inclusi per riferimento. La sequenza degli eventi viene illustrata nell'elenco seguente: • Il file SWF ricevente si prepara a ricevere i comandi su una connessione di nome "sum" (riga 11). Il player Flash Lite risolve il nome di questa connessione a "mydomain.com:sum" (vedete LocalConnection.connect()). • Il file SWF mittente si prepara a ricevere una risposta sull'oggetto LocalConnection di nome "result" (riga 67). Inoltre, specifica che accetta solo i comandi provenienti dai file SWF di mydomain.com (dalla riga 51 alla riga 53). • Il file SWF mittente chiama il metodo aSum di una connessione chiamata "mydomain.com:sum" (riga 68) e passa i seguenti parametri: il suo superdominio, il nome della connessione su cui ricevere la risposta ("result") e i valori che verranno usati in aSum (123 e 456). • Il metodo aSum (riga 6) viene richiamato con i seguenti valori: sender = "mydomain.com:result", replyMethod = "aResult", n1 = 123 e n2 = 456. Quindi esegue la seguente riga di codice: this.send("mydomain.com:result", "aResult", (123 + 456)); • Il metodo aResult (riga 54) mostra il valore restituito da aSum (579). Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 352 Classi ActionScript // The receiving SWF at http://www.mydomain.com/folder/movie.swf // contains the following code 1 var aLocalConnection:LocalConnection = new LocalConnection(); 2 aLocalConnection.allowDomain = function() 3 { // Allow connections from any domain 4 return true; 5 } 6 aLocalConnection.aSum = function(sender, replyMethod, n1, n2) 7 { 8 this.send(sender, replyMethod, (n1 + n2)); 9 } 10 11 aLocalConnection.connect("sum"); // The sending SWF at http://www.yourdomain.com/folder/movie.swf // contains the following code 50 var lc:LocalConnection = new LocalConnection(); 51 lc.allowDomain = function(aDomain) { // Allow connections only from mydomain.com 52 return (aDomain == "mydomain.com"); 53 } 54 lc.aResult = function(aParam) { 55 trace("The sum is " + aParam); 56 } // determine our domain and see if we need to truncate it 57 var channelDomain:String = lc.domain(); 58 if (getVersion() >= 7 && this.getSWFVersion() >= 7) 59 { // split domain name into elements 60 var domainArray:Array = channelDomain.split("."); 61 62 63 64 65 66 // if more than two elements are found, // chop off first element to create superdomain if (domainArray.length > 2) { domainArray.shift(); channelDomain = domainArray.join("."); } } 67 lc.connect("result"); 68 lc.send("mydomain.com:sum", "aSum", channelDomain + ':' + "result", "aResult", 123, 456); Vedete anche allowDomain (gestore LocalConnection.allowDomain), connect (metodo LocalConnection.connect) Funzione di costruzione LocalConnection public LocalConnection() Crea un oggetto LocalConnection. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 353 Classi ActionScript Disponibilità Flash Lite 3.1 Esempio L'esempio seguente mostra come la ricezione e l'invio di file SWF creano oggetti LocalConnnection. I due file SWF possono utilizzare lo stesso nome o nomi diversi per i rispettivi oggetti LocalConnection. In questo esempio usano nomi diversi. // Code in the receiving SWF file this.createTextField("result_txt", 1, 10, 10, 100, 22); result_txt.border = true; var receiving_lc:LocalConnection = new LocalConnection(); receiving_lc.methodToExecute = function(param1:Number, param2:Number) { result_txt.text = param1+param2; }; receiving_lc.connect("lc_name"); Il file SWF seguente invia la richiesta al primo file SWF. // Code in the sending SWF file var sending_lc:LocalConnection = new LocalConnection(); sending_lc.send("lc_name", "methodToExecute", 5, 7); Vedete anche connect (metodo LocalConnection.connect), send (metodo LocalConnection.send) onStatus (gestore LocalConnection.onStatus) onStatus = function(infoObject:Object) {} Richiamato dopo che un oggetto LocalConnection mittente tenta di inviare un comando a un oggetto LocalConnection ricevente. Se si desidera rispondere a questo gestore di eventi, creare una funzione che elabori l'oggetto informazioni inviato dall'oggetto LocalConnection. Se l'oggetto informazioni restituito da questo gestore di eventi contiene un valore status per level, significa che il comando è stato inviato correttamente a un oggetto LocalConnection ricevente. Questo non significa che è stato richiamato correttamente il metodo specificato dell'oggetto LocalConnection ricevente, bensì che semplicemente è stato possibile inviare il comando. Ad esempio, il metodo non viene richiamato se l'oggetto LocalConnection ricevente non consente le connessioni dal dominio mittente o se il metodo non esiste. L'unico modo per sapere con certezza se il metodo è stato richiamato consiste nel fare in modo che l'oggetto ricevente invii una risposta all'oggetto mittente. Se l'oggetto informazioni restituito da questo gestore di eventi contiene un valore level di status, non è possibile inviare il comando a un oggetto LocalConnection ricevente, molto probabilmente perché non è connesso alcun oggetto LocalConnection ricevente il cui nome corrisponda a quello specificato nel comando sending_lc.send() che ha richiamato questo gestore. Oltre a questo gestore onStatus, Flash fornisce una "super" funzione di nome System.onStatus. Se onStatus viene richiamata per un oggetto particolare e non è stata assegnata alcuna funzione per risponderle, viene elaborata una funzione assegnata a System.onStatus (se esiste). Nella maggior parte dei casi, si implementa questo gestore solo per rispondere alle condizioni di errore, come descritto nell'esempio seguente. Disponibilità Flash Lite 3.1 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 354 Classi ActionScript Parametri infoObject:Object - Un parametro definito in base al messaggio di stato. Per ulteriori informazioni su questo parametro, consultare la sezione Descrizione. Esempio L'esempio seguente visualizza un messaggio di stato che indica se il file SWF si connette a un altro oggetto di connessione locale di nome lc_name. Per visualizzare il contenuto vengono utilizzati un componente TextInput di nome name_ti, un'istanza TextArea di nome status_ta e un'istanza Button di nome send_button. var sending_lc:LocalConnection; var sendListener:Object = new Object(); sendListener.click = function(evt:Object) { sending_lc = new LocalConnection(); sending_lc.onStatus = function(infoObject:Object) { switch (infoObject.level) { case 'status' : status_ta.text = "LocalConnection connected successfully."; break; case 'error' : status_ta.text = "LocalConnection encountered an error."; break; } }; sending_lc.send("lc_name", "sayHello", name_ti.text); }; send_button.addEventListener("click", sendListener); Vedete anche send (metodo LocalConnection.send), onStatus (gestore System.onStatus) send (metodo LocalConnection.send) public send(connectionName:String, methodName:String, [args:Object]) : Boolean Richiama il metodo di nome method su una connessione aperta dall'oggetto LocalConnection ricevente. L'oggetto che chiama questo metodo è l'oggetto LocalConnection mittente. I file SWF che contengono gli oggetti mittenti e riceventi devono essere in esecuzione sulla stessa unità client. Esiste un limite di 40 kilobyte alla quantità di dati che è possibile passare come parametri a questo comando. Se il comando restituisce false ma la sintassi è corretta, provate a dividere le richieste LocalConnection.send() in più comandi, ciascuno con meno di 40 KB di dati. Come discusso nella sezione relativa a LocalConnection.connect(), il superdominio corrente viene aggiunto a connectionName per impostazione predefinita. Se si implementa la comunicazione tra domini diversi, definire connectionName negli oggetti LocalConnection sia mittenti che riceventi in modo che a connectionName non venga aggiunto il superdominio corrente. È possibile ottenere questo risultato in uno dei due modi seguenti: • Utilizzare un carattere di sottolineatura (_) all'inizio di connectionName negli oggetti LocalConnection sia mittenti che riceventi. Nel file SWF che contiene l'oggetto ricevente, utilizzate LocalConnection.allowDomain per specificare che vengano accettate le connessioni da qualunque dominio. Questa implementazione consente di memorizzare i file mittenti e riceventi di qualunque dominio. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 355 Classi ActionScript • Includete il superdominio in connectionName nell'oggetto LocalConnection mittente: ad esempio, myDomain.com:myConnectionName. Nell'oggetto ricevente, utilizzate LocalConnection.allowDomain() per specificare che vengano accettate le connessioni provenienti dal superdominio specificato (in questo caso, myDomain.com) oppure quelle provenienti da qualsiasi dominio. Nota: non è possibile specificare un superdominio in connectionName nell'oggetto LocalConnection ricevente; è possibile farlo solo nell'oggetto LocalConnection mittente. Quando utilizzate questo metodo, tenete in considerazione il modello di sicurezza di Flash Lite. Per impostazione predefinita, un oggetto LocalConnection è associato alla sandbox del file SWF che l'ha creato, e le chiamate a più domini agli oggetti LocalConnection non sono consentite a meno che non sia stato chiamato il metodo LocalConnection.allowDomain(). Per ulteriori informazioni, consultare i seguenti riferimenti: • Capitolo 17, "Nozioni fondamentali sulla sicurezza" nella guida Apprendimento di ActionScript 2.0 in Flash • Il White paper sulla sicurezza per Flash Player 8 all'indirizzo http://www.macromedia.com/go/fp8_security_it • Il White paper sulle API relative alla sicurezza per Flash Player 8 all'indirizzo http://www.macromedia.com/go/fp8_security_apis_it Disponibilità Flash Lite 3.1 Parametri connectionName:String - Una stringa che corrisponde al nome della connessione specificato nel comando LocalConnection.connect() che apre una comunicazione con sending_lc. methodName:String - Una stringa che specifica il nome del metodo da richiamare nell'oggetto LocalConnection ricevente. I seguenti nomi di metodo provocano un errore del comando: send, connect, close, domain, onStatus e allowDomain. args:Object [opzionale] - Gli argomenti da passare al metodo specificato. Restituisce Boolean - Un valore booleano: true se Flash può soddisfare la richiesta; false in caso contrario. Nota: se viene restituito un valore true non significa necessariamente che Flash si è connesso correttamente a un oggetto LocalConnection ricevente; significa semplicemente che il comando è corretto dal punto di vista sintattico. Per determinare se la connessione è riuscita, vedete LocalConnection.onStatus. Esempio Per un esempio della comunicazione tra oggetti LocalConnection appartenenti allo stesso dominio, vedete LocalConnection.connect(). Per un esempio della comunicazione tra oggetti LocalConnection appartenenti a un dominio specificato, vedete LocalConnection.domain(). Vedete anche allowDomain (gestore LocalConnection.allowDomain), connect (metodo LocalConnection.connect), domain (metodo LocalConnection.domain), onStatus (gestore LocalConnection.onStatus) GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 356 Ultimo aggiornamento 4/5/2010 Classi ActionScript Math Object | +-Math public class Math extends Object La classe Math è una classe di primo livello di cui è possibile utilizzare metodi e proprietà senza ricorrere a una funzione di costruzione. Utilizzare i metodi e le proprietà di questa classe per accedere e gestire le costanti e le funzioni matematiche. Tutte le proprietà e i metodi della classe Math sono statici e per chiamarli è necessario utilizzare la sintassi Math.method() o Math.CONSTANT. In ActionScript, le costanti sono definite mediante la precisione massima dei numeri a virgola mobile EEE-754 a doppia precisione. Diversi metodi della classe Math utilizzano come parametro la misura di un angolo espressa in radianti. È possibile utilizzare l'equazione seguente per calcolare i valori dei radianti prima di chiamare il metodo e successivamente fornire il valore calcolato come parametro. In alternativa, è possibile fornire l'intera parte destra dell'equazione (con la misura in gradi dell'angolo al posto di degrees) come parametro per i radianti. Per calcolare il valore in radianti, utilizzare la seguente formula: radians = degrees * Math.PI/180 Di seguito è riportato un esempio di come passare l'equazione come parametro per calcolare il seno di un angolo di 45°: Math.sin(45 * Math.PI/180) è uguale a Math.sin(.7854) Disponibilità Flash Lite 2.0 Riepilogo delle proprietà Modificatori Proprietà Descrizione static E:Number Una costante matematica alla base dei logaritmi naturali, espressa come e. static LN10:Number Una costante matematica per il logaritmo naturale di 10, espressa come loge10, con un valore approssimativo pari a 2,302585092994046. static LN2:Number Una costante matematica per il logaritmo naturale di 2, espressa come loge2, con un valore approssimativo pari a 0,6931471805599453. static LOG10E:Number Una costante matematica per il logaritmo a base 10 della costante e (Math.E), espressa come log10e, con un valore approssimativo pari a 0,4342944819032518. static LOG2E:Number Una costante matematica per il logaritmo a base 2 della costante e (Math.E), espressa come log2e, con un valore approssimativo pari a 1.442695040888963387. GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 357 Ultimo aggiornamento 4/5/2010 Classi ActionScript Modificatori Proprietà Descrizione static PI:Number Una costante matematica per il rapporto tra la circonferenza di un cerchio e il suo diametro, espressa come pi e con un valore pari a 3,141592653589793. static SQRT1_2:Number Una costante matematica per la radice quadrata di un mezzo, con un valore approssimativo pari a 0,7071067811865476. static SQRT2:Number Una costante matematica per la radice quadrata di 2, con un valore approssimativo pari a 1,4142135623730951. Proprietà ereditate dalla classe Object constructor (proprietà Object.constructor), __proto__ (proprietà Object._proto). prototype (proprietà Object.prototype), __resolve (proprietà Object.__resolve) Riepilogo dei metodi Modificatori Firma Descrizione static abs(x:Number) : Number Calcola e restituisce un valore assoluto per il numero specificato dal parametro x. static acos(x:Number) : Number Calcola e restituisce l'arcocoseno del numero specificato dal parametro x, espresso in radianti. static asin(x:Number) : Number Calcola e restituisce l'arcoseno del numero specificato dal parametro x, espresso in radianti. static atan(tangent:Number) : Number Calcola e restituisce il valore, espresso in radianti, dell'angolo la cui tangente è specificata nel parametro tangent. static atan2(y:Number, x:Number) : Number Calcola e restituisce l'angolo, espresso in radianti, del punto y/x, misurato in senso antiorario partendo dall'asse x di un cerchio (dove 0,0 rappresenta il centro del cerchio). static ceil(x:Number) : Number Restituisce il valore ceiling (letteralmente, soffitto) del numero o dell'espressione specificata. static cos(x:Number) : Number Calcola e restituisce il coseno dell'angolo specificato, espresso in radianti. static exp(x:Number) : Number Restituisce il valore della base del logaritmo naturale (e), elevato alla potenza dell'esponente specificato nel parametro x. static floor(x:Number) : Number Restituisce il valore floor (letteralmente, pavimento) del numero o dell'espressione specificata nel parametro x. static log(x:Number) : Number Restituisce il logaritmo naturale del parametro x. static max(x:Number, y:Number) : Number Valuta x e y e restituisce il valore maggiore. static min(x:Number, y:Number) : Number Valuta x e y e restituisce il valore minore. static pow(x:Number, y:Number) : Number Calcola e restituisce x elevato alla potenza di y. static random() : Number Restituisce un numero pseudo-casuale n, dove 0 <= n < 1. GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 358 Ultimo aggiornamento 4/5/2010 Classi ActionScript Modificatori Firma Descrizione static round(x:Number) : Number Arrotonda il valore del parametro x al numero intero più vicino per eccesso o per difetto e restituisce il valore. static sin(x:Number) : Number Calcola e restituisce il seno dell'angolo specificato, espresso in radianti. static sqrt(x:Number) : Number Calcola e restituisce la radice quadrata del numero specificato. static tan(x:Number) : Number Calcola e restituisce la tangente dell'angolo specificato. Metodi ereditati dalla classe Object addProperty (metodo Object.addProperty), hasOwnProperty (metodo Object.hasOwnProperty), isPropertyEnumerable (metodo Object.isPropertyEnumerable), isPrototypeOf (metodo Object.isPrototypeOf)registerClass (metodo Object.registerClass), toString (metodo Object.toString), unwatch (metodo Object.unwatch), valueOf (metodo Object.valueOf), watch (metodo Object.watch) abs (metodo Math.abs) public static abs(x:Number) : Number Calcola e restituisce un valore assoluto per il numero specificato dal parametro x. Disponibilità Flash Lite 2.0 Parametri x:Number - Un numero. Restituisce Number - Un numero. Esempio Nell'esempio seguente viene illustrato come Math.abs() restituisca il valore assoluto di un numero senza incidere sul valore del parametro x (definito num in questo esempio): var num:Number = -12; var numAbsolute:Number = Math.abs(num); trace(num); // output: -12 trace(numAbsolute); // output: 12 acos (metodo Math.acos) public static acos(x:Number) : Number Calcola e restituisce l'arcocoseno del numero specificato dal parametro x, espresso in radianti. Disponibilità Flash Lite 2.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 359 Classi ActionScript Parametri x:Number - Un numero compreso tra -1,0 e 1,0. Restituisce Number - Un numero; l'arcocoseno del parametro x. Esempio Nell'esempio seguente viene visualizzato l'arcocoseno per diversi valori. trace(Math.acos(-1)); // output: 3.14159265358979 trace(Math.acos(0)); // output: 1.5707963267949 trace(Math.acos(1)); // output: 0 Vedete anche asin (metodo Math.asin), atan (metodo Math.atan), atan2 (metodo Math.atan2), cos (metodo Math.cos), sin (metodo Math.sin), tan (metodo Math.tan) asin (metodo Math.asin) public static asin(x:Number) : Number Calcola e restituisce l'arcoseno del numero specificato dal parametro x, espresso in radianti. Disponibilità Flash Lite 2.0 Parametri x:Number - Un numero compreso tra -1,0 e 1,0. Restituisce Number - Un numero compreso tra pi negativo diviso 2 e pi positivo diviso 2. Esempio Nell'esempio seguente viene visualizzato l'arcoseno per diversi valori. trace(Math.asin(-1)); // output: -1.5707963267949 trace(Math.asin(0)); // output: 0 trace(Math.asin(1)); // output: 1.5707963267949 Vedete anche acos (metodo Math.acos), atan (metodo Math.atan), atan2 (metodo Math.atan2), cos (metodo Math.cos), sin (metodo Math.sin), tan (metodo Math.tan) atan (metodo Math.atan) public static atan(tangent:Number) : Number Calcola e restituisce il valore, espresso in radianti, dell'angolo la cui tangente è specificata nel parametro tangent. Il valore restituito è compreso tra pi negativo diviso 2 e pi positivo diviso 2. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 360 Classi ActionScript Disponibilità Flash Lite 2.0 Parametri tangent:Number - Un numero che rappresenta la tangente di un angolo. Restituisce Number - Un numero compreso tra pi negativo diviso 2 e pi positivo diviso 2. Esempio Nell'esempio seguente viene visualizzato il valore dell'angolo per diverse tangenti. trace(Math.atan(-1)); // output: -0.785398163397448 trace(Math.atan(0)); // output: 0 trace(Math.atan(1)); // output: 0.785398163397448 Vedete anche acos (metodo Math.acos), asin (metodo Math.asin), atan2 (metodo Math.atan2), cos (metodo Math.cos), sin (metodo Math.sin), tan (metodo Math.tan) atan2 (metodo Math.atan2) public static atan2(y:Number, x:Number) : Number Calcola e restituisce l'angolo, espresso in radianti, del punto y/x, misurato in senso antiorario partendo dall'asse x di un cerchio (dove 0,0 rappresenta il centro del cerchio). Il valore restituito è compreso tra pi positivo e pi negativo. Disponibilità Flash Lite 2.0 Parametri y:Number - Un numero che specifica la coordinata y del punto. x:Number - Un numero che specifica la coordinata x del punto. Restituisce Number - Un numero. Esempio Nell'esempio seguente viene restituito l'angolo, espresso in radianti, del punto specificato dalle coordinate (0, 10), in modo che x = 0 e y = 10. Il primo parametro di atan2 corrisponde sempre alla coordinata y. trace(Math.atan2(10, 0)); // output: 1.5707963267949 Vedete anche acos (metodo Math.acos), asin (metodo Math.asin), atan (metodo Math.atan), cos (metodo Math.cos), sin (metodo Math.sin), tan (metodo Math.tan) ceil (metodo Math.ceil) public static ceil(x:Number) : Number Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 361 Classi ActionScript Restituisce il valore ceiling (letteralmente, soffitto) del numero o dell'espressione specificata. Il valore ceiling di un numero è il primo intero superiore o uguale al numero. Disponibilità Flash Lite 2.0 Parametri x:Number - Un numero o un'espressione. Restituisce Number - Un numero intero maggiore o uguale, più vicino al parametro x. Esempio Il codice seguente restituisce il valore 13: Math.ceil(12.5); Vedete anche floor (metodo Math.floor), round (metodo Math.round) cos (metodo Math.cos) public static cos(x:Number) : Number Calcola e restituisce il coseno dell'angolo specificato, espresso in radianti. Per calcolare un radiante, consultare la descrizione della classe Math. Disponibilità Flash Lite 2.0 Parametri x:Number - Un numero che rappresenta un angolo misurato in radianti. Restituisce Number - Un numero compreso tra -1,0 e 1,0. Esempio Nell'esempio seguente viene visualizzato il coseno per numerosi angoli diversi. trace trace trace trace (Math.cos(0)); // 0 degree angle. Output: 1 (Math.cos(Math.PI/2)); // 90 degree angle. Output: 6.12303176911189e-17 (Math.cos(Math.PI)); // 180 degree angle. Output: -1 (Math.cos(Math.PI*2)); // 360 degree angle. Output: 1 Nota: il coseno di un angolo di 90 gradi è pari a zero; tuttavia, a causa dell'imprecisione intrinseca dei calcoli decimali basati su numeri binari, il player Flash Lite restituisce un numero molto vicino ma non esattamente uguale a zero. Vedete anche acos (metodo Math.acos), asin (metodo Math.asin), atan (metodo Math.atan), atan2 (metodo Math.atan2), sin (metodo Math.sin), tan (metodo Math.tan) Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 362 Classi ActionScript E (proprietà Math.E) public static E : Number Una costante matematica alla base dei logaritmi naturali, espressa come e. Il valore approssimativo di e è 2,71828182845905. Disponibilità Flash Lite 2.0 Esempio In questo esempio viene illustrato l'uso di Math.E per calcolare l'interesse composto continuo per un semplice caso di interesse del 100% su un periodo di un anno. var principal:Number = 100; var simpleInterest:Number = 100; var continuouslyCompoundedInterest:Number = (100 * Math.E) - principal; trace ("Beginning principal: $" + principal); trace ("Simple interest after one year: $" + simpleInterest); trace ("Continuously compounded interest after one year: $" + continuouslyCompoundedInterest); // Output: Beginning principal: $100 Simple interest after one year: $100 Continuously compounded interest after one year: $171.828182845905 exp (metodo Math.exp) public static exp(x:Number) : Number Restituisce il valore della base del logaritmo naturale (e), elevato alla potenza dell'esponente specificato nel parametro x. La costante Math.E può fornire il valore di e. Disponibilità Flash Lite 2.0 Parametri x:Number - L'esponente; un numero o un'espressione. Restituisce Number - Un numero. Esempio Nell'esempio seguente viene visualizzato il logaritmo per due valori numerici. trace(Math.exp(1)); // output: 2.71828182845905 trace(Math.exp(2)); // output: 7.38905609893065 Vedete anche E (proprietà Math.E) Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 363 Classi ActionScript floor (metodo Math.floor) public static floor(x:Number) : Number Restituisce il valore floor (letteralmente, pavimento) del numero o dell'espressione specificata nel parametro x. Il valore floor è il primo intero inferiore o uguale al numero o all'espressione specificata. Disponibilità Flash Lite 2.0 Parametri x:Number - Un numero o un'espressione. Restituisce Number - Il numero intero minore o uguale più vicino al parametro x. Esempio Il codice seguente restituisce il valore 12: Math.floor(12.5); Il codice seguente restituisce il valore -7: Math.floor(-6.5); LN10 (proprietà Math.LN10) public static LN10 : Number Una costante matematica per il logaritmo naturale di 10, espressa come loge10, con un valore approssimativo pari a 2,302585092994046. Disponibilità Flash Lite 2.0 Esempio In questo esempio viene analizzato il valore di Math.LN10. trace(Math.LN10); // output: 2.30258509299405 LN2 (proprietà Math.LN2) public static LN2 : Number Una costante matematica per il logaritmo naturale di 2, espressa come loge2, con un valore approssimativo pari a 0,6931471805599453. Disponibilità Flash Lite 2.0 log (metodo Math.log) public static log(x:Number) : Number Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 364 Classi ActionScript Restituisce il logaritmo naturale del parametro x. Disponibilità Flash Lite 2.0 Parametri x:Number - Un numero o un'espressione con un valore maggiore di 0. Restituisce Number - Il logaritmo naturale del parametro x. Esempio Nell'esempio seguente viene visualizzato il logaritmo per tre valori numerici. trace(Math.log(0)); // output: -Infinity trace(Math.log(1)); // output: 0 trace(Math.log(2)); // output: 0.693147180559945 trace(Math.log(Math.E)); // output: 1 LOG10E (proprietà Math.LOG10E) public static LOG10E : Number Una costante matematica per il logaritmo a base 10 della costante e (Math.E), espressa come log10e, con un valore approssimativo pari a 0,4342944819032518. Il metodo Math.log() calcola il logaritmo naturale di un numero. La moltiplicazione del risultato di Math.log() per Math.LOG10E consente di ottenere il logaritmo a base 10. Disponibilità Flash Lite 2.0 Esempio In questo esempio viene illustrato come ottenere il logaritmo a base 10 di un numero: trace(Math.log(1000) * Math.LOG10E); // Output: 3 LOG2E (proprietà Math.LOG2E) public static LOG2E : Number Una costante matematica per il logaritmo a base 2 della costante e (Math.E), espressa come log2e, con un valore approssimativo pari a 1.442695040888963387. Il metodo Math.log() calcola il logaritmo naturale di un numero. La moltiplicazione del risultato di Math.log() per Math.LOG2E consente di ottenere il logaritmo a base 2. Disponibilità Flash Lite 2.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 365 Classi ActionScript Esempio In questo esempio viene illustrato come ottenere il logaritmo a base 2 di un numero: trace(Math.log(16) * Math.LOG2E); // Output: 4 max (metodo Math.max) public static max(x:Number, y:Number) : Number Valuta x e y e restituisce il valore maggiore. Disponibilità Flash Lite 2.0 Parametri x:Number - Un numero o un'espressione. y:Number - Un numero o un'espressione. Restituisce Number - Un numero. Esempio Nell'esempio che segue viene visualizzato Thu Dec 30 00:00:00 GMT-0700 2004, che corrisponde alla maggiore delle espressioni valutate. var date1:Date = new Date(2004, 11, 25); var date2:Date = new Date(2004, 11, 30); var maxDate:Number = Math.max(date1.getTime(), date2.getTime()); trace(new Date(maxDate).toString()); Vedete anche min (metodo Math.min) min (metodo Math.min) public static min(x:Number, y:Number) : Number Valuta x e y e restituisce il valore minore. Disponibilità Flash Lite 2.0 Parametri x:Number - Un numero o un'espressione. y:Number - Un numero o un'espressione. Restituisce Number - Un numero. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 366 Classi ActionScript Esempio Nell'esempio che segue viene visualizzato Sat Dec 25 00:00:00 GMT-0700 2004, che corrisponde alla minore delle espressioni valutate. var date1:Date = new Date(2004, 11, 25); var date2:Date = new Date(2004, 11, 30); var minDate:Number = Math.min(date1.getTime(), date2.getTime()); trace(new Date(minDate).toString()); Vedete anche max (metodo Math.max) PI (proprietà Math.PI) public static PI : Number Una costante matematica per il rapporto tra la circonferenza di un cerchio e il suo diametro, espressa come pi e con un valore pari a 3,141592653589793. Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente viene disegnato un cerchio utilizzando la costante matematica pi e l'API di disegno. drawCircle(this, 100, 100, 50); // function drawCircle(mc:MovieClip, x:Number, y:Number, r:Number):Void { mc.lineStyle(2, 0xFF0000, 100); mc.moveTo(x+r, y); mc.curveTo(r+x, Math.tan(Math.PI/8)*r+y, Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y); mc.curveTo(Math.tan(Math.PI/8)*r+x, r+y, x, r+y); mc.curveTo(-Math.tan(Math.PI/8)*r+x, r+y, -Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y); mc.curveTo(-r+x, Math.tan(Math.PI/8)*r+y, -r+x, y); mc.curveTo(-r+x, -Math.tan(Math.PI/8)*r+y, -Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y); mc.curveTo(-Math.tan(Math.PI/8)*r+x, -r+y, x, -r+y); mc.curveTo(Math.tan(Math.PI/8)*r+x, -r+y, Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y); mc.curveTo(r+x, -Math.tan(Math.PI/8)*r+y, r+x, y); } pow (metodo Math.pow) public static pow(x:Number, y:Number) : Number Calcola e restituisce x elevato alla potenza di y. Disponibilità Flash Lite 2.0 Parametri x:Number - Un numero da elevare a potenza. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 367 Classi ActionScript y:Number - Un numero che specifica la potenza alla quale viene elevato il parametro x. Restituisce Number - Un numero. random (metodo Math.random) public static random() : Number Restituisce un numero pseudo-casuale n, dove 0 <= n < 1. Il numero restituito viene definito pseudo-casuale poiché non è generato da un fenomeno naturale realmente casuale, ad esempio il decadimento radioattivo. Disponibilità Flash Lite 2.0 Restituisce Number - Un numero. Esempio Nell'esempio seguente vengono generati 100 numeri interi casuali compresi tra 4 e 11 (inclusi): function randRange(min:Number, max:Number):Number { var randomNum:Number = Math.floor(Math.random() * (max - min + 1)) + min; return randomNum; } for (var i = 0; i < 100; i++) { var n:Number = randRange(4, 11) trace(n); } round (metodo Math.round) public static round(x:Number) : Number Arrotonda il valore del parametro x al numero intero più vicino per eccesso o per difetto e restituisce il valore. Se il parametro x è equidistante dai due numeri interi più vicini (ovvero termina con ,5), il valore viene arrotondato al numero intero più alto. Disponibilità Flash Lite 2.0 Parametri x:Number - Un numero. Restituisce Number - Un numero; un valore intero. Esempio Nell'esempio seguente viene restituito un numero casuale compreso tra due numeri interi specificati. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 368 Classi ActionScript function randRange(min:Number, max:Number):Number { var randomNum:Number = Math.round(Math.random() * (max-min+1) + (min-.5)); return randomNum; } for (var i = 0; i<25; i++) { trace(randRange(4, 11)); } Vedete anche ceil (metodo Math.ceil), floor (metodo Math.floor) sin (metodo Math.sin) public static sin(x:Number) : Number Calcola e restituisce il seno dell'angolo specificato, espresso in radianti. Per calcolare un radiante, consultare la descrizione della classe Math. Disponibilità Flash Lite 2.0 Parametri x:Number - Un numero che rappresenta un angolo misurato in radianti. Restituisce Number - Un numero; il seno dell'angolo specificato (compreso tra -1 e 1). Esempio Nell'esempio seguente viene disegnato un cerchio utilizzando la costante matematica pi, il seno di un angolo e l'API di disegno. drawCircle(this, 100, 100, 50); // function drawCircle(mc:MovieClip, x:Number, y:Number, r:Number):Void { mc.lineStyle(2, 0xFF0000, 100); mc.moveTo(x+r, y); mc.curveTo(r+x, Math.tan(Math.PI/8)*r+y, Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y); mc.curveTo(Math.tan(Math.PI/8)*r+x, r+y, x, r+y); mc.curveTo(-Math.tan(Math.PI/8)*r+x, r+y, -Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y); mc.curveTo(-r+x, Math.tan(Math.PI/8)*r+y, -r+x, y); mc.curveTo(-r+x, -Math.tan(Math.PI/8)*r+y, -Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y); mc.curveTo(-Math.tan(Math.PI/8)*r+x, -r+y, x, -r+y); mc.curveTo(Math.tan(Math.PI/8)*r+x, -r+y, Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y); mc.curveTo(r+x, -Math.tan(Math.PI/8)*r+y, r+x, y); } Vedete anche acos (metodo Math.acos), asin (metodo Math.asin), atan (metodo Math.atan), atan2 (metodo Math.atan2), cos (metodo Math.cos), tan (metodo Math.tan) Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 369 Classi ActionScript sqrt (metodo Math.sqrt) public static sqrt(x:Number) : Number Calcola e restituisce la radice quadrata del numero specificato. Disponibilità Flash Lite 2.0 Parametri x:Number - Un numero o un'espressione maggiore o uguale a 0. Restituisce Number - Un numero se il parametro x è superiore o uguale a zero; NaN (not a number) in caso contrario. SQRT1_2 (proprietà Math.SQRT1_2) public static SQRT1_2 : Number Una costante matematica per la radice quadrata di un mezzo, con un valore approssimativo pari a 0,7071067811865476. Disponibilità Flash Lite 2.0 Esempio In questo esempio viene analizzato il valore di Math.SQRT1_2. trace(Math.SQRT1_2); // Output: 0.707106781186548 SQRT2 (proprietà Math.SQRT2) public static SQRT2 : Number Una costante matematica per la radice quadrata di 2, con un valore approssimativo pari a 1,4142135623730951. Disponibilità Flash Lite 2.0 Esempio In questo esempio viene analizzato il valore di Math.SQRT2. trace(Math.SQRT2); // Output: 1.4142135623731 tan (metodo Math.tan) public static tan(x:Number) : Number Calcola e restituisce la tangente dell'angolo specificato. Per calcolare un radiante, utilizzare le informazioni presenti nell'introduzione alla classe Math. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 370 Classi ActionScript Disponibilità Flash Lite 2.0 Parametri x:Number - Un numero che rappresenta un angolo misurato in radianti. Restituisce Number - Un numero; la tangente del parametro x. Esempio Nell'esempio seguente viene disegnato un cerchio utilizzando la costante matematica pi, la tangente di un angolo e l'API di disegno. drawCircle(this, 100, 100, 50); // function drawCircle(mc:MovieClip, x:Number, y:Number, r:Number):Void { mc.lineStyle(2, 0xFF0000, 100); mc.moveTo(x+r, y); mc.curveTo(r+x, Math.tan(Math.PI/8)*r+y, Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y); mc.curveTo(Math.tan(Math.PI/8)*r+x, r+y, x, r+y); mc.curveTo(-Math.tan(Math.PI/8)*r+x, r+y, -Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y); mc.curveTo(-r+x, Math.tan(Math.PI/8)*r+y, -r+x, y); mc.curveTo(-r+x, -Math.tan(Math.PI/8)*r+y, -Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y); mc.curveTo(-Math.tan(Math.PI/8)*r+x, -r+y, x, -r+y); mc.curveTo(Math.tan(Math.PI/8)*r+x, -r+y, Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y); mc.curveTo(r+x, -Math.tan(Math.PI/8)*r+y, r+x, y); } Vedete anche acos (metodo Math.acos), asin (metodo Math.asin), atan (metodo Math.atan), atan2 (metodo Math.atan2), cos (metodo Math.cos), sin (metodo Math.sin) Matrix (flash.geom.Matrix) Object | +-flash.geom.Matrix public class Matrix extends Object La classe flash.geom.Matrix rappresenta una matrice di trasformazione che determina come mappare punti da uno spazio di coordinate a un altro. Se si impostano le proprietà di un oggetto Matrix e si applicano a un oggetto MovieClip o BitmapData, è possibile eseguire diverse trasformazioni grafiche sull'oggetto. Queste funzioni di trasformazione includono conversione (riposizionamento di x e y), rotazione, modifica in scala e inclinazione. Questi tipi di trasformazioni sono noti collettivamente come trasformazioni affini. Le trasformazioni affini mantengono la rettilineità delle linee durante la trasformazione e le linee parallele rimangono tali. GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 371 Ultimo aggiornamento 4/5/2010 Classi ActionScript Per applicare una matrice di trasformazione a un clip filmato, create un oggetto flash.geom.Transform e impostate la matrice di trasformazione come proprietà Matrix. Gli oggetti Matrix vengono inoltre utilizzati come parametri di alcuni metodi, ad esempio il metodo draw() della classe flash.display.BitmapData. Un oggetto matrice di trasformazione viene considerato come una matrice 3 per 3 con il contenuto seguente: Nelle matrici di trasformazione tradizionali, le proprietà u, v e w offrono funzioni supplementari. La classe Matrix funziona solo in spazi bidimensionali e, pertanto, i valori delle proprietà u e v sono sempre considerati pari a 0.0 e il valore della proprietà w è sempre 1.0. In altri termini, i valori effettivi della matrice sono i seguenti: È possibile ottenere e impostare i valori di tutte le altre sei proprietà di un oggetto Matrix, ovvero a, b, c, d, tx ety. La classe Matrix supporta i quattro principali tipi di trasformazioni: traslazione, modifica in scala, rotazione e inclinazione. Per tre di queste funzioni sono disponibili metodi specializzati, descritti nella tabella seguente. Trasformazione Metodo Conversione (spostamento) translate(tx, ty) Valori di Matrix Risultato visualizzato Descrizione Sposta i pixel tx dell'immagine a destra e i pixel ty in basso. GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 372 Ultimo aggiornamento 4/5/2010 Classi ActionScript Trasformazione Metodo Valori di Matrix Risultato visualizzato Descrizione Modifica in scala scale(sx, sy) Ridimensiona l'immagine, moltiplicando la posizione di ogni pixel per sx sull'asse x e per sy sull'asse y. Rotazione rotate(q) Ruota l'immagine di un angolo q, che viene misurato in radianti Inclinazione o ritaglio Nessuno; è necessario impostare le proprietà b e c. Fa scorrere progressivamente l'immagine in una direzione parallela all'asse x o y. Il valore skx agisce come moltiplicatore che controlla la distanza di scorrimento lungo l'asse x, mentre sky controlla la distanza di scorrimento lungo l'asse y. Ogni funzione di trasformazione modifica le proprietà correnti della matrice e consente così di combinare efficacemente più trasformazioni. A tale scopo, chiamare più funzioni di trasformazione prima di applicare la matrice al relativo clip filmato o alla bitmap target. Disponibilità Flash Lite 3.1 Vedete anche transform (proprietà MovieClip.transform), Transform (flash.geom.Transform), draw (metodo BitmapData.draw), a (proprietà Matrix.a), b (proprietà Matrix.b), c (proprietà Matrix.c), d (proprietà Matrix.d), tx (proprietà Matrix.tx), ty (proprietà Matrix.ty), translate (metodo Matrix.translate), scale (metodo Matrix.scale), rotate (metodo Matrix.rotate) GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 373 Ultimo aggiornamento 4/5/2010 Classi ActionScript Riepilogo delle proprietà Modificatori Proprietà Descrizione a:Number Il valore nella prima riga e nella prima colonna dell'oggetto Matrix, che incide sul posizionamento dei pixel lungo l'asse x quando un'immagine viene modificata in scala o ruotata. b:Number Il valore nella prima riga e nella seconda colonna dell'oggetto Matrix, che incide sul posizionamento dei pixel lungo l'asse y quando un'immagine viene ruotata o inclinata. c :Number Il valore nella seconda riga e nella prima colonna dell'oggetto Matrix, che incide sul posizionamento dei pixel lungo l'asse x quando un'immagine viene ruotata o inclinata. d:Number Il valore nella seconda riga e nella seconda colonna dell'oggetto Matrix, che incide sul posizionamento dei pixel lungo l'asse y quando un'immagine viene modificata in scala o ruotata. tx:Number La distanza in base alla quale viene convertito ogni punto lungo l'asse x. ty:Number La distanza in base alla quale viene convertito ogni punto lungo l'asse y. constructor (proprietà Object.constructor), __proto__ (proprietà Object._proto), prototype (proprietà Object.prototype), __resolve (proprietà Object.__resolve) Riepilogo delle funzioni di costruzione Firma Descrizione Matrix([a:Number, [b:Number], [c:Number], [d:Number], [tx:Number], [ty:Number]) Crea un nuovo oggetto Matrix con i parametri specificati. Riepilogo dei metodi Modificatori Firma Descrizione clone(): Matrix Restituisce un nuovo oggetto Matrix, clone di questa matrice, con una copia esatta dell'oggetto contenuto. concat(m:Matrix) : Concatena una matrice con la matrice corrente, combinando gli effetti geometrici delle due matrici. Void createBox(scaleX:Num ber, scaleY:Number,[rota tion:Number],[tx:Nu mber], [ty:Number]) Comprende parametri per la modifica in scala, la rotazione e la conversione. : Void createGradientBox(widt h:Number, height:Number,[rota tion:Number],[tx:Nu mber],[ty:Number:]) : Void Crea lo stile di matrice specifico previsto dal metodo MovieClip.beginGradientFill(). GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 374 Ultimo aggiornamento 4/5/2010 Classi ActionScript Modificatori Firma Descrizione deltaTransformPoint(pt: Point) :Point Dato un punto nello spazio di coordinate pre-trasformazione, questo metodo restituisce le coordinate di tale punto dopo l'avvenuta trasformazione. identity() : Void Imposta ogni proprietà della matrice su un valore tale per cui un clip filmato o un costrutto geometrico trasformato risulti identico all'originale. invert() : Void Esegue la trasformazione opposta rispetto alla matrice originale. rotate(angle:Number) : Void Imposta i valori della matrice corrente in modo che possa essere utilizzata per applicare una trasformazione di rotazione. scale(sx:Number, sy:Number) : Void Modifica una matrice in modo tale che, una volta applicata, abbia come effetto il ridimensionamento di un'immagine. toString() : String Restituisce un valore di testo che elenca le proprietà dell'oggetto Matrix. transformPoint(pt:Point ):Point Applica al punto specificato la trasformazione geometrica rappresentata dall'oggetto Matrix. translate(tx:Number, ty:Number) : Void Modifica un oggetto Matrix in modo tale che la sua trasformazione abbia come effetto lo spostamento di un oggetto lungo gli assi x e y. addProperty (metodo Object.addProperty), hasOwnProperty (metodo Object.hasOwnProperty), isPropertyEnumerable (metodo Object.isPropertyEnumerable), isPrototypeOf (metodo Object.isPrototypeOf), registerClass (metodo Object.registerClass), toString (metodo Object.toString), unwatch (metodo Object.unwatch), valueOf (metodo Object.valueOf), watch (metodo Object.watch) a (proprietà Matrix.a) public a : Number Il valore nella prima riga e nella prima colonna dell'oggetto Matrix, che incide sul posizionamento dei pixel lungo l'asse x quando un'immagine viene modificata in scala o ruotata. Disponibilità Flash Lite 3.1 Esempio Nell'esempio seguente viene creato l'oggetto Matrix myMatrix, di cui viene impostato il valore a. import flash.geom.Matrix; var myMatrix:Matrix = new Matrix(); trace(myMatrix.a); // 1 myMatrix.a = 2; trace(myMatrix.a); // 2 b (proprietà Matrix.b) public b : Number Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 375 Classi ActionScript Il valore nella prima riga e nella seconda colonna dell'oggetto Matrix, che incide sul posizionamento dei pixel lungo l'asse y quando un'immagine viene ruotata o inclinata. Disponibilità Flash Lite 3.1 Esempio Nell'esempio seguente viene creato l'oggetto Matrix myMatrix, di cui viene impostato il valore b. import flash.geom.Matrix; var myMatrix:Matrix = new Matrix(); trace(myMatrix.b); // 0 var degrees:Number = 45; var radians:Number = (degrees/180) Math.PI; myMatrix.b = radians; trace(myMatrix.b); // 0.785398163397448 c (proprietà Matrix.c) public c : Number Il valore nella seconda riga e nella prima colonna dell'oggetto Matrix, che incide sul posizionamento dei pixel lungo l'asse x quando un'immagine viene ruotata o inclinata. Disponibilità Flash Lite 3.1 Esempio Nell'esempio seguente viene creato l'oggetto Matrix myMatrix, di cui viene impostato il valore c. import flash.geom.Matrix; var myMatrix:Matrix = new Matrix(); trace(myMatrix.c); // 0 var degrees:Number = 45; var radians:Number = (degrees/180) Math.PI; myMatrix.c = radians; trace(myMatrix.c); // 0.785398163397448 clone (metodo Matrix.clone) public clone() : Matrix Restituisce un nuovo oggetto Matrix, clone di questa matrice, con una copia esatta dell'oggetto contenuto. Disponibilità Flash Lite 3.1 Restituisce Matrix - Un oggetto Matrix. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 376 Classi ActionScript Esempio Nell'esempio seguente viene creata la variabile clonedMatrix dalla variabile myMatrix. La classe Matrix non dispone di un metodo equals; quindi, per verificare l'uguaglianza di due matrici, nell'esempio seguente viene utilizzata una funzione personalizzata. import flash.geom.Matrix; var myMatrix:Matrix = new Matrix(2, 0, 0, 2, 0, 0); var clonedMatrix:Matrix = new Matrix(); trace(myMatrix); // (a=2, b=0, c=0, d=2, tx=0, ty=0) trace(clonedMatrix); // (a=1, b=0, c=0, d=1, tx=0, ty=0) trace(equals(myMatrix, clonedMatrix)); // false clonedMatrix = myMatrix.clone(); trace(myMatrix); // (a=2, b=0, c=0, d=2, tx=0, ty=0) trace(clonedMatrix); // (a=2, b=0, c=0, d=2, tx=0, ty=0) trace(equals(myMatrix, clonedMatrix)); // true function equals(m1:Matrix, m2:Matrix):Boolean { return m1.toString() == m2.toString(); } concat (metodo Matrix.concat) public concat(m:Matrix) : Void Concatena una matrice con la matrice corrente, combinando gli effetti geometrici delle due matrici. In termini matematici, il concatenamento di due matrici equivale alla loro combinazione mediante la moltiplicazione di matrici. Per esempio, se la matrice m1 modifica in scala un oggetto di un fattore quattro e la matrice m2 ruota un oggetto di 1,5707963267949 radianti (Math.PI/2), m1.concat(m2) trasforma m1 in una matrice che modifica in scala un oggetto di un fattore quattro e ruota l'oggetto di Math.PI/2 radianti. Questo metodo sostituisce la matrice di origine con la matrice concatenata. Se si desidera concatenare due matrici senza modificare le due matrici di origine, copiare la matrice di origine utilizzando il metodo clone() illustrato nella sezione relativa agli esempi. Disponibilità Flash Lite 3.1 Parametri m:Matrix - La matrice da concatenare alla matrice di origine. Esempio Nell'esempio seguente vengono create tre matrici che definiscono le trasformazioni per tre clip filmato di tipo rettangolo. Le due prime matrici rotate45Matrix e doubleScaleMatrixvengono applicate ai due rettangoli rectangleMc_1 e rectangleMc_2. Viene quindi creata la terza matrice usando il metodo concat() su rotate45Matrix e doubleScaleMatrix per creare scaleAndRotateMatrix. Questa matrice viene quindi applicata all'oggetto rectangleMc_3, che viene modificato in scala e ruotato. GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 377 Ultimo aggiornamento 4/5/2010 Classi ActionScript import flash.geom.Matrix; import flash.geom.Transform; var var var var rectangleMc_0:MovieClip rectangleMc_1:MovieClip rectangleMc_2:MovieClip rectangleMc_3:MovieClip = = = = createRectangle(20, createRectangle(20, createRectangle(20, createRectangle(20, 80, 80, 80, 80, 0x000000); 0xFF0000); 0x00FF00); 0x0000FF); var rectangleTrans_1:Transform = new Transform(rectangleMc_1); var rectangleTrans_2:Transform = new Transform(rectangleMc_2); var rectangleTrans_3:Transform = new Transform(rectangleMc_3); var rotate45Matrix:Matrix = new Matrix(); rotate45Matrix.rotate(Math.PI/4); rectangleTrans_1.matrix = rotate45Matrix; rectangleMc_1._x = 100; trace(rotate45Matrix.toString()); // (a=0.707106781186548, b=0.707106781186547, c=0.707106781186547, d=0.707106781186548, tx=0, ty=0) var doubleScaleMatrix:Matrix = new Matrix(); doubleScaleMatrix.scale(2, 2); rectangleTrans_2.matrix = doubleScaleMatrix; rectangleMc_2._x = 200; trace(doubleScaleMatrix.toString()); // (a=2, b=0, c=0, d=2, tx=0, ty=0) var scaleAndRotateMatrix:Matrix = doubleScaleMatrix.clone(); scaleAndRotateMatrix.concat(rotate45Matrix); rectangleTrans_3.matrix = scaleAndRotateMatrix; rectangleMc_3._x = 300; trace(scaleAndRotateMatrix.toString()); // (a=1.4142135623731, b=1.41421356237309, c=1.41421356237309, d=1.4142135623731, tx=0, ty=0) function createRectangle(width:Number, height:Number, color:Number):MovieClip { var depth:Number = this.getNextHighestDepth(); var mc:MovieClip = this.createEmptyMovieClip("mc_" + depth, depth); mc.beginFill(color); mc.lineTo(0, height); mc.lineTo(width, height); mc.lineTo(width, 0); mc.lineTo(0, 0); return mc; } createBox (metodo Matrix.createBox) public createBox(scaleX:Number, scaleY:Number, [rotation:Number], [tx:Number], [ty:Number]) : Void Comprende parametri per la modifica in scala, la rotazione e la conversione. Quando viene applicato a una matrice, ne imposta i valori in base a tali parametri. Il metodo createBox() consente di ottenere la stessa matrice che si otterrebbe applicando in successione i metodi identity(), rotate(), scale() e translate(). Ad esempio, mat1.createBox(2,2,Math.PI/5, 100, 100) ha lo stesso effetto di: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 378 Classi ActionScript import flash.geom.Matrix; var mat1:Matrix = new Matrix(); mat1.identity(); mat1.rotate(Math.PI/4); mat1.scale(2,2); mat1.translate(10,20); Disponibilità Flash Lite 3.1 Parametri scaleX:Number - Il fattore di modifica in scala orizzontale. scaleY:Number - Il fattore di modifica in scala verticale. rotation:Number [opzionale] - L'angolo di rotazione, espresso in radianti. Il valore predefinito è 0. tx:Number [opzionale] - Il numero di pixel per la traslazione (spostamento) a destra lungo l'asse x. Il valore predefinito è 0. ty:Number [opzionale] - Il numero di pixel per la traslazione (spostamento) in basso lungo l'asse y. Il valore predefinito è 0. Esempio Nell'esempio seguente vengono impostati la scala scaleX, scaleY, la rotazione, la posizione x e la posizione y di myMatrix chiamando il relativo metodo createBox(). import flash.geom.Matrix; import flash.geom.Transform; var myMatrix:Matrix = new Matrix(); trace(myMatrix.toString()); // (a=1, b=0, c=0, d=1, tx=0, ty=0) myMatrix.createBox(1, 2, Math.PI/4, 100, 200); trace(myMatrix.toString()); // (a=0.707106781186548, b=1.41421356237309, c=0.707106781186547, d=1.4142135623731, tx=100, ty=200) var rectangleMc:MovieClip = createRectangle(20, 80, 0xFF0000); var rectangleTrans:Transform = new Transform(rectangleMc); rectangleTrans.matrix = myMatrix; createGradientBox (metodo Matrix.createGradientBox) public createGradientBox(width:Number, height:Number, [rotation:Number], [tx:Number], [ty:Number]) : Void Crea lo stile di matrice specifico previsto dal metodo MovieClip.beginGradientFill(). La larghezza e l'altezza vengono modificate in scala in base alla coppia scaleX/scaleY e i valori tx/ty vengono spostati della metà della larghezza e dell'altezza. Disponibilità Flash Lite 3.1 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 379 Classi ActionScript Parametri width:Number - La larghezza del riquadro del gradiente. height:Number - L'altezza del riquadro del gradiente. rotation:Number [opzionale] - L'angolo di rotazione, espresso in radianti. Il valore predefinito è 0. tx:Number [opzionale] - Il numero di pixel per la traslazione (spostamento) a destra lungo l'asse x. Questo valore viene spostato di metà del parametro width. Il valore predefinito è 0. ty:Number [opzionale] - Il numero di pixel per la traslazione (spostamento) in basso lungo l'asse y. Questo valore viene spostato di metà del parametro height. Il valore predefinito è 0. Esempio Nell'esempio seguente viene utilizzato myMatrix come parametro del metodo beginGradientFill() dell'oggetto MovieClip. import flash.geom.Matrix; var myMatrix:Matrix = new Matrix(); trace(myMatrix.toString()); // (a=1, b=0, c=0, d=1, tx=0, ty=0) myMatrix.createGradientBox(200, 200, 0, 50, 50); trace(myMatrix.toString()); // (a=0.1220703125, b=0, c=0, d=0.1220703125, tx=150, ty=150) var depth:Number = this.getNextHighestDepth(); var mc:MovieClip = this.createEmptyMovieClip("mc_" + depth, depth); var colors:Array = [0xFF0000, 0x0000FF]; var alphas:Array = [100, 100]; var ratios:Array = [0, 0xFF]; mc.beginGradientFill("linear", colors, alphas, ratios, myMatrix); mc.lineTo(0, 300); mc.lineTo(300, 300); mc.lineTo(300, 0); mc.lineTo(0, 0); Vedete anche beginGradientFill (metodo MovieClip.beginGradientFill) d (proprietà Matrix.d) public d : Number Il valore nella seconda riga e nella seconda colonna dell'oggetto Matrix, che incide sul posizionamento dei pixel lungo l'asse y quando un'immagine viene modificata in scala o ruotata. Disponibilità Flash Lite 3.1 Esempio Nell'esempio seguente viene creato l'oggetto Matrix myMatrix, di cui viene impostato il valore d. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 380 Classi ActionScript import flash.geom.Matrix; var myMatrix:Matrix = new Matrix(); trace(myMatrix.d); // 1 myMatrix.d = 2; trace(myMatrix.d); // 2 deltaTransformPoint (metodo Matrix.deltaTransformPoint) public deltaTransformPoint(pt:Point) : Point Dato un punto nello spazio di coordinate pre-trasformazione, questo metodo restituisce le coordinate di tale punto dopo l'avvenuta trasformazione. A differenza della trasformazione standard applicata mediante il metodo transformPoint(), la trasformazione del metodo deltaTransformPoint() non prende in considerazione i parametri di conversione tx e ty. Disponibilità Flash Lite 3.1 Parametri pt:Point - Un oggetto Point. Restituisce Point - Il nuovo oggetto Point. Esempio Nell'esempio seguente viene utilizzato il metodo deltaTransformPoint() per creare deltaTransformedPoint da myPoint. Nell'esempio, il metodo translate() non modifica la posizione del punto denominato deltaTransformedPoint, Tuttavia, il metodo scale() modifica la posizione di quel punto. Aumenta il valore x del punto di tre volte da 50 a 150. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 381 Classi ActionScript import flash.geom.Matrix; import flash.geom.Point; var myMatrix:Matrix = new Matrix(); trace(myMatrix); // (a=1, b=0, c=0, d=1, tx=0, ty=0) myMatrix.translate(100, 0); trace(myMatrix); // (a=1, b=0, c=0, d=1, tx=100, ty=0) myMatrix.scale(3, 3); trace(myMatrix); // (a=3, b=0, c=0, d=3, tx=300, ty=0) var myPoint:Point = new Point(50,0); trace(myPoint); // (50, 0) var deltaTransformedPoint:Point = myMatrix.deltaTransformPoint(myPoint); trace(deltaTransformedPoint); // (150, 0) var pointMc_0:MovieClip = createRectangle(10, 10, 0xFF0000); pointMc_0._x = myPoint.x; var pointMc_1:MovieClip = createRectangle(10, 10, 0x00FF00); pointMc_1._x = deltaTransformedPoint.x; function createRectangle(width:Number, height:Number, color:Number):MovieClip { var depth:Number = this.getNextHighestDepth(); var mc:MovieClip = this.createEmptyMovieClip("mc_" + depth, depth); mc.beginFill(color); mc.lineTo(0, height); mc.lineTo(width, height); mc.lineTo(width, 0); mc.lineTo(0, 0); return mc; } identity (metodo Matrix.identity) public identity() : Void Imposta ogni proprietà di matrice su un valore tale che un clip filmato o un costrutto geometrico trasformato risulti identico all'originale. Dopo la chiamata del metodo identity(), le proprietà della matrice risultante sono le seguenti: a =1, b =0, c =0, d =1, tx =0, ty =0. Nella notazione della matrice, la matrice di identità sarà simile alla seguente: Disponibilità Flash Lite 3.1 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 382 Classi ActionScript Esempio Nell'esempio seguente viene dimostrato che la chiamata del metodo identity() converte l'oggetto Matrix chiamante in un oggetto Matrix identità. Il numero e i tipi di trasformazioni applicati precedentemente all'oggetto Matrix originale sono irrilevanti. Se viene chiamato identity(), i valori di Matrix vengono convertiti in (a=1, b=0, c=0, d=1, tx=0, ty=0). import flash.geom.Matrix; var myMatrix:Matrix = new Matrix(2, 0, 0, 2, 0 ,0); trace(myMatrix.toString()); // (a=2, b=0, c=0, d=2, tx=0, ty=0) myMatrix.rotate(Math.atan(3/4)); trace(myMatrix.toString()); // (a=1.6, b=1.2, c=-1.2, d=1.6, tx=0, ty=0) myMatrix.translate(100,200); trace(myMatrix.toString()); // (a=1.6, b=1.2, c=-1.2, d=1.6, tx=100, ty=200) myMatrix.scale(2, 2); trace(myMatrix.toString()); // (a=3.2, b=2.4, c=-2.4, d=3.2, tx=200, ty=400) myMatrix.identity(); trace(myMatrix.toString()); // (a=1, b=0, c=0, d=1, tx=0, ty=0) invert (metodo Matrix.invert) public invert() : Void Esegue la trasformazione opposta rispetto alla matrice originale. Per annullare la trasformazione eseguita con l'applicazione della matrice originale è possibile applicare una matrice invertita a un oggetto. Disponibilità Flash Lite 3.1 Esempio Nell'esempio seguente viene creato un oggetto halfScaleMatrix mediante la chiamata del metodo invert() di doubleScaleMatrix; viene quindi dimostrato che le due matrici sono reciprocamente inverse, ovvero le matrici annullano qualsiasi trasformazione eseguita dall'altra. Nell'esempio questa inversione viene illustrata mediante la creazione di originalAndInverseMatrix, che equivale a.noScaleMatrix GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 383 Ultimo aggiornamento 4/5/2010 Classi ActionScript import flash.geom.Matrix; import flash.geom.Transform; var var var var rectangleMc_0:MovieClip rectangleMc_1:MovieClip rectangleMc_2:MovieClip rectangleMc_3:MovieClip = = = = var var var var rectangleTrans_0:Transform rectangleTrans_1:Transform rectangleTrans_2:Transform rectangleTrans_3:Transform createRectangle(20, createRectangle(20, createRectangle(20, createRectangle(20, = = = = new new new new 80, 80, 80, 80, 0xFF0000); 0x00FF00); 0x0000FF); 0x000000); Transform(rectangleMc_0); Transform(rectangleMc_1); Transform(rectangleMc_2); Transform(rectangleMc_3); var doubleScaleMatrix:Matrix = new Matrix(2, 0, 0, 2, 0, 0); rectangleTrans_0.matrix = doubleScaleMatrix; trace(doubleScaleMatrix.toString()); // (a=2, b=0, c=0, d=2, tx=0, ty=0) var noScaleMatrix:Matrix = new Matrix(1, 0, 0, 1, 0, 0); rectangleTrans_1.matrix = noScaleMatrix; rectangleMc_1._x = 100; trace(noScaleMatrix.toString()); // (a=1, b=0, c=0, d=1, tx=0, ty=0) var halfScaleMatrix:Matrix = doubleScaleMatrix.clone(); halfScaleMatrix.invert(); rectangleTrans_2.matrix = halfScaleMatrix; rectangleMc_2._x = 200; trace(halfScaleMatrix.toString()); // (a=0.5, b=0, c=0, d=0.5, tx=0, ty=0) var originalAndInverseMatrix:Matrix = doubleScaleMatrix.clone(); originalAndInverseMatrix.concat(halfScaleMatrix); rectangleTrans_3.matrix = originalAndInverseMatrix; rectangleMc_3._x = 300; trace(originalAndInverseMatrix.toString()); // (a=1, b=0, c=0, d=1, tx=0, ty=0) function createRectangle(width:Number, height:Number, color:Number):MovieClip { var depth:Number = this.getNextHighestDepth(); var mc:MovieClip = this.createEmptyMovieClip("mc_" + depth, depth); mc.beginFill(color); mc.lineTo(0, height); mc.lineTo(width, height); mc.lineTo(width, 0); mc.lineTo(0, 0); return mc; } Funzione di costruzione Matrix public Matrix([a:Number], [b:Number], [c:Number], [d:Number], [tx:Number], [ty:Number]) Crea un nuovo oggetto Matrix con i parametri specificati. Nella notazione della matrice, le proprietà vengono organizzate come segue: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 384 Classi ActionScript Se non si specificano parametri per la nuova funzione di costruzione Matrix(), viene creata una "matrice identità" con i valori seguenti: a = 1 b = 0 c = 0 d = 1 tx = 0 ty = 0 Nella notazione della matrice, la matrice di identità sarà simile alla seguente: Disponibilità Flash Lite 3.1 Parametri a:Number [opzionale] - Il valore nella prima riga e nella prima colonna del nuovo oggetto Matrix. b:Number [opzionale] - Il valore nella prima riga e nella seconda colonna del nuovo oggetto Matrix. c:Number [opzionale] - Il valore nella seconda riga e nella prima colonna del nuovo oggetto Matrix. d:Number [opzionale] - Il valore nella seconda riga e nella seconda colonna del nuovo oggetto Matrix. tx:Number [opzionale] - Il valore nella terza riga e nella prima colonna del nuovo oggetto Matrix. ty:Number [opzionale] - Il valore nella terza riga e nella seconda colonna del nuovo oggetto Matrix. Esempio L'esempio seguente crea matrix_1 senza inviare alcun parametro alla funzione di costruzione Matrix e matrix_2 inviando invece dei parametri. L'oggetto Matrix matrix_1, creato senza parametri, è una matrice identità con i valori (a=_1, b=0, c=0, d=1, tx=0, ty=0). import flash.geom.Matrix; var matrix_1:Matrix = new Matrix(); trace(matrix_1); // (a=1, b=0, c=0, d=1, tx=0, ty=0) var matrix_2:Matrix = new Matrix(1, 2, 3, 4, 5, 6); trace(matrix_2); // (a=1, b=2, c=3, d=4, tx=5, ty=6) rotate (metodo Matrix.rotate) public rotate(angle:Number) : Void Imposta i valori della matrice corrente in modo che possa essere utilizzata per applicare una trasformazione di rotazione. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 385 Classi ActionScript Il metodo rotate() modifica le proprietà a e d dell'oggetto Matrix. Nella notazione della matrice, viene visualizzato come segue: Disponibilità Flash Lite 3.1 Parametri angle:Number - L'angolo di rotazione in radianti. Esempio Nell'esempio seguente il metodo rotate() ruota rectangleMc di 30 gradi in senso orario. Se si applica myMatrix a rectangleMc, il relativo valore _x viene reimpostato ed è possibile ripristinarlo manualmente a 100. import flash.geom.Matrix; import flash.geom.Transform; var myMatrix:Matrix = new Matrix(); trace(myMatrix.toString()); // (a=1, b=0, c=0, d=1, tx=0, ty=0) var degrees:Number = 30; var radians:Number = (degrees/180) Math.PI; myMatrix.rotate(radians); trace(myMatrix.toString()); // (a=0.866025403784439, b=0.5, c=-0.5, d=0.866025403784439, tx=0, ty=0) var rectangleMc:MovieClip = createRectangle(20, 80, 0xFF0000); trace(rectangleMc._x); // 0 rectangleMc._x = 100; trace(rectangleMc._x); // 100 var rectangleTrans:Transform = new Transform(rectangleMc); rectangleTrans.matrix = myMatrix; trace(rectangleMc._x); // 0 rectangleMc._x = 100; trace(rectangleMc._x); // 100 function createRectangle(width:Number, height:Number, color:Number):MovieClip { var depth:Number = this.getNextHighestDepth(); var mc:MovieClip = this.createEmptyMovieClip("mc_" + depth, depth); mc.beginFill(color); mc.lineTo(0, height); mc.lineTo(width, height); mc.lineTo(width, 0); mc.lineTo(0, 0); return mc; } Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 386 Classi ActionScript Nell'esempio precedente, per posizionare rectangleMc, viene utilizzata la proprietà _x dell'oggetto MovieClip. In generale, l'uso di tecniche miste per il posizionamento di matrici non è considerata una pratica corretta. L'esempio precedente, scritto correttamente, concatena una matrice di conversione a myMatrix per modificare la posizione orizzontale di rectangleMc, come dimostrato nell'esempio seguente. import flash.geom.Matrix; import flash.geom.Transform; var myMatrix:Matrix = new Matrix(); trace(myMatrix.toString()); // (a=1, b=0, c=0, d=1, tx=0, ty=0) var degrees:Number = 30; var radians:Number = (degrees/180) * Math.PI; myMatrix.rotate(radians); trace(myMatrix.toString()); // (a=0.866025403784439, b=0.5, c=-0.5, d=0.866025403784439, tx=0, ty=0) var translateMatrix:Matrix = new Matrix(); translateMatrix.translate(100, 0); myMatrix.concat(translateMatrix); trace(myMatrix.toString()); // (a=0.866025403784439, b=0.5, c=-0.5, d=0.866025403784439, tx=100, ty=0) var rectangleMc:MovieClip = createRectangle(20, 80, 0xFF0000); trace(rectangleMc._x); // 0 rectangleMc._x = 100; trace(rectangleMc._x); // 100 var rectangleTrans:Transform = new Transform(rectangleMc); rectangleTrans.matrix = myMatrix; trace(rectangleMc._x); // 100 function createRectangle(width:Number, height:Number, color:Number):MovieClip { var depth:Number = this.getNextHighestDepth(); var mc:MovieClip = this.createEmptyMovieClip("mc_" + depth, depth); mc.beginFill(color); mc.lineTo(0, height); mc.lineTo(width, height); mc.lineTo(width, 0); mc.lineTo(0, 0); return mc; } scale (metodo Matrix.scale) public scale(sx:Number, sy:Number) : Void Modifica una matrice in modo tale che, una volta applicata, abbia come effetto il ridimensionamento di un'immagine. Nell'immagine ridimensionata la posizione di ogni pixel viene moltiplicata sull'asse x per sx e sull'asse y per sy. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 387 Classi ActionScript Il metodo scale() modifica le proprietà a e d dell'oggetto Matrix. Nella notazione matriciale, viene visualizzato come segue: Disponibilità Flash Lite 3.1 Parametri sx:Number - Un moltiplicatore usato per la modifica in scala dell'oggetto lungo l'asse x. sy:Number - Un moltiplicatore usato per la modifica in scala dell'oggetto lungo l'asse y. Esempio Nell'esempio seguente viene utilizzato il metodo scale() per modificare in scala myMatrix in base a un fattore 3 orizzontalmente e in base a un fattore 4 verticalmente. import flash.geom.Matrix; var myMatrix:Matrix = new Matrix(2, 0, 0, 2, 100, 100); trace(myMatrix.toString()); // (a=2, b=0, c=0, d=2, tx=100, ty=100) myMatrix.scale(3, 4); trace(myMatrix.toString()); // (a=6, b=0, c=0, d=8, tx=300, ty=400) toString (metodo Matrix.toString) public toString() : String Restituisce un valore di testo che elenca le proprietà dell'oggetto Matrix. Disponibilità Flash Lite 3.1 Restituisce “String” a pagina 598 - Una stringa contenente i valori delle proprietà dell'oggetto Matrix: a, b, c, d, tx e ty. Esempio Nell'esempio seguente viene creata myMatrix e ne vengono convertiti i valori in una stringa nel formato (a=A, b=B, c=C, d=D, tx=TX, ty=TY). import flash.geom.Matrix; var myMatrix:Matrix = new Matrix(); trace("myMatrix: " + myMatrix.toString()); // (a=1, b=0, c=0, d=1, tx=0, ty=0) transformPoint (metodo Matrix.transformPoint) public transformPoint(pt:Point) : Point Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 388 Classi ActionScript Applica al punto specificato la trasformazione geometrica rappresentata dall'oggetto Matrix. Disponibilità Flash Lite 3.1 Parametri pt:Point - L'oggetto Point (x,y) da trasformare. Restituisce Point (flash.geom.Point) - Il nuovo oggetto Point. Esempio Nell'esempio seguente viene utilizzato il metodo transformPoint() per creare transformedPoint da myPoint. Il metodo translate() non influisce sulla posizione di transformedPoint. Nell'esempio, scale() aumenta il valore x originale di tre volte da 50 a 150, mentre translate() aumenta x di 300 per un valore totale di 450. import flash.geom.Matrix; import flash.geom.Point; var myMatrix:Matrix = new Matrix(); trace(myMatrix); // (a=1, b=0, c=0, d=1, tx=0, ty=0) myMatrix.translate(100, 0); trace(myMatrix); // (a=1, b=0, c=0, d=1, tx=100, ty=0) myMatrix.scale(3, 3); trace(myMatrix); // (a=3, b=0, c=0, d=3, tx=300, ty=0) var myPoint:Point = new Point(50,0); trace(myPoint); // (50, 0) var transformedPoint:Point = myMatrix.transformPoint(myPoint); trace(transformedPoint); // (450, 0) var pointMc_0:MovieClip = createRectangle(10, 10, 0xFF0000); pointMc_0._x = myPoint.x; var pointMc_1:MovieClip = createRectangle(10, 10, 0x00FF00); pointMc_1._x = transformedPoint.x; function createRectangle(width:Number, height:Number, color:Number):MovieClip { var depth:Number = this.getNextHighestDepth(); var mc:MovieClip = this.createEmptyMovieClip("mc_" + depth, depth); mc.beginFill(color); mc.lineTo(0, height); mc.lineTo(width, height); mc.lineTo(width, 0); mc.lineTo(0, 0); return mc; } translate (metodo Matrix.translate) public translate(tx:Number, ty:Number) : Void Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 389 Classi ActionScript Modifica un oggetto Matrix in modo tale che la sua trasformazione abbia come effetto lo spostamento di un oggetto lungo gli assi x e y. Il metodo translate() modifica le proprietà tx e ty dell'oggetto Matrix. Nella notazione matriciale, viene visualizzato come segue: Disponibilità Flash Lite 3.1 Parametri tx:Number - La quantità di spostamento a destra lungo l'asse x, espressa in pixel. ty:Number - La quantità di spostamento in basso lungo l'asse y, espressa in pixel. Esempio L'esempio seguente usa il metodo translate() per posizionare rectangleMc in x:100 e y:50. Il metodo translate() influisce sulle proprietà di traslazione tx e ty, ma non modifica le proprietà a, b, c o d. import flash.geom.Matrix; var myMatrix:Matrix = new Matrix(2, 0, 0, 2, 100, 100); trace(myMatrix.toString()); // (a=2, b=0, c=0, d=2, tx=100, ty=100) myMatrix.translate(100, 50); trace(myMatrix.toString()); // (a=2, b=0, c=0, d=2, tx=200, ty=150) tx (proprietà Matrix.tx) public tx : Number La distanza in base alla quale viene convertito ogni punto lungo l'asse x. Rappresenta il valore nella terza riga e nella prima colonna dell'oggetto Matrix. Disponibilità Flash Lite 3.1 Esempio Nell'esempio seguente viene creato l'oggetto Matrix myMatrix, di cui viene impostato il valore tx. import flash.geom.Matrix; var myMatrix:Matrix = new Matrix(); trace(myMatrix.tx); // 0 myMatrix.tx = 50; // 50 trace(myMatrix.tx); Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 390 Classi ActionScript ty (proprietà Matrix.ty) public ty : Number La distanza in base alla quale viene convertito ogni punto lungo l'asse y. Rappresenta il valore nella terza riga e nella seconda colonna dell'oggetto Matrix. Disponibilità Flash Lite 3.1 Esempio Nell'esempio seguente viene creato l'oggetto Matrix myMatrix, di cui viene impostato il valore ty. import flash.geom.Matrix; var myMatrix:Matrix = new Matrix(); trace(myMatrix.ty); // 0 myMatrix.ty = 50; trace(myMatrix.ty); // 50 Mouse Object | +-Mouse public class Mouse extends Object La classe Mouse è una classe di primo livello di cui è possibile utilizzare metodi e proprietà senza ricorrere a una funzione di costruzione. È possibile utilizzare i metodi della classe Mouse per aggiungere e rimuovere i listener e per gestire gli eventi associati al mouse. I membri di questa classe sono supportati in Flash Lite solo se System.capabilities.hasMouse è true o System.capabilities.hasStylus è true. Disponibilità Flash Lite 2.0 Riepilogo delle proprietà Proprietà ereditate dalla classe Object constructor (proprietà Object.constructor), __proto__ (proprietà Object._proto), prototype (proprietà Object.prototype), __resolve (proprietà Object.__resolve) GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 391 Ultimo aggiornamento 4/5/2010 Classi ActionScript Riepilogo degli eventi Evento Descrizione onMouseDown = function() {} Notificato quando viene premuto il pulsante del mouse. onMouseMove = Notificato allo spostamento del mouse. function() {} onMouseUp = Notificato quando viene rilasciato il pulsante del mouse. function() {} Riepilogo dei metodi Modificatori Firma Descrizione static addListener(listener: Object) : Void Registra un oggetto per ricevere le notifiche dei listener onMouseDown, onMouseMove e onMouseUp. static removeListener(listene Rimuove un oggetto precedentemente registrato con r:Object) : Boolean addListener(). Metodi ereditati dalla classe Object addProperty (metodo Object.addProperty), hasOwnProperty (metodo Object.hasOwnProperty), isPropertyEnumerable (metodo Object.isPropertyEnumerable), isPrototypeOf (metodo Object.isPrototypeOf), registerClass (metodo Object.registerClass), toString (metodo Object.toString)unwatch (metodo Object.unwatch), valueOf (metodo Object.valueOf), watch (metodo Object.watch) addListener (metodo Mouse.addListener) public static addListener(listener:Object) : Void Registra un oggetto per ricevere le notifiche dei listener onMouseDown, onMouseMove e onMouseUp. Il parametro listener dovrebbe contenere un oggetto con un metodo definito per almeno un listener. Quando si muove il mouse, lo si utilizza per lo scorrimento oppure se ne preme o rilascia il pulsante, a prescindere dal fatto che il mouse sia attivo, per tutti gli oggetti "in ascolto" registrati con addListener() viene richiamato il metodo onMouseDown, onMouseMove oppure onMouseUp. Più oggetti possono "ascoltare" le notifiche del mouse. Se il listener è già registrato, non viene apportata alcuna modifica. Nota: questo metodo è supportato in Flash Lite solo se System.capabilities.hasMouse è true o System.capabilities.hasStylus è true. Disponibilità Flash Lite 2.0 Parametri listener:Object Esempio Questo esempio invia la posizione del cursore alla finestra Output. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 392 Classi ActionScript // Create a mouse listener object. var mouseListener:Object = new Object(); mouseListener.onMouseMove = function() { trace(_xmouse); trace(_ymouse); }; Mouse.addListener(mouseListener); Vedete anche onMouseDown (listener di eventi Mouse.onMouseDown), onMouseMove (listener di eventi Mouse.onMouseMove), onMouseUp (listener di eventi Mouse.onMouseUp) onMouseDown (listener di eventi Mouse.onMouseDown) onMouseDown = function() {} Notificato quando viene premuto il pulsante del mouse. Per utilizzare il listener onMouseDown, creare un oggetto listener. Definire una funzione per onMouseDown e chiamare addListener() per registrare il listener con l'oggetto Mouse, come illustrato nel codice seguente: var someListener:Object = new Object(); someListener.onMouseDown = function () { ... }; Mouse.addListener(someListener); I listener consentono a parti di codice diverse di cooperare, dal momento che più listener possono ricevere notifiche relative allo stesso evento. Questo listener di eventi è supportato in Flash Lite solo se System.capabilities.hasMouse è true o System.capabilities.hasStylus è true. Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente viene utilizzata l'API di disegno per disegnare un rettangolo ogni volta che l'utente preme il pulsante del mouse, sposta il mouse, quindi ne rilascia il pulsante in fase di runtime. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 393 Classi ActionScript this.createEmptyMovieClip("canvas_mc", this.getNextHighestDepth()); var mouseListener:Object = new Object(); mouseListener.onMouseDown = function() { this.isDrawing = true; this.orig_x = _xmouse; this.orig_y = _ymouse; this.target_mc = canvas_mc.createEmptyMovieClip("", canvas_mc.getNextHighestDepth()); }; mouseListener.onMouseMove = function() { if (this.isDrawing) { this.target_mc.clear(); this.target_mc.lineStyle(1, 0xFF0000, 100); this.target_mc.moveTo(this.orig_x, this.orig_y); this.target_mc.lineTo(_xmouse, this.orig_y); this.target_mc.lineTo(_xmouse, _ymouse); this.target_mc.lineTo(this.orig_x, _ymouse); this.target_mc.lineTo(this.orig_x, this.orig_y); } updateAfterEvent(); }; mouseListener.onMouseUp = function() { this.isDrawing = false; }; Mouse.addListener(mouseListener); Vedete anche addListener (metodo Mouse.addListener) onMouseMove (listener di eventi Mouse.onMouseMove) onMouseMove = function() {} Notificato allo spostamento del mouse. Per utilizzare il listener onMouseMove, creare un oggetto listener. Quindi è possibile definire una funzione per onMouseMove e utilizzare addListener() per registrare il listener con l'oggetto Mouse, come illustrato nell'esempio seguente: var someListener:Object = new Object(); someListener.onMouseMove = function () { ... }; Mouse.addListener(someListener); I listener consentono a parti di codice diverse di cooperare, dal momento che più listener possono ricevere notifiche relative allo stesso evento. Questo listener di eventi è supportato in Flash Lite solo se System.capabilities.hasMouse è true. Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente viene utilizzato il puntatore del mouse per disegnare linee utilizzando onMouseMove e l'API di disegno. L'utente disegna una linea spostando il puntatore. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 394 Classi ActionScript this.createEmptyMovieClip("canvas_mc", this.getNextHighestDepth()); var mouseListener:Object = new Object(); mouseListener.onMouseDown = function() { this.isDrawing = true; canvas_mc.lineStyle(2, 0xFF0000, 100); canvas_mc.moveTo(_xmouse, _ymouse); }; mouseListener.onMouseMove = function() { if (this.isDrawing) { canvas_mc.lineTo(_xmouse, _ymouse); } updateAfterEvent(); }; mouseListener.onMouseUp = function() { this.isDrawing = false; }; Mouse.addListener(mouseListener); L'esempio seguente imposta le posizioni x e y dell'istanza del clip filmato pointer_mc sulle posizioni x e y del puntatore. Perché questo esempio funzioni, è necessario che il dispositivo supporti uno stilo o un mouse. Ai fini di questo esempio, creare un clip filmato e impostarne l'identificatore di collegamento su pointer_id. Quindi, aggiungere il codice ActionScript seguente al fotogramma 1 della linea temporale: this.attachMovie("pointer_id", "pointer_mc", this.getNextHighestDepth()); var mouseListener:Object = new Object(); mouseListener.onMouseMove = function() { pointer_mc._x = _xmouse; pointer_mc._y = _ymouse; }; Mouse.addListener(mouseListener); Vedete anche addListener (metodo Mouse.addListener) onMouseUp (listener di eventi Mouse.onMouseUp) onMouseUp = function() {} Notificato quando viene rilasciato il pulsante del mouse. Per utilizzare il listener onMouseUp, creare un oggetto listener. Quindi è possibile definire una funzione per onMouseUp e utilizzare addListener() per registrare il listener con l'oggetto Mouse, come illustrato nell'esempio seguente: var someListener:Object = new Object(); someListener.onMouseUp = function () { ... }; Mouse.addListener(someListener); I listener consentono a parti di codice diverse di cooperare, dal momento che più listener possono ricevere notifiche relative allo stesso evento. Questo listener di eventi è supportato in Flash Lite solo se System.capabilities.hasMouse è true o System.capabilities.hasStylus è true. Disponibilità Flash Lite 2.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 395 Classi ActionScript Esempio Nell'esempio seguente viene utilizzato il puntatore del mouse per disegnare linee utilizzando onMouseMove e l'API di disegno. L'utente disegna una linea spostando il puntatore e interrompe il disegno della linea rilasciando il pulsante del mouse. this.createEmptyMovieClip("canvas_mc", this.getNextHighestDepth()); var mouseListener:Object = new Object(); mouseListener.onMouseDown = function() { this.isDrawing = true; canvas_mc.lineStyle(2, 0xFF0000, 100); canvas_mc.moveTo(_xmouse, _ymouse); }; mouseListener.onMouseMove = function() { if (this.isDrawing) { canvas_mc.lineTo(_xmouse, _ymouse); } updateAfterEvent(); }; mouseListener.onMouseUp = function() { this.isDrawing = false; }; Mouse.addListener(mouseListener); Vedete anche addListener (metodo Mouse.addListener) removeListener (metodo Mouse.removeListener) public static removeListener(listener:Object) : Boolean Rimuove un oggetto precedentemente registrato con addListener(). Nota: questo metodo è supportato in Flash Lite solo se System.capabilities.hasMouse è true o System.capabilities.hasStylus è true. Disponibilità Flash Lite 2.0 Parametri listener:Object Restituisce Boolean - Se l'oggetto listener viene rimosso correttamente, il metodo restituisce true; se invece il listener non viene rimosso correttamente (ad esempio, se non faceva parte dell'elenco dei listener dell'oggetto Mouse), il metodo restituisce false. Esempio Nell'esempio seguente vengono aggiunti tre pulsanti allo stage e viene consentito all'utente di disegnare linee in un file SWF in fase di runtime per mezzo del puntatore del mouse. Un pulsante cancella tutte le linee dal file SWF, il secondo pulsante rimuove il listener del mouse per impedire all'utente di disegnare linee e il terzo pulsante aggiunge il listener del mouse, dopo che è stato rimosso, per consentire all'utente di disegnare nuovamente linee. Aggiungere il codice ActionScript seguente al fotogramma 1 della linea temporale: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 396 Classi ActionScript this.createClassObject(mx.controls.Button, "clear_button", this.getNextHighestDepth(), {_x:10, _y:10, label:'clear'}); this.createClassObject(mx.controls.Button, "stopDrawing_button", this.getNextHighestDepth(), {_x:120, _y:10, label:'stop drawing'}); this.createClassObject(mx.controls.Button, "startDrawing_button", this.getNextHighestDepth(), {_x:230, _y:10, label:'start drawing'}); startDrawing_button.enabled = false; // this.createEmptyMovieClip("canvas_mc", this.getNextHighestDepth()); var mouseListener:Object = new Object(); mouseListener.onMouseDown = function() { this.isDrawing = true; canvas_mc.lineStyle(2, 0xFF0000, 100); canvas_mc.moveTo(_xmouse, _ymouse); }; mouseListener.onMouseMove = function() { if (this.isDrawing) { canvas_mc.lineTo(_xmouse, _ymouse); } updateAfterEvent(); }; mouseListener.onMouseUp = function() { this.isDrawing = false; }; Mouse.addListener(mouseListener); var clearListener:Object = new Object(); clearListener.click = function() { canvas_mc.clear(); }; clear_button.addEventListener("click", clearListener); // var stopDrawingListener:Object = new Object(); stopDrawingListener.click = function(evt:Object) { Mouse.removeListener(mouseListener); evt.target.enabled = false; startDrawing_button.enabled = true; }; stopDrawing_button.addEventListener("click", stopDrawingListener); var startDrawingListener:Object = new Object(); startDrawingListener.click = function(evt:Object) { Mouse.addListener(mouseListener); evt.target.enabled = false; stopDrawing_button.enabled = true; }; startDrawing_button.addEventListener("click", startDrawingListener); MovieClip Object | +-MovieClip public dynamic class MovieClip extends Object GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 397 Ultimo aggiornamento 4/5/2010 Classi ActionScript Potete utilizzare la classe MovieClip per manipolare clip filmato con ActionScript. Per la classe MovieClip non è disponibile alcuna funzione di costruzione. Per creare una nuova istanza di clip filmato, procedere in uno dei modi seguenti: • Trascinate un clip filmato nell'area Stage dello strumento di authoring Flash e assegnategli un nome di istanza nello strumento Proprietà. • Chiamate il metodo attachMovie() per creare una nuova istanza di clip filmato basata su un simbolo di clip filmato esistente nella libreria. • Chiamate createEmptyMovieClip() per creare una nuova istanza di clip filmato vuota come elemento secondario di un altro clip filmato. • Chiamate duplicateMovieClip() per creare un'istanza di clip filmato basata su un altro clip filmato. Disponibilità Flash Lite 2.0 Riepilogo delle proprietà Modificatori Proprietà Descrizione _alpha:Number Il valore di trasparenza alfa del clip filmato. _currentframe:Number [sola lettura] Restituisce il numero del fotogramma sulla linea temporale in cui si trova l'indicatore di riproduzione. _droptarget:String [sola lettura] Restituisce il percorso assoluto, espresso in notazione della sintassi della barra, dell'istanza di clip filmato su cui è stato rilasciato il clip filmato. enabled:Boolean Un valore booleano che indica se un clip filmato è attivo. focusEnabled:Boolean Se il valore è undefined o false, un clip filmato non può essere attivato a meno che non si tratti di un pulsante. _focusrect:Boolean Un valore booleano che specifica se attorno a un clip filmato è presente un rettangolo giallo quando viene attivato. _framesloaded:Number [sola lettura] Il numero di fotogrammi caricati da un file SWF in streaming. _height:Number L'altezza del clip filmato, espressa in pixel. _highquality:Number Sconsigliata a partire da Flash Player 7. Questa proprietà è stata sconsigliata a favore di MovieClip._quality. Specifica il livello di antialiasing applicato al file SWF corrente. hitArea:Object _lockroot:Boolean Definisce un altro clip filmato come area attiva di un clip filmato. Un valore booleano che specifica l'elemento a cui si riferisce _root quando un file SWF viene caricato in un clip filmato. _name:String Il nome dell'istanza del clip filmato. _parent:MovieClip Un riferimento al clip filmato o all'oggetto che contiene il clip filmato o l'oggetto corrente. _quality:String Imposta o recupera la qualità di rendering utilizzata per un file SWF. _rotation:Number Specifica la rotazione del clip filmato, espressa in gradi, rispetto alla posizione originale. GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 398 Ultimo aggiornamento 4/5/2010 Classi ActionScript Modificatori Proprietà Descrizione _soundbuftime:Number Specifica il numero di secondi per cui un suono viene inserito nel prebuffer prima che ne inizi lo streaming. tabChildren:Boolean Determina se gli elementi secondari di un clip filmato vengono inclusi nell'ordine di tabulazione automatico. tabEnabled:Boolean Specifica se il clip filmato è incluso nell'ordine di tabulazione automatico. tabIndex:Number Consente di personalizzare l'ordine di tabulazione degli oggetti in un filmato. _target:String [sola lettura] Restituisce il percorso di destinazione dell'istanza del clip filmato in notazione della barra. _totalframes:Number [sola lettura] Restituisce il numero totale di fotogrammi dell'istanza del clip filmato specificata dal parametro MovieClip. trackAsMenu:Boolean Un valore booleano che indica se altri pulsanti o clip filmato possono ricevere eventi associati al rilascio del mouse o dello stilo. _url:String [sola lettura] Recupera l'URL del file SWF, JPEG, GIF o PNG da cui è stato scaricato il clip filmato. _visible:Boolean Un valore booleano che indica se il clip filmato è visibile. _width:Number La larghezza del clip filmato, espressa in pixel. _x:Number Un numero intero che imposta la coordinata x di un clip filmato rispetto alle coordinate locali del clip filmato principale. _xmouse:Number [sola lettura] Restituisce la coordinata x della posizione del mouse. _xscale:Number Imposta la scala orizzontale (in percentuale) del clip filmato applicata dal punto di registrazione del clip filmato. _y:Number Imposta la coordinata y di un clip filmato rispetto alle coordinate locali del clip filmato principale. _ymouse:Number [sola lettura] Indica la coordinata y della posizione del mouse. _yscale:Number Imposta la scala verticale (in percentuale) del clip filmato applicata dal punto di registrazione del clip filmato. Proprietà ereditate dalla classe Object constructor (proprietà Object.constructor), __proto__ (proprietà Object._proto), prototype (proprietà Object.prototype), __resolve (proprietà Object.__resolve) Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 399 Classi ActionScript Riepilogo degli eventi Evento Descrizione onData = function() Richiamato quando un clip filmato riceve dati da una chiamata a MovieClip.loadVariables() o MovieClip.loadMovie(). {} onDragOut = function() {} Richiamato quando viene premuto il pulsante del mouse e il puntatore esce dall'oggetto. onDragOver = function() {} Richiamato quando il puntatore viene trascinato fuori dall'oggetto e successivamente sopra di esso. onEnterFrame = Richiamato ripetutamente alla frequenza dei fotogrammi del file SWF. function() {} onKeyDown = Richiamato quando un clip filmato è attivo e viene premuto un tasto. function() {} onKeyUp = Richiamato quando viene rilasciato un tasto. function() {} onKillFocus = Richiamato quando un clip filmato viene disattivato. function(newFocus: Object) {} {} Richiamato quando per il clip filmato viene creata un'istanza e il clip filmato viene visualizzato nella linea temporale. onMouseDown = Richiamato quando viene premuto il pulsante del mouse. onLoad = function() function() {} onMouseMove = Richiamato allo spostamento del mouse. function() {} onMouseUp = Richiamato quando viene rilasciato il pulsante del mouse. function() {} onPress = function() {} Richiamato quando si fa clic con il mouse mentre il puntatore si trova sopra un clip filmato. onRelease = function() {} Richiamato quando il pulsante del mouse viene rilasciato sopra un clip filmato. onReleaseOutside = function() {} Richiamato quando il pulsante del mouse è stato premuto all'interno dell'area del clip filmato e successivamente rilasciato al di fuori della stessa. onRollOut = Richiamato quando il puntatore viene spostato al di fuori dell'area del clip filmato. function() {} onRollOver = Richiamato quando il puntatore viene spostato sopra l'area del clip filmato. function() {} onSetFocus = Richiamato quando un clip filmato viene attivato. function(oldFocus: Object) {} onUnload = function() {} Richiamato nel primo fotogramma dopo che il clip filmato è stato rimosso dalla linea temporale. GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 400 Ultimo aggiornamento 4/5/2010 Classi ActionScript Riepilogo dei metodi Modificatori Firma Descrizione attachMovie(id:String, name:String, depth:Number, [initObject:Object]) : MovieClip Associa un simbolo dalla libreria al clip filmato. beginFill(rgb:Number, [alpha:Number]) : Void Indica l'inizio di un nuovo percorso di disegno. beginGradientFill(fillT Indica l'inizio di un nuovo percorso di disegno. ype:String, colors:Array, alphas:Array, ratios:Array, matrix:Object) : Void clear() : Void Rimuove tutti gli elementi grafici creati durante il runtime mediante i metodi draw del clip filmato, compresi gli stili di linea specificati con MovieClip.lineStyle(). createEmptyMovieClip(n ame:String, depth:Number) : MovieClip Crea un clip filmato vuoto come elemento secondario di un clip filmato esistente. createTextField(instanc eName:String, depth:Number, x:Number, y:Number, width:Number, height:Number) : Crea un nuovo campo di testo vuoto come elemento secondario del clip filmato sul quale chiamate questo metodo. TextField curveTo(controlX:Num Disegna una curva con lo stile di linea corrente dalla posizione ber, di disegno corrente a (anchorX, anchorY) mediante il controlY:Number, punto di controllo specificato da (controlX, controlY). anchorX:Number, anchorY:Number) : Void duplicateMovieClip(name :String, depth:Number, [initObject:Object]) : MovieClip Crea un'istanza del clip filmato specificato mentre il file SWF è in riproduzione. endFill() : Void Applica un riempimento alle linee e alle curve aggiunte dall'ultima chiamata a beginFill() o beginGradientFill(). getBounds(bounds:Obje Restituisce le proprietà che corrispondono ai valori minimi e massimi delle coordinate x e y del clip filmato in base al ct) : Object parametro bounds. getBytesLoaded() : Number Restituisce il numero di byte già caricati (in streaming) del clip filmato. getBytesTotal() : Number Restituisce le dimensioni, espresse in byte, del clip filmato. getDepth() : Number Restituisce la profondità dell'istanza di clip filmato. GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 401 Ultimo aggiornamento 4/5/2010 Classi ActionScript Modificatori Firma Descrizione getInstanceAtDepth(dep th:Number) : MovieClip Consente di determinare se una particolare profondità è già occupata da un clip filmato. getNextHighestDepth() : Number Consente di determinare un valore di profondità che potete passare a MovieClip.attachMovie(), MovieClip.duplicateMovieClip() o MovieClip.createEmptyMovieClip() per garantire che il clip filmato sia reso in primo piano rispetto a tutti gli altri oggetti che si trovano allo stesso livello nel clip filmato corrente. getSWFVersion() : Number Restituisce un numero intero che indica la versione di pubblicazione di Flash Lite per il clip filmato. getURL(url:String, [window:String], [method:String]) : Void Carica nella finestra specificata un documento corrispondente all'URL indicato. globalToLocal(pt:Object Converte le coordinate dello stage (globali) in quelle del clip filmato (locali) per l'oggetto pt. ) : Void gotoAndPlay(frame:Obj ect) : Void Avvia la riproduzione del file SWF dal fotogramma specificato. gotoAndStop(frame:Obj Posiziona l'indicatore di riproduzione sul fotogramma ect) : Void specificato del clip filmato. hitTest() : Boolean Valuta il clip filmato per verificare se si sovrappone o interseca l'area attiva identificata dai parametri target o delle coordinate x e y. lineStyle(thickness:Nu Specifica uno stile di linea utilizzato per chiamate successive ai mber, rgb:Number, metodi lineTo() e curveTo() fino a che non chiamate il alpha:Number, metodo lineStyle() con parametri diversi. pixelHinting:Boolean , noScale:String, capsStyle:String, jointStyle:String, miterLimit:Number) : Void lineTo(x:Number, y:Number) : Void Disegna una linea con lo stile di linea corrente dalla posizione di disegno corrente a (x, y); la posizione di disegno corrente viene quindi impostata su (x, y). loadMovie(url:String, [method:String]) : Carica i file SWF o JPEG in un clip filmato in Flash Lite mentre il file SWF originale è in riproduzione. Void loadVariables(url:String Legge i dati da un file esterno e imposta i valori delle variabili , [method:String]) : nel clip filmato. Void localToGlobal(pt:Object ) : Void Converte le coordinate del clip filmato (locali) in quelle dello stage (globali) per l'oggetto pt moveTo(x:Number, y:Number) : Void Sposta la posizione di disegno corrente nel punto (x, y). nextFrame() : Void Invia l'indicatore di riproduzione al fotogramma successivo e lo ferma. GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 402 Ultimo aggiornamento 4/5/2010 Classi ActionScript Modificatori Firma Descrizione play() : Void Sposta l'indicatore di riproduzione nella linea temporale del clip filmato. prevFrame() : Void Invia l'indicatore di riproduzione al fotogramma precedente e lo ferma. removeMovieClip() : Rimuove un'istanza del clip filmato creata con duplicateMovieClip(), MovieClip.duplicateMovieClip(), MovieClip.createEmptyMovieClip() o MovieClip.attachMovie(). Void setMask(mc:Object) : Void startDrag([lockCenter :Boolean], [left:Number], [top:Number], [right:Number], [bottom:Number]) : Il clip filmato del parametro mc viene reso come una maschera che rivela il clip filmato chiamante. Consente all'utente di trascinare il clip filmato specificato. Void stop() : Void Interrompe il clip filmato in riproduzione. stopDrag() : Void Termina una chiamata al metodo MovieClip.startDrag(). swapDepths(target:Ob Scambia l'impilamento, detto anche livello di profondità (zject) : Void order), di questo clip filmato con il clip filmato specificato dal parametro target o con il clip filmato che occupa il livello di profondità specificato nel parametro target. unloadMovie() : Void Rimuove il contenuto di un'istanza di clip filmato. Metodi ereditati dalla classe Object addProperty (metodo Object.addProperty), hasOwnProperty (metodo Object.hasOwnProperty), isPropertyEnumerable (metodo Object.isPropertyEnumerable), isPrototypeOf (metodo Object.isPrototypeOf), registerClass (metodo Object.registerClass), toString (metodo Object.toString), unwatch (metodo Object.unwatch), valueOf (metodo Object.valueOf), watch (metodo Object.watch) _alpha (MovieClip._alpha, proprietà) public _alpha : Number Il valore di trasparenza alfa del clip filmato. I valori validi sono quelli compresi tra 0 (completamente trasparente) e 100 (completamente opaco). Il valore predefinito è 100. Gli oggetti di un clip filmato con _alpha impostato su 0 sono attivi, anche se sono invisibili. Ad esempio, è sempre possibile fare clic su un pulsante di un clip filmato la cui proprietà _alpha è impostata su 0. Per disabilitare completamente il pulsante, è possibile impostare su false la proprietà _visible del clip filmato. Disponibilità Flash Lite 2.0 Esempio Il codice seguente imposta sul 50% la proprietà _alpha di un clip filmato denominato rect_mc quando si preme un pulsante denominato my_btn. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 403 Classi ActionScript my_btn.onPress = function(){ rect_mc._alpha = 50 ; } my_btn.onRelease = function(){ rect_mc._alpha = 100; } Vedete anche _alpha (proprietà Button._alpha), _alpha (proprietà TextField._alpha), _visible (proprietà MovieClip._visible) attachBitmap (metodo MovieClip.attachBitmap) public attachBitmap(bmp:BitmapData, depth:Number, [pixelSnapping:String], [smoothing:Boolean]) : Void Associa un'immagine bitmap a un clip filmato. Dopo l'associazione della bitmap al clip filmato, viene stabilito un riferimento all'oggetto bitmap dal clip filmato. Quando associate una bitmap, potete specificare i parametri pixelSnapping e smoothing per determinarne l'aspetto. Dopo avere aggiunto una bitmap a un clip filmato, non è possibile accedere alla bitmap. I parametri depth., pixelSnapping e smoothing possono essere impostati solo durante la chiamata del metodo attachBitmap() e non possono essere modificati successivamente. Utilizzate innanzitutto createEmptyMovieClip() per creare un clip filmato vuoto, quindi utilizzare il metodo attachBitmap(). In questo modo potete applicare trasformazioni al clip filmato per trasformare la bitmap, ad esempio tramite la proprietà matrix del clip filmato. L'aggancio ai pixel imposta la posizione della bitmap sul valore di pixel intero più vicino, evitando il posizionamento su un pixel parziale. Sono disponibili tre modalità di aggancio ai pixel: • La modalità di aggancio Automatico esegue l'aggancio ai pixel a condizione che la bitmap non sia allungata o ruotata. • La modalità di aggancio Sempre esegue sempre l'aggancio ai pixel, indipendentemente dall'allungamento e dalla rotazione. • La modalità Mai disattiva l'aggancio ai pixel per il clip filmato. La modalità Smussatura incide sull'aspetto dell'immagine quando viene modificata in scala. Parametri bmp:flash.display.BitmapData - Un'immagine bitmap opaca o trasparente. depth:Number - Un numero intero che specifica il livello di profondità nel clip filmato in cui dovrebbe essere inserita l'immagine bitmap. pixelSnapping:String [optional] - Le modalità di pixel snapping modes sono auto, always e never. La modalità predefinita è auto. smoothing:Boolean [opzionale] - La modalità di smussatura è true se è attivata oppure false se è disattivata. La modalità predefinita è disattivata. Disponibilità Flash Lite 3.1 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 404 Classi ActionScript Esempio Il codice seguente crea un oggetto BitmapData e lo associa a un clip filmato: import flash.display.*; this.createEmptyMovieClip("bmp1", 99); var bmpData1:BitmapData = new BitmapData(200, 200, false, 0xaa3344); bmp1.attachBitmap(bmpData1, 2, "auto", true); attachMovie (metodo MovieClip.attachMovie) public attachMovie(id:String, name:String, depth:Number, [initObject:Object]) : MovieClip Associa un simbolo dalla libreria al clip filmato. Utilizzare MovieClip.removeMovieClip() o MovieClip.unloadMovie() per rimuovere un simbolo associato con attachMovie(). Disponibilità Flash Lite 2.0 Parametri id:String - Il nome del concatenamento del simbolo di clip filmato nella libreria da associare a un clip filmato sullo stage. È il nome immesso nel campo Identificatore nella finestra di dialogo Proprietà del concatenamento. name:String - Un nome univoco dell'istanza del clip filmato che viene associato al clip filmato. depth:Number - Un numero intero che specifica il livello di profondità in cui viene inserito il file SWF. initObject:Object [opzionale] - (supportato per Flash Player 6 e versioni successive) Un oggetto contenente proprietà con le quali compilare il nuovo clip filmato associato. Questo parametro consente ai clip filmato creati in modo dinamico di ricevere i parametri del clip. Se initObject non è un oggetto, viene ignorato. Tutte le proprietà di initObject vengono copiate nella nuova istanza. Le proprietà specificate con initObject sono disponibili per la funzione di costruzione. Restituisce MovieClip - Un riferimento alla nuova istanza creata. Esempio Nell'esempio seguente vengono associate due istanze del simbolo con l'identificatore di concatenamento "circle" all'istanza di clip filmato sullo stage: this.attachMovie("circle", "circle1_mc", this.getNextHighestDepth()); this.attachMovie("circle", "circle2_mc", this.getNextHighestDepth(), {_x:50, _y:50}); Vedete anche removeMovieClip (metodo MovieClip.removeMovieClip), unloadMovie (metodo MovieClip.unloadMovie), Funzione removeMovieClip beginFill (metodo MovieClip.beginFill) public beginFill(rgb:Number, [alpha:Number]) : Void Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 405 Classi ActionScript Indica l'inizio di un nuovo percorso di disegno. Se è presente un percorso aperto, ovvero se la posizione di disegno corrente non equivale alla posizione precedente specificata in un metodo MovieClip.moveTo(), ed è associato a un riempimento, il percorso viene chiuso con una linea e successivamente riempito. Si tratta di una situazione simile a quando si chiama MovieClip.endFill(). Disponibilità Flash Lite 2.0 Parametri rgb:Number - Un valore di colore esadecimale (ad esempio, rosso è 0xFF0000, blu è 0x0000FF e così via). Se questo valore non viene specificato o non è definito, non viene creato alcun riempimento. alpha:Number [opzionale] - Un valore intero compreso tra 0 e 100 che specifica il valore alfa del riempimento. Se questo valore non viene specificato, viene utilizzato il valore 100 (uniforme). Se il valore è minore di 0, viene utilizzato 0. Se il valore è maggiore di 100, viene utilizzato 100. Esempio Nell'esempio seguente viene creato un quadrato con un riempimento rosso sullo stage: this.createEmptyMovieClip("square_mc", this.getNextHighestDepth()); square_mc.beginFill(0xFF0000); square_mc.moveTo(10, 10); square_mc.lineTo(100, 10); square_mc.lineTo(100, 100); square_mc.lineTo(10, 100); square_mc.lineTo(10, 10); square_mc.endFill(); Vedete anche moveTo (metodo MovieClip.moveTo), endFill (metodo MovieClip.endFill), beginGradientFill (metodo MovieClip.beginGradientFill) beginGradientFill (metodo MovieClip.beginGradientFill) public beginGradientFill(fillType:String, colors:Array, alphas:Array, ratios:Array, matrix:Object) : Void Indica l'inizio di un nuovo percorso di disegno. Se il primo parametro non è definito o se non viene passato alcun parametro, il percorso non ha alcun riempimento. Se è presente un percorso aperto (ovvero se la posizione di disegno corrente non equivale alla posizione precedente specificata in un metodo MovieClip.moveTo()) associato a un riempimento, il percorso viene chiuso con una linea e successivamente riempito. Si tratta di una situazione simile a quando si chiama MovieClip.endFill(). Questo metodo fallisce in una qualsiasi delle condizioni seguenti: • Il numero di elementi nei parametri colors, alphas e ratios non è uguale. • Il parametro fillType non è "linear" né "radial". • Uno qualsiasi dei campi dell'oggetto per il parametro matrix è assente o non è valido. È possibile estendere i metodi e i gestori di eventi della classe MovieClip creando una sottoclasse. Disponibilità Flash Lite 2.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 406 Classi ActionScript Parametri fillType:String - La stringa "linear" o la stringa "radial". colors:Array - Un array di valori di colore esadecimali RGB da utilizzare nel gradiente (ad esempio, rosso è 0xFF0000, blu è 0x0000FF e così via). alphas:Array - Un array di valori alfa per i colori corrispondenti nell'array colors; i valori validi sono compresi tra 0 e 100. Se il valore è minore di 0, viene utilizzato 0. Se il valore è maggiore di 100, viene utilizzato 100. ratios:Array - Un array di rapporti di distribuzione del colore; i valori validi sono compresi tra 0 e 255. Questo valore definisce la percentuale della larghezza in corrispondenza della quale il campionamento del colore viene eseguito al 100%. matrix:Object - Una matrice di trasformazione corrispondente a un oggetto con una delle due serie di proprietà seguenti: • a, b, c, d, e, f, g, h, i, che possono essere utilizzate per descrivere una matrice 3 x 3 del seguente formato: a b c d e f g h i Nell'esempio seguente viene utilizzato il metodo beginGradientFill() con un parametro matrix di questo tipo: this.createEmptyMovieClip("gradient_mc", this.getNextHighestDepth()); gradient_mc._x = -100; gradient_mc._y = -100; with (gradient_mc) { colors = [0xFF0000, 0x0000FF]; fillType = "radial" alphas = [100, 100]; ratios = [0, 0xFF]; matrix = {a:200, b:0, c:0, d:0, e:200, f:0, g:200, h:200, i:1}; beginGradientFill(fillType, colors, alphas, ratios, matrix); moveTo(100, 100); lineTo(100, 300); lineTo(300, 300); lineTo(300, 100); lineTo(100, 100); endFill(); } Il codice disegna l'immagine seguente sullo schermo: • matrixType, x, y, w, h, r. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 407 Classi ActionScript Le proprietà indicano quanto segue: matrixType è la stringa "box", x è la posizione orizzontale relativa al punto di registrazione del clip principale per l'angolo superiore sinistro del gradiente, y è la posizione verticale relativa al punto di registrazione del clip principale per l'angolo superiore sinistro del gradiente, w è la larghezza del gradiente, h è l'altezza del gradiente e r è la rotazione del gradiente espressa in radianti. Nell'esempio seguente viene utilizzato il metodo beginGradientFill() con un parametro matrix di questo tipo: this.createEmptyMovieClip("gradient_mc", this.getNextHighestDepth()); gradient_mc._x = -100; gradient_mc._y = -100; with (gradient_mc) { colors = [0xFF0000, 0x0000FF]; fillType = "radial" alphas = [100, 100]; ratios = [0, 0xFF]; matrix = {matrixType:"box", x:100, y:100, w:200, h:200, r:(45/180)*Math.PI}; beginGradientFill(fillType, colors, alphas, ratios, matrix); moveTo(100, 100); lineTo(100, 300); lineTo(300, 300); lineTo(300, 100); lineTo(100, 100); endFill(); } Il codice disegna l'immagine seguente sullo schermo: Vedete anche beginFill (metodo MovieClip.beginFill), endFill (metodo MovieClip.endFill), lineStyle (metodo MovieClip.lineStyle), lineTo (metodo MovieClip.lineTo), moveTo (metodo MovieClip.moveTo) clear (metodo MovieClip.clear) public clear() : Void Rimuove tutti gli elementi grafici creati durante il runtime mediante i metodi draw del clip filmato, compresi gli stili di linea specificati con MovieClip.lineStyle(). Le forme e le linee disegnate manualmente durante la fase di creazione (mediante gli strumenti di disegno di Flash) rimangono invariate. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 408 Classi ActionScript Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente viene disegnato un riquadro sullo stage. L'immagine viene rimossa, quando l'utente fa clic sul pulsante denominato removeBox_btn. this.createEmptyMovieClip("box_mc", 1); drawBox(box_mc, 10, 10, 100, 100); function drawBox(mc:MovieClip, x:Number, y:Number, w:Number, h:Number):Void { mc.lineStyle(5); mc.beginFill(0x009999); mc.moveTo(x, y); mc.lineTo(x+w, y); mc.lineTo(x+w, y+h); mc.lineTo(x, y+h); mc.lineTo(x, y); mc.endFill(); } removeBox_btn.onRelease = function(){ box_mc.clear(); } Vedete anche lineStyle (metodo MovieClip.lineStyle) createEmptyMovieClip (metodo MovieClip.createEmptyMovieClip) public createEmptyMovieClip(name:String, depth:Number) : MovieClip Crea un clip filmato vuoto come elemento secondario di un clip filmato esistente. Questo metodo ha un comportamento simile a quello del metodo attachMovie(), ma non richiede che venga fornito un identificatore di concatenamento esterno per il nuovo clip filmato. Il punto di registrazione di un clip filmato vuoto appena creato è l'angolo superiore sinistro. Questo metodo fallisce se manca uno qualsiasi dei parametri. Disponibilità Flash Lite 2.0 Parametri name:String - Una stringa che identifica il nome di istanza del nuovo clip filmato. depth:Number - Un numero intero che specifica la profondità del nuovo clip filmato. Restituisce MovieClip - Un riferimento al clip filmato appena creato. Esempio Nell'esempio seguente vengono creati un clip filmato vuoto di nome container e un nuovo TextField al suo interno. Viene quindi impostata la nuova proprietà TextField.text. var container:MovieClip = this.createEmptyMovieClip("container", this.getNextHighestDepth()); var label:TextField = container.createTextField("label", 1, 0, 0, 150, 20); label.text = "Hello World"; Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 409 Classi ActionScript Vedete anche attachMovie (metodo MovieClip.attachMovie) createTextField (metodo MovieClip.createTextField) public createTextField(instanceName:String, depth:Number, x:Number, y:Number, width:Number, height:Number) : TextField Crea un nuovo campo di testo vuoto come elemento secondario del clip filmato sul quale viene chiamato questo metodo. È possibile utilizzare il metodo createTextField() per creare dei campi di testo mentre viene riprodotto un file SWF. Il parametro depth determina la nuova posizione nello z-order (livello di profondità) del clip filmato per il nuovo campo di testo. Ciascun livello di profondità può contenere un solo oggetto. Se si crea un nuovo campo di testo su una profondità che ha già un campo di testo, il nuovo campo di testo sostituisce quello esistente. Per evitare di sovrascrivere i campi di testo esistenti, utilizzare MovieClip.getInstanceAtDepth() per determinare se una specifica profondità è già occupata, oppure MovieClip.getNextHighestDepth()per determinare la prima profondità non occupata. Il campo di testo viene posizionato nel punto (x, y) con le dimensioni width per height. I parametri x e y sono relativi al contenitore clip filmato e corrispondono alle proprietà _x e _y del campo di testo. I parametri width e height corrispondono alle proprietà _width e _height del campo di testo. Le proprietà predefinite di un campo di testo sono le seguenti: type = "dynamic" border = false background = false password = false multiline = false html = false embedFonts = false selectable = true wordWrap = false mouseWheelEnabled = true condenseWhite = false restrict = null variable = null maxChars = null styleSheet = undefined tabInded = undefined Un campo di testo creato con createTextField() riceve le seguenti impostazioni dell'oggetto TextFormat predefinito: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 410 Classi ActionScript font = "Times New Roman" // "Times" on Mac OS size = 12 color = 0x000000 bold = false italic = false underline = false url = "" target = "" align = "left" leftMargin = 0 rightMargin = 0 indent = 0 leading = 0 blockIndent = 0 bullet = false display = block tabStops = [] // (empty array) È possibile estendere i metodi e i gestori di eventi della classe MovieClip creando una sottoclasse. Disponibilità Flash Lite 2.0 Parametri instanceName:String - Una stringa che identifica il nome di istanza del nuovo campo di testo. depth:Number - Un numero intero positivo che specifica la profondità del nuovo campo di testo. x:Number - Un numero intero che specifica la coordinata x del nuovo campo di testo. y:Number - Un numero intero che specifica la coordinata y del nuovo campo di testo. width:Number - Un numero intero positivo che specifica la larghezza del nuovo campo di testo. height:Number - Un numero intero positivo che specifica l'altezza del nuovo campo di testo. Restituisce TextField Esempio Nell'esempio seguente viene creato un campo di testo con una larghezza 300, un'altezza 100, una coordinata x pari a 100, una coordinata y pari a 100, nessun bordo e testo rosso sottolineato: this.createTextField("my_txt", 1, 100, 100, 300, 100); my_txt.multiline = true; my_txt.wordWrap = true; var my_fmt:TextFormat = new TextFormat(); my_fmt.color = 0xFF0000; my_fmt.underline = true; my_txt.text = "This is my first test field object text."; my_txt.setTextFormat(my_fmt); Un esempio si trova anche nel file animations.fla all'interno della cartella di esempi di ActionScript all'indirizzo www.adobe.com/go/learn_fl_samples_it. Scaricare e decomprimere il file .zip, quindi accedere alla cartella che contiene i file di esempio per la propria versione di ActionScript. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 411 Classi ActionScript Vedete anche getInstanceAtDepth (metodo MovieClip.getInstanceAtDepth), getNextHighestDepth (metodo MovieClip.getNextHighestDepth), getNewTextFormat (metodo TextField.getNewTextFormat) _currentframe (proprietà MovieClip._currentframe) public _currentframe : Number [read-only] Restituisce il numero del fotogramma sulla linea temporale in cui si trova l'indicatore di riproduzione. Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente viene utilizzata la proprietà _currentframe per impostare l'avanzamento dell'indicatore di riproduzione del clip filmato, actionClip_mc, in avanti di cinque fotogrammi rispetto alla posizione corrente: actionClip_mc.gotoAndStop(actionClip_mc._currentframe + 5); curveTo (metodo MovieClip.curveTo) public curveTo(controlX:Number, controlY:Number, anchorX:Number, anchorY:Number) : Void Disegna una curva con lo stile di linea corrente dalla posizione di disegno corrente a (anchorX, anchorY) mediante il punto di controllo specificato da (controlX, controlY). La posizione di disegno corrente viene quindi impostata su (anchorX, anchorY). Se il clip filmato in cui si sta disegnando include del contenuto creato con gli strumenti di disegno di Flash, le chiamate a curveTo() vengono disegnate sotto tale contenuto. Se si chiama il metodo curveTo() prima delle chiamate al metodo moveTo(), la posizione di disegno corrente è impostata sul valore predefinito (0,0). Se mancano uno o più parametri, il metodo ha esito negativo e la posizione di disegno corrente non cambia. È possibile estendere i metodi e i gestori di eventi della classe MovieClip creando una sottoclasse. Disponibilità Flash Lite 2.0 Parametri controlX:Number - Un numero intero che specifica la posizione orizzontale del punto di controllo in relazione al punto di registrazione del clip filmato principale. controlY:Number - Un numero intero che specifica la posizione verticale del punto di controllo in relazione al punto di registrazione del clip filmato principale. anchorX:Number - Un numero intero che specifica la posizione orizzontale del successivo punto di ancoraggio in relazione al punto di registrazione del clip filmato principale. anchorY:Number - Un numero intero che specifica la posizione verticale del successivo punto di ancoraggio in relazione al punto di registrazione del clip filmato principale. Esempio Nell'esempio seguente viene disegnata una curva quasi circolare, con un tratto sottilissimo blu uniforme e un riempimento rosso uniforme: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 412 Classi ActionScript this.createEmptyMovieClip("circle_mc", 1); with (circle_mc) { lineStyle(0, 0x0000FF, 100); beginFill(0xFF0000); moveTo(0, 100); curveTo(0,200,100,200); curveTo(200,200,200,100); curveTo(200,0,100,0); curveTo(0,0,0,100); endFill(); } La curva disegnata in questo esempio è una curva Bézier quadratica. Le curve Bézier quadratiche sono composte da due punti di ancoraggio e da un punto di controllo. La curva interpola i due punti di ancoraggio e si incurva verso il punto di controllo. Lo script seguente utilizza il metodo curveTo() e la classe Math per creare un cerchio: this.createEmptyMovieClip("circle2_mc", 2); circle2_mc.lineStyle(0, 0x000000); drawCircle(circle2_mc, 100, 100, 100); function drawCircle(mc:MovieClip, x:Number, y:Number, r:Number):Void { mc.moveTo(x+r, y); mc.curveTo(r+x, Math.tan(Math.PI/8)*r+y, Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y); mc.curveTo(Math.tan(Math.PI/8)*r+x, r+y, x, '+y); mc.curveTo(-Math.tan(Math.PI/8)*r+x, r+y, -Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y); mc.curveTo(-r+x, Math.tan(Math.PI/8)*r+y, -r+x, y); mc.curveTo(-r+x, -Math.tan(Math.PI/8)*r+y, -Math.sin(Math.PI/4)*r+x, -Math.sin(Math.PI/4)*r+y); mc.curveTo(-Math.tan(Math.PI/8)*r+x, -r+y, x, -r+y); mc.curveTo(Math.tan(Math.PI/8)*r+x, -r+y, Math.sin(Math.PI/4)*r+x, -Math.sin(Math.PI/4)*r+y); mc.curveTo(r+x, -Math.tan(Math.PI/8)*r+y, r+x, y); } Un esempio si trova anche nel file drawingapi.fla all'interno della cartella di esempi di ActionScript all'indirizzo www.adobe.com/go/learn_fl_samples_it. Scaricare e decomprimere il file .zip, quindi accedere alla cartella che contiene i file di esempio per la propria versione di ActionScript. Vedete anche beginFill (metodo MovieClip.beginFill), createEmptyMovieClip (metodo MovieClip.createEmptyMovieClip), endFill (metodo MovieClip.endFill), lineStyle (metodo MovieClip.lineStyle), lineTo (metodo MovieClip.lineTo), moveTo (metodo MovieClip.moveTo), Math Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 413 Classi ActionScript _droptarget (MovieClip._droptarget, proprietà) public _droptarget : String [read-only] Restituisce il percorso assoluto, espresso in notazione della sintassi della barra, dell'istanza di clip filmato su cui è stato rilasciato il clip filmato. La proprietà _droptarget restituisce sempre un percorso che inizia con una barra (/). Per confrontare la proprietà _droptarget di un'istanza con un riferimento, utilizzare la funzione eval() per convertire il valore restituito dalla sintassi della barra alla sintassi del punto (ActionScript 2.0 non supporta la sintassi della barra). Nota: questa proprietà è supportata in Flash Lite solo se System.capabilities.hasMouse è true o System.capabilities.hasStylus è true. Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente viene valutata la proprietà _droptarget dell'istanza del clip filmato garbage_mc e viene utilizzata la funzione eval() per eseguire la conversione dalla sintassi della barra alla sintassi del punto. Il riferimento garbage_mc viene quindi confrontato con il riferimento all'istanza del clip filmato trashcan_mc. Se i due riferimenti sono equivalenti, la visibilità di garbage_mc viene impostata su false. Se non sono equivalenti, viene reimpostata la posizione originale dell'istanza di garbage. origX = garbage_mc._x; origY = garbage_mc._y; garbage_mc.onPress = function() { this.startDrag(); }; garbage_mc.onRelease = function() { this.stopDrag(); if (eval(this._droptarget) == trashcan_mc) { this._visible = false; } else { this._x = origX; this._y = origY; } }; Vedete anche startDrag (metodo MovieClip.startDrag), stopDrag (metodo MovieClip.stopDrag), Funzione eval duplicateMovieClip (metodo MovieClip.duplicateMovieClip) public duplicateMovieClip(name:String, depth:Number, [initObject:Object]) : MovieClip Crea un'istanza del clip filmato specificato mentre il file SWF è in riproduzione. La riproduzione dei clip filmato duplicati inizia sempre dal fotogramma 1, a prescindere dal fotogramma su cui si trova il clip filmato originale quando viene chiamato il metodo duplicateMovieClip(). Le variabili del clip filmato principale non vengono copiate nel clip filmato duplicato. I clip filmato creati con il metodo duplicateMovieClip() non vengono duplicati se si chiama il metodo duplicateMovieClip() sul relativo elemento principale. Se si elimina il clip filmato principale, vengono eliminati anche i clip filmato duplicati. Se per caricare un clip filmato è stato utilizzato MovieClip.loadMovie() o la classe MovieClipLoader, il contenuto del file SWF non viene duplicato. Pertanto non è possibile risparmiare larghezza di banda caricando un file JPEG, GIF, PNG o SWF e successivamente duplicando il clip filmato. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 414 Classi ActionScript Confrontare questo metodo con la versione della funzione globale di duplicateMovieClip(). La versione globale di questo metodo richiede un parametro che specifica il clip filmato di destinazione da duplicare. Tale parametro non è necessario per la versione della classe MovieClip, poiché la destinazione del metodo è l'istanza del clip filmato sulla quale viene richiamato il metodo. La versione globale di duplicateMovieClip() non supporta inoltre il parametro initobject né il valore restituito di un riferimento all'istanza di MovieClip appena creata. Disponibilità Flash Lite 2.0 Parametri name:String - Un identificatore univoco del clip filmato duplicato. depth:Number - Un numero intero univoco che specifica la profondità alla quale viene inserito il nuovo clip filmato. Per inserire l'istanza del nuovo clip filmato sotto tutto il contenuto creato nell'ambiente di creazione, utilizzare la profondità -16384. I valori tra -16383 e -1, inclusi, sono riservati all'uso dell'ambiente di creazione e non devono essere utilizzati con questo metodo. I rimanenti valori di profondità validi sono compresi nell'intervallo tra 0 e 1048575, compresi. initObject:Object [opzionale] - (Supportato per Flash Player 6 e versioni successive). Un oggetto contenente proprietà con le quali compilare il clip filmato duplicato. Questo parametro consente ai clip filmato creati in modo dinamico di ricevere i parametri del clip. Se initObject non è un oggetto, viene ignorato. Tutte le proprietà di initObject vengono copiate nella nuova istanza. Le proprietà specificate con initObject sono disponibili per la funzione di costruzione. Restituisce MovieClip - Un riferimento al clip filmato duplicato (supportato per Flash Player 6 e versioni successive). Esempio L'esempio seguente duplica un MovieClip appena creato un certo numero di volte e traccia la destinazione per ciascun duplicato. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 415 Classi ActionScript var container:MovieClip = setUpContainer(); var ln:Number = 10; var spacer:Number = 1; var duplicate:MovieClip; for(var i:Number = 1; i < ln; i++) { var newY:Number = i * (container._height + spacer); duplicate = container.duplicateMovieClip("clip-" + i, i, {_y:newY}); trace(duplicate); // _level0.clip-[number] } function setUpContainer():MovieClip { var mc:MovieClip = this.createEmptyMovieClip("container", this.getNextHighestDepth()); var w:Number = 100; var h:Number = 20; mc.beginFill(0x333333); mc.lineTo(w, 0); mc.lineTo(w, h); mc.lineTo(0, h); mc.lineTo(0, 0); mc.endFill(); return mc; } Vedete anche loadMovie (metodo MovieClip.loadMovie), removeMovieClip (metodo MovieClip.removeMovieClip), Funzione duplicateMovieClip enabled (proprietà MovieClip.enabled) public enabled : Boolean Un valore booleano che indica se un clip filmato è attivo. Il valore predefinito di enabled è true. Se enabled è impostato su false, i metodi di callback del clip filmato e i gestori di eventi onaction non vengono più richiamati, e i fotogrammi Over, Down e Up vengono disabilitati. La proprietà enabled non incide sulla linea temporale del clip filmato; se un clip filmato è in corso di riproduzione, la riproduzione non viene interrotta. Il clip filmato continua a ricevere gli eventi del clip filmato (ad esempio, mouseDown, mouseUp, keyDown e keyUp). La proprietà enabled regola solo le proprietà di un clip filmato simili a pulsanti. È possibile modificare la proprietà enabled in qualsiasi momento; il clip filmato modificato viene immediatamente abilitato o disabilitato. La proprietà enabled può essere estratta da un oggetto prototipo. Se enabled è impostata su false, l'oggetto non viene incluso nell'ordine di tabulazione automatico. Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente viene disattivato il clip filmato circle_mc quando l'utente lo seleziona: circle_mc.onRelease = function() { trace("disabling the "+this._name+" movie clip."); this.enabled = false; }; Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 416 Classi ActionScript endFill (metodo MovieClip.endFill) public endFill() : Void Applica un riempimento alle linee e alle curve aggiunte dall'ultima chiamata a beginFill() o beginGradientFill(). Flash utilizza il riempimento che è stato specificato nella precedente chiamata a beginFill() o beginGradientFill(). Se la posizione di disegno corrente non equivale alla posizione precedente specificata in un metodo moveTo() e viene definito un riempimento, il percorso viene chiuso con una linea e successivamente riempito. Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente viene creato un quadrato con un riempimento rosso sullo stage: this.createEmptyMovieClip("square_mc", this.getNextHighestDepth()); square_mc.beginFill(0xFF0000); square_mc.moveTo(10, 10); square_mc.lineTo(100, 10); square_mc.lineTo(100, 100); square_mc.lineTo(10, 100); square_mc.lineTo(10, 10); square_mc.endFill(); Un esempio si trova anche nel file drawingapi.fla all'interno della cartella di esempi di ActionScript all'indirizzo www.adobe.com/go/learn_fl_samples_it. Scaricare e decomprimere il file .zip, quindi accedere alla cartella che contiene i file di esempio per la propria versione di ActionScript. Vedete anche beginFill (metodo MovieClip.beginFill), beginGradientFill (metodo MovieClip.beginGradientFill), moveTo (metodo MovieClip.moveTo) focusEnabled (proprietà MovieClip.focusEnabled) public focusEnabled : Boolean Se il valore è undefined o false, un clip filmato non può essere attivato a meno che non si tratti di un pulsante. Se il valore della proprietà focusEnabled è true, un clip filmato può essere attivato anche se non si tratta di un pulsante. Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente, la proprietà focusEnabled per il clip filmato denominato my_mc viene impostata su false: my_mc.focusEnabled = false; _focusrect (proprietà MovieClip._focusrect) public _focusrect : Boolean Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 417 Classi ActionScript Un valore booleano che specifica se attorno a un clip filmato è presente un rettangolo giallo quando viene attivato. Questa proprietà può sostituire la proprietà _focusrect globale. L'impostazione predefinita della proprietà _focusrect di un'istanza di clip filmato è null; in altre parole, l'istanza di clip filmato non sostituisce la proprietà _focusrect globale. Se la proprietà _focusrect di un'istanza di clip filmato è true o false, sostituisce l'impostazione della proprietà _focusrect globale della singola istanza di pulsante. Nota: in Flash Lite 2,0, quando la proprietà _focusrect è disabilitata (ossia quando MovieClip._focusrect è impostata su false), il clip filmato continua a ricevere tutti gli eventi del mouse e della pressione tasti. Inoltre, in Flash Lite 2.0, è possibile modificare il colore del rettangolo di attivazione mediante il comando SetFocusRectColor. Al contrario, nel player Flash Lite, il rettangolo di attivazione può essere solo di colore giallo. Disponibilità Flash Lite 2.0 Esempio In questo esempio viene dimostrato come nascondere il rettangolo giallo attorno a un'istanza di clip filmato specificata in un file SWF, quando l'istanza è attiva in una finestra del browser. Creare tre pulsanti di nome mc1_mc, mc2_mc e mc3_mc, quindi aggiungere il codice ActionScript seguente al fotogramma 1 della linea temporale: mc1_mc._focusrect = true; mc2_mc._focusrect = false; mc3_mc._focusrect = true; mc1_mc.onRelease = traceOnRelease; mc3_mc.onRelease = traceOnRelease; function traceOnRelease() { trace(this._name); } Provare il file SWF in una finestra del browser selezionando File > Anteprima pubblicazione > HTML. Per attivare SWF, fare clic nella finestra del browser e quindi premere Tab per rendere attiva ogni istanza. Non è possibile eseguire codice per questo clip filmato nel browser premendo Invio o la barra spaziatrice quando la proprietà _focusrect è disattivata. Inoltre, è possibile provare il file SWF nell'ambiente di prova. Selezionare Controllo > Disattiva tasti di scelta rapida nell'ambiente di prova. In questo modo è possibile visualizzare il rettangolo di attivazione attorno alle istanze del file SWF. Vedete anche Proprietà _focusrect, _focusrect (proprietà Button._focusrect) _framesloaded (proprietà MovieClip._framesloaded) public _framesloaded : Number [read-only] Il numero di fotogrammi caricati da un file SWF in streaming. Questa proprietà è utile per determinare se il contenuto di un fotogramma specifico e tutti i fotogrammi che lo precedono sono stati caricati e sono disponibili a livello locale nel browser. È utile anche per monitorare lo scaricamento dei file SWF di grandi dimensioni. Ad esempio, è possibile visualizzare un messaggio che indica all'utente che il caricamento del file SWF continua finché non è terminato il caricamento di uno specifico fotogramma nel file SWF. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 418 Classi ActionScript Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente viene utilizzata la proprietà _framesloaded per avviare un file SWF dopo che sono stati caricati tutti i fotogrammi. Se non vengono caricati tutti i fotogrammi, la proprietà _xscale dell'istanza del clip filmato bar_mc viene aumentata proporzionalmente per creare una barra di avanzamento. Immettere il codice seguente nel fotogramma 1 della linea temporale: var pctLoaded:Number = Math.round(this.getBytesLoaded()/this.getBytesTotal()*100); bar_mc._xscale = pctLoaded; Aggiungere al fotogramma 2 il codice seguente: if (this._framesloaded < this._totalframes) { this.gotoAndPlay(1); } else { this.gotoAndStop(3); } Inserire il contenuto nel fotogramma 3 o dopo di esso, quindi aggiungere il codice seguente allo stesso fotogramma: stop(); Vedete anche MovieClipLoader getBounds (metodo MovieClip.getBounds) public getBounds(bounds:Object) : Object Restituisce le proprietà che corrispondono ai valori minimi e massimi delle coordinate x e y del clip filmato in base al parametro bounds. Nota: utilizzare MovieClip.lcalToGlobal() e MovieClip.globalToLocal() rispettivamente per convertire le coordinate locali del clip filmato nelle coordinate dello stage e viceversa. È possibile estendere i metodi e i gestori di eventi della classe MovieClip creando una sottoclasse. Disponibilità Flash Lite 2.0 Parametri bounds:Object·-·Il percorso target della linea temporale di cui desiderate utilizzare il sistema di coordinate come punto di riferimento. Restituisce Object - Un oggetto con le proprietà xMin, xMax, yMin e yMax. Esempio Nell'esempio seguente viene creato un clip filmato denominato square_mc. Il codice disegna un quadrato per il clip filmato e utilizza MovieClip.getBounds() per visualizzare i valori delle coordinate dell'istanza nel pannello Output. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 419 Classi ActionScript this.createEmptyMovieClip("square_mc", 1); square_mc._x = 10; square_mc._y = 10; square_mc.beginFill(0xFF0000); square_mc.moveTo(0, 0); square_mc.lineTo(100, 0); square_mc.lineTo(100, 100); square_mc.lineTo(0, 100); square_mc.lineTo(0, 0); square_mc.endFill(); var bounds_obj:Object = square_mc.getBounds(this); for (var i in bounds_obj) { trace(i+" --> "+bounds_obj[i]); } Le informazioni seguenti vengono visualizzate nel pannello Output: yMax yMin xMax xMin --> --> --> --> 110 10 110 10 Vedete anche globalToLocal (metodo MovieClip.globalToLocal), localToGlobal (metodo MovieClip.localToGlobal) getBytesLoaded (metodo MovieClip.getBytesLoaded) public getBytesLoaded() : Number Restituisce il numero di byte già caricati (in streaming) del clip filmato. È possibile confrontare questo valore con quello restituito da MovieClip.getBytesTotal() per determinare la percentuale di caricamento di un clip filmato. È possibile estendere i metodi e i gestori di eventi della classe MovieClip creando una sottoclasse. Disponibilità Flash Lite 2.0 Restituisce Number - Un numero intero che indica il numero di byte caricati. Esempio Nell'esempio seguente viene utilizzata la proprietà _framesloaded per avviare un file SWF dopo che sono stati caricati tutti i fotogrammi. Se non vengono caricati tutti i fotogrammi, la proprietà _xscale dell'istanza del clip filmato del loader viene aumentata proporzionalmente per creare una barra di avanzamento. Immettere il codice seguente nel fotogramma 1 della linea temporale: var pctLoaded:Number = Math.round(this.getBytesLoaded()/this.getBytesTotal() * 100); bar_mc._xscale = pctLoaded; Aggiungere al fotogramma 2 il codice seguente: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 420 Classi ActionScript if (this._framesloaded<this._totalframes) { this.gotoAndPlay(1); } else { this.gotoAndStop(3); } Inserire il contenuto nel fotogramma 3 o dopo di esso, quindi aggiungere il codice seguente allo stesso fotogramma: stop(); Vedete anche getBytesTotal (metodo MovieClip.getBytesTotal) getBytesTotal (metodo MovieClip.getBytesTotal) public getBytesTotal() : Number Restituisce le dimensioni, espresse in byte, del clip filmato. Per i clip filmato esterni (il file SWF principale o un clip filmato che viene caricato in un target o in un livello), il valore restituito indica le dimensioni del file SWF non compresso. È possibile estendere i metodi e i gestori di eventi della classe MovieClip creando una sottoclasse. Disponibilità Flash Lite 2.0 Restituisce Number - Un numero intero che indica la dimensione totale, in byte, del clip filmato. Esempio Nell'esempio seguente viene utilizzata la proprietà _framesloaded per avviare un file SWF dopo che sono stati caricati tutti i fotogrammi. Se non vengono caricati tutti i fotogrammi, la proprietà _xscale del loader dell'istanza del clip filmato viene aumentata proporzionalmente per creare una barra di avanzamento. Immettere il codice seguente nel fotogramma 1 della linea temporale: var pctLoaded:Number = Math.round(this.getBytesLoaded()/this.getBytesTotal()*100); bar_mc._xscale = pctLoaded; Aggiungere al fotogramma 2 il codice seguente: if (this._framesloaded<this._totalframes) { this.gotoAndPlay(1); } else { this.gotoAndStop(3); } Inserire il contenuto nel fotogramma 3 o dopo di esso, quindi aggiungere il codice seguente allo stesso fotogramma: stop(); Vedete anche getBytesLoaded (metodo MovieClip.getBytesLoaded) Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 421 Classi ActionScript getDepth (metodo MovieClip.getDepth) public getDepth() : Number Restituisce la profondità dell'istanza di clip filmato. A ogni clip filmato, pulsante e campo di testo è associata una profondità univoca che determina il modo in cui l'oggetto viene visualizzato davanti o dietro ad altri oggetti. Gli oggetti con profondità superiori compaiono in primo piano. È possibile estendere i metodi e i gestori di eventi della classe MovieClip creando una sottoclasse. Disponibilità Flash Lite 2.0 Restituisce Number - La profondità dell'istanza di clip filmato. Esempio Il codice seguente traccia la profondità di tutte le istanze di clip filmato sullo stage: for (var i in this) { if (typeof (this[i]) == "movieclip") { trace("movie clip '"+this[i]._name+"' is at depth "+this[i].getDepth()); } } Vedete anche getInstanceAtDepth (metodo MovieClip.getInstanceAtDepth), getNextHighestDepth (metodo MovieClip.getNextHighestDepth), swapDepths (metodo MovieClip.swapDepths), getDepth (metodo TextField.getDepth), getDepth (metodo Button.getDepth) getInstanceAtDepth (metodo MovieClip.getInstanceAtDepth) public getInstanceAtDepth(depth:Number) : MovieClip Consente di determinare se una particolare profondità è già occupata da un clip filmato. È possibile utilizzare questo metodo prima di MovieClip.attachMovie(), MovieClip.duplicateMovieClip() o MovieClip.createEmptyMovieClip() per determinare se il parametro depth che si desidera passare a questi metodi contiene già un clip filmato. È possibile estendere i metodi e i gestori di eventi della classe MovieClip creando una sottoclasse. Disponibilità Flash Lite 2.0 Parametri depth:Number - Un numero intero che specifica la profondità del livello da interrogare. Restituisce MovieClip - Un riferimento all'istanza MovieClip posizionata alla profondità specificata oppure il valore undefined se alla profondità specificata non è presente alcun clip filmato. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 422 Classi ActionScript Esempio Nell'esempio seguente viene visualizzata la profondità occupata dall'istanza del clip filmato triangle nel pannello Output: this.createEmptyMovieClip("triangle", 1); triangle.beginFill(0x0000FF, 100); triangle.moveTo(100, 100); triangle.lineTo(100, 150); triangle.lineTo(150, 100); triangle.lineTo(100, 100); trace(this.getInstanceAtDepth(1)); // output: _level0.triangle Vedete anche attachMovie (metodo MovieClip.attachMovie), duplicateMovieClip (metodo MovieClip.duplicateMovieClip), createEmptyMovieClip (metodo MovieClip.createEmptyMovieClip), getDepth (metodo MovieClip.getDepth), getNextHighestDepth (metodo MovieClip.getNextHighestDepth), swapDepths (metodo MovieClip.swapDepths) getNextHighestDepth (metodo MovieClip.getNextHighestDepth) public getNextHighestDepth() : Number Consente di determinare un valore di profondità da passare a MovieClip.attachMovie(), MovieClip.duplicateMovieClip() o MovieClip.createEmptyMovieClip() per garantire che il clip filmato sia reso in primo piano rispetto a tutti gli altri oggetti che si trovano allo stesso livello nel clip filmato corrente. Il valore restituito è 0 o positivo (in altre parole, non vengono restituiti valori negativi). È possibile estendere i metodi e i gestori di eventi della classe MovieClip creando una sottoclasse. Disponibilità Flash Lite 2.0 Restituisce Number - Un numero intero che rispecchia il primo indice di profondità disponibile di cui viene eseguito il rendering al di sopra tutti gli altri oggetti dello stesso grado di profondità e livello all'interno del clip filmato. Esempio Nell'esempio seguente vengono tracciate tre istanze del clip formato utilizzando il metodo getNextHighestDepth() come parametro depth del metodo createEmptyMovieClip(), e ciascun clip filmato viene etichettato con la relativa profondità: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 423 Classi ActionScript for (i = 0; i < 3; i++) { drawClip(i); } function drawClip(n:Number):Void { this.createEmptyMovieClip("triangle" + n, this.getNextHighestDepth()); var mc:MovieClip = eval("triangle" + n); mc.beginFill(0x00aaFF, 100); mc.lineStyle(4, 0xFF0000, 100); mc.moveTo(0, 0); mc.lineTo(100, 100); mc.lineTo(0, 100); mc.lineTo(0, 0); mc._x = n * 30; mc._y = n * 50 mc.createTextField("label", this.getNextHighestDepth(), 20, 50, 200, 200) mc.label.text = mc.getDepth(); } Vedete anche getDepth (metodo MovieClip.getDepth), getInstanceAtDepth (metodo MovieClip.getInstanceAtDepth), swapDepths (metodo MovieClip.swapDepths), attachMovie (metodo MovieClip.attachMovie), duplicateMovieClip (metodo MovieClip.duplicateMovieClip), createEmptyMovieClip (metodo MovieClip.createEmptyMovieClip) getSWFVersion (metodo MovieClip.getSWFVersion) public getSWFVersion() : Number Restituisce un numero intero che indica la versione del player Flash Lite per cui è stato pubblicato il clip filmato. Se il clip filmato è un file JPEG, GIF o PNG o se si verifica un errore che impedisce di determinare la versione SWF del clip filmato, viene restituito il valore -1. È possibile estendere i metodi e i gestori di eventi della classe MovieClip creando una sottoclasse. Disponibilità Flash Lite 2.0 Restituisce Number - Un numero intero che specifica la versione del player Flash Lite per cui è stato ottimizzato il file SWF caricato alla pubblicazione del clip filmato. Esempio L'esempio seguente crea un nuovo contenitore e fornisce come output il valore getSWFVersion(). Viene quindi utilizzato MovieClipLoader per caricare un file SWF esterno pubblicato in Flash Player 7 e viene fornito come output il valore getSWFVersion() dopo l'attivazione del gestore onLoadInit. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 424 Classi ActionScript var container:MovieClip = this.createEmptyMovieClip("container", this.getUpperEmptyDepth()); var listener:Object = new Object(); listener.onLoadInit = function(target:MovieClip):Void { trace("target: " + target.getSWFVersion()); // target: 7 } var mcLoader:MovieClipLoader = new MovieClipLoader(); mcLoader.addListener(listener); trace("container: " + container.getSWFVersion()); // container: 8 mcLoader.loadClip("FlashPlayer7.swf", container); getURL (metodo MovieClip.getURL) public getURL(url:String, [window:String], [method:String]) : Void Carica nella finestra specificata un documento corrispondente all'URL indicato. Il metodo getURL() può essere utilizzato anche per passare le variabili ad altre applicazioni definite nell'URL mediante un metodo GET o POST. È necessario impostare esplicitamente l'attributo allowScriptAccess per consentire o negare la creazione di script per il player Flash Lite dal codice HTML (nel tag PARAM per Internet Explorer o nel tag EMBED per Netscape Navigator): • Se allowScriptAccess è impostato su "never", la creazione di script in uscita non viene mai eseguita. • Se allowScriptAccess è impostato su "always", la creazione di script in uscita ha sempre esito positivo. • Se allowScriptAccess è impostato su "sameDomain" (supportato dai file SWF a partire dalla versione 8), la creazione di script in uscita è consentita se il file SWF si trova nello stesso dominio della pagina Web host. • Se allowScriptAccess non è specificato da una pagina HTML, i valori predefiniti sono "sameDomain" per i file SWF versione 8 e "always" per i file SWF delle versioni precedenti. È possibile estendere i metodi e i gestori di eventi della classe MovieClip creando una sottoclasse. Disponibilità Flash Lite 2.0 Parametri url:String - L'URL da cui ottenere il documento. window:String [opzionale] - Un parametro che specifica il nome, il fotogramma o l'espressione che indica la finestra o il frame HTML in cui viene caricato il documento. È inoltre possibile utilizzare uno dei seguenti nomi riservati di destinazioni: _self specifica il fotogramma corrente nella finestra corrente, _blank indica una nuova finestra, _parent specifica l'elemento principale del fotogramma corrente, mentre _top indica il fotogramma di primo livello nella finestra corrente. method:String [optional] - Una stringa ("GET" o "POST") che specifica un metodo per l'invio di variabili associate al file SWF da caricare. Se non sono presenti variabili, omettere questo parametro, altrimenti specificare se caricare le variali mediante un metodo GET o POST. Il metodo GET aggiunge le variabili alla fine dell'URL e viene utilizzato quando il numero di variabili è ridotto; il metodo POST invia le variabili in un'intestazione HTTP separata e viene utilizzato per l'invio di stringhe di variabili lunghe. Esempio Il codice ActionScript seguente crea una nuova istanza di clip filmato e apre il sito Web Adobe in una nuova finestra del browser: this.createEmptyMovieClip("loader_mc", this.getNextHighestDepth()); loader_mc.getURL("http://www.adobe.com", "_blank"); Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 425 Classi ActionScript Il metodo getURL() consente inoltre di inviare variabili a uno script sul lato server remoto, come illustrato nel codice seguente: this.createEmptyMovieClip("loader_mc", this.getNextHighestDepth()); loader_mc.username = "some user input"; loader_mc.password = "random string"; loader_mc.getURL("http://www.flash-mx.com/mm/viewscope.cfm", "_blank", "GET"); Vedete anche Funzione getURL, sendAndLoad (metodo LoadVars.sendAndLoad), send (metodo LoadVars.send) globalToLocal (metodo MovieClip.globalToLocal) public globalToLocal(pt:Object) : Void Converte le coordinate dello stage (globali) in quelle del clip filmato (locali) per l'oggetto pt. Il metodo MovieClip.globalToLocal() consente di convertire qualsiasi coppia data di coordinate x e y da valori relativi all'angolo superiore sinistro dello stage in valori relativi all'angolo superiore sinistro di un clip filmato specifico. È necessario innanzitutto creare un oggetto generico con due proprietà, x e y. Questi valori x e y (che devono essere chiamati x e y) vengono definiti coordinate globali poiché si riferiscono all'angolo superiore sinistro dello stage. La proprietà x rappresenta l'offset orizzontale dall'angolo superiore sinistro. In altre parole, rappresenta la distanza verso destra in cui si trova il punto. Ad esempio, se x = 50, il punto si trova 50 pixel a destra dell'angolo superiore sinistro. La proprietà y rappresenta l'offset verticale dall'angolo superiore sinistro. In altre parole, rappresenta la distanza verso il basso in cui si trova il punto. Ad esempio, se y = 20, il punto si trova 20 pixel sotto l'angolo superiore sinistro. Il codice seguente crea un oggetto generico con queste coordinate: var myPoint:Object = new Object(); myPoint.x = 50; myPoint.y = 20; In alternativa, è possibile creare l'oggetto e assegnare i valori contemporaneamente con un valore letterale Object: var myPoint:Object = {x:50, y:20}; Dopo aver creato un oggetto point con coordinate globali, è possibile convertirle in coordinate locali. Il metodo globalToLocal() non restituisce un valore poiché modifica i valori di x e y nell'oggetto generico inviato come parametro, convertendoli da valori relativi allo stage (coordinate globali) in valori relativi a un clip filmato specifico (coordinate locali). Ad esempio, se si crea un clip filmato collocato nel punto (_x:100, _y:100) e si passa un punto locale che rappresenta un punto accanto all'angolo superiore sinistro del clip filmato (x:0, y:0) al metodo globalToLocal(), questo dovrebbe convertire i valori x e y in coordinate globali, in questo caso (x:-100, y:-100). Questa conversione si verifica poiché le coordinate x e y sono espresse in relazione all'angolo superiore sinistro del clip filmato anziché a quello dello stage. I valori sono negativi poiché nella conversione dall'angolo superiore sinistro del clip filmato a quello dello stage, è necessario spostarsi di 100 pixel a sinistra (x negativo) e di 100 pixel in alto (y negativo). Le coordinate del clip filmato sono state espresse utilizzando _x e _y, essendo queste le proprietà di MovieClip utilizzate per impostare i valori x e y per gli oggetti MovieClip. Per l'oggetto generico vengono tuttavia utilizzati i valori x and y senza carattere di sottolineatura. Il codice seguente converte i valori x e y in coordinate locali: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 426 Classi ActionScript var myPoint:Object = {x:0, y:0}; // Create your generic point object. this.createEmptyMovieClip("myMovieClip", this.getNextHighestDepth()); myMovieClip._x = 100; // _x for movieclip x position myMovieClip._y = 100; // _y for movieclip y position myMovieClip.globalToLocal(myPoint); trace ("x: " + myPoint.x); // output: -100 trace ("y: " + myPoint.y); // output: -100 È possibile estendere i metodi e i gestori di eventi della classe MovieClip creando una sottoclasse. Disponibilità Flash Lite 2.0 Parametri pt:Object - Il nome o l'identificatore di un oggetto creato mediante la classe Object generica. L'oggetto specifica le coordinate x e y come proprietà. Esempio Aggiungere il seguente codice ActionScript a un file FLA o AS nella stessa directory di un'immagine denominata photo1.jpg: this.createTextField("coords_txt", this.getNextHighestDepth(), 10, 10, 100, 22); coords_txt.html = true; coords_txt.multiline = true; coords_txt.autoSize = true; this.createEmptyMovieClip("target_mc", this.getNextHighestDepth()); target_mc._x = 100; target_mc._y = 100; target_mc.loadMovie("photo1.jpg"); var mouseListener:Object = new Object(); mouseListener.onMouseMove = function() { var point:Object = {x:_xmouse, y:_ymouse}; target_mc.globalToLocal(point); var rowHeaders = "<b> \t</b><b>_x\t</b><b>_y</b>"; var row_1 = "_root\t"+_xmouse+"\t"+_ymouse; var row_2 = "target_mc\t"+point.x+"\t"+point.y; coords_txt.htmlText = "<textformat tabstops='[100, 150]'>"; coords_txt.htmlText += rowHeaders; coords_txt.htmlText += row_1; coords_txt.htmlText += row_2; coords_txt.htmlText += "</textformat>"; }; Mouse.addListener(mouseListener); Vedete anche getBounds (metodo MovieClip.getBounds), localToGlobal (metodo MovieClip.localToGlobal), Object gotoAndPlay (metodo MovieClip.gotoAndPlay) public gotoAndPlay(frame:Object) : Void Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 427 Classi ActionScript Avvia la riproduzione del file SWF dal fotogramma specificato. Per specificare una scena oltre a un fotogramma, utilizzare gotoAndPlay(). È possibile estendere i metodi e i gestori di eventi della classe MovieClip creando una sottoclasse. Disponibilità Flash Lite 2.0 Parametri frame:Object - Un numero che rappresenta il numero del fotogramma, o una stringa che rappresenta l'etichetta del fotogramma, a cui viene inviato l'indicatore di riproduzione. Esempio Nell'esempio seguente viene utilizzata la proprietà _framesloaded per avviare un file SWF dopo che sono stati caricati tutti i fotogrammi. Se non vengono caricati tutti i fotogrammi, la proprietà _xscale dell'istanza del clip filmato del loader viene aumentata proporzionalmente per creare una barra di avanzamento. Immettere il codice seguente nel fotogramma 1 della linea temporale: var pctLoaded:Number = Math.round(this.getBytesLoaded()/this.getBytesTotal()*100); bar_mc._xscale = pctLoaded; Aggiungere al fotogramma 2 il codice seguente: if (this._framesloaded<this._totalframes) { this.gotoAndPlay(1); } else { this.gotoAndStop(3); } Inserire il contenuto nel fotogramma 3 o dopo di esso, quindi aggiungere il codice seguente allo stesso fotogramma: stop(); Vedete anche Funzione gotoAndPlay, Funzione play gotoAndStop (metodo MovieClip.gotoAndStop) public gotoAndStop(frame:Object) : Void Posiziona l'indicatore di riproduzione sul fotogramma specificato del clip filmato. Per specificare una scena oltre a un fotogramma, utilizzare gotoAndStop(). È possibile estendere i metodi e i gestori di eventi della classe MovieClip creando una sottoclasse. Disponibilità Flash Lite 2.0 Parametri frame:Object - Il numero di fotogramma al quale viene inviato l'indicatore di riproduzione. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 428 Classi ActionScript Esempio Nell'esempio seguente viene utilizzata la proprietà _framesloaded per avviare un file SWF dopo che sono stati caricati tutti i fotogrammi. Se non vengono caricati tutti i fotogrammi, la proprietà _xscale dell'istanza del clip filmato del loader viene aumentata proporzionalmente per creare una barra di avanzamento. Immettere il codice seguente nel fotogramma 1 della linea temporale: var pctLoaded:Number = Math.round(this.getBytesLoaded()/this.getBytesTotal()*100); bar_mc._xscale = pctLoaded; Aggiungere al fotogramma 2 il codice seguente: if (this._framesloaded<this._totalframes) { this.gotoAndPlay(1); } else { this.gotoAndStop(3); } Inserire il contenuto nel fotogramma 3 o dopo di esso, quindi aggiungere il codice seguente allo stesso fotogramma: stop(); Vedete anche Funzione gotoAndStop, Funzione stop _height (proprietà MovieClip._height) public _height : Number L'altezza del clip filmato, espressa in pixel. Disponibilità Flash Lite 2.0 Esempio Nel seguente esempio di codice vengono visualizzate la larghezza e l'altezza di un clip filmato nel pannello Output: this.createEmptyMovieClip("image_mc", this.getNextHighestDepth()); var image_mcl:MovieClipLoader = new MovieClipLoader(); var mclListener:Object = new Object(); mclListener.onLoadInit = function(target_mc:MovieClip) { trace(target_mc._name+" = "+target_mc._width+" X "+target_mc._height+" pixels"); }; image_mcl.addListener(mclListener); image_mcl.loadClip("example.jpg", image_mc); Vedete anche _width (proprietà MovieClip._width) _highquality (proprietà MovieClip._highquality) public _highquality : Number Sconsigliata a partire da Flash Player 7. Questa proprietà è stata sconsigliata a favore di MovieClip._quality. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 429 Classi ActionScript Specifica il livello di antialiasing applicato al file SWF corrente. Specificare 2 (migliore qualità) per applicare un'alta qualità con lo smussamento bitmap sempre abilitato. Specificare 1 (alta qualità) per applicare l'antialiasing; le immagini bitmap vengono attenuate se il file SWF non contiene animazioni. Specificare 0 (bassa qualità) per impedire l'antialiasing. Questa proprietà può sovrascrivere la proprietà _highquality globale. Disponibilità Flash Lite 2.0 Esempio Il codice ActionScript seguente specifica che al file SWF dovrà essere applicato l'antialiasing della qualità migliore. my_mc._highquality = 2; Vedete anche _quality (proprietà MovieClip._quality), Proprietà _quality hitArea (proprietà MovieClip.hitArea) public hitArea : Object Definisce un altro clip filmato come area attiva di un clip filmato. Se la proprietà hitArea non esiste oppure è null o non definita, il clip filmato stesso viene utilizzato come area attiva. Il valore della proprietà hitArea può fungere da riferimento per un oggetto clip filmato. È possibile modificare la proprietà hitArea in qualsiasi momento; al clip filmato modificato viene associato immediatamente il nuovo comportamento dell'area attiva. Non è necessario che il clip filmato designato come area attiva sia visibile; la sua forma grafica, anche non visibile, viene verificata e considerata come area attiva. La proprietà hitArea può essere estratta da un oggetto prototipo. Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente, il clip filmato circle_mc viene impostato come area attiva per il clip filmato square_mc. Collocare questi due clip filmato sullo stage e provare il documento. Quando si fa clic su circle_mc, l'azione viene rilevata nel clip filmato square_mc. square_mc.hitArea = circle_mc; square_mc.onRelease = function() { trace("hit! "+this._name); }; È inoltre possibile impostare la proprietà visible del clip filmato circle_mc su false, in modo da nascondere l'area attiva per square_mc. circle_mc._visible = false; Vedete anche hitTest (metodo MovieClip.hitTest) Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 430 Classi ActionScript hitTest (metodo MovieClip.hitTest) public hitTest() : Boolean Valuta il clip filmato per vedere se si sovrappone o interseca l'area attiva identificata dai parametri target o delle coordinate x e y. Uso 1: confronta le coordinate x e y con la forma o il riquadro di delimitazione dell'istanza specificata, in base all'impostazione di shapeFlag. Se il valore di shapeFlag è true, viene valutata solo l'area dello stage effettivamente occupata dall'istanza; inoltre, se x e y si sovrappongono in qualche punto, viene restituito un valore true. Questa valutazione è utile per determinare se il clip filmato è all'interno di un'area attiva o di un punto attivo. Uso 2: valuta i riquadri di delimitazione del target e dell'istanza specificata, e restituisce il valore true se si sovrappongono o intersecano in qualche punto. Parametri x: number La coordinata x dell'area attiva dello stage. y: number La coordinata y dell'area attiva dello stage. Le coordinate x e y sono definite nello spazio globale delle coordinate. shapeFlag: Boolean Un valore booleano che specifica se valutare l'intera forma dell'istanza specificata (true) o solo il riquadro di delimitazione (false). Questo parametro può essere specificato solo se l'area attiva viene identificata mediante i parametri delle coordinate x e y. target: Object Il percorso di destinazione dell'area attiva che potrebbe intersecare o sovrapporsi al clip filmato. Di solito, il parametro target rappresenta un pulsante o un campo per l'immissione di testo. Disponibilità Flash Lite 2.0 Restituisce Boolean - Un valore booleano true se il clip filmato si sovrappone all'area attiva specificata, false in caso contrario. Esempio Nell'esempio seguente viene utilizzato hitTest() per determinare se il clip filmato circle_mc è sovrapposto o interseca il clip filmato square_mc quando l'utente rilascia il pulsante del mouse: square_mc.onPress = function() { this.startDrag(); }; square_mc.onRelease = function() { this.stopDrag(); if (this.hitTest(circle_mc)) { trace("you hit the circle"); } }; Vedete anche getBounds (metodo MovieClip.getBounds), globalToLocal (metodo MovieClip.globalToLocal), localToGlobal (metodo MovieClip.localToGlobal) Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 431 Classi ActionScript lineStyle (metodo MovieClip.lineStyle) public lineStyle(thickness:Number, rgb:Number, alpha:Number, pixelHinting:Boolean, noScale:String, capsStyle:String, jointStyle:String, miterLimit:Number) : Void Specifica uno stile di linea utilizzato da Flash per chiamate successive ai metodi lineTo() e curveTo() fino a che non viene chiamato il metodo lineStyle() con parametri diversi. È possibile chiamare lineStyle() mentre si disegna un percorso per specificare stili diversi per segmenti di linea diversi all'interno di un percorso. Nota: se si chiama clear(), lo stile di linea viene reimpostato su undefined. È possibile estendere i metodi e i gestori di eventi della classe MovieClip creando una sottoclasse. Disponibilità Flash Lite 2.0 Parametri thickness:Number··Un·numero·intero·che·indica·lo·spessore·della·linea·in·punti;·i·valori·validi·sono·compresi·tra·0·e·255.·Se·non·viene·s pecificato·un·numero,·oppure·se·il·parametro·è·undefined, la linea non viene disegnata. Se viene passato un valore minore di 0, viene utilizzato 0. Il valore 0 indica uno spessore sottilissimo; lo spessore massimo è 255. Se viene passato un valore maggiore di 255, l'interprete di Flash utilizza 255. rgb:Number - Un valore di colore esadecimale della linea (ad esempio, rosso è 0xFF0000, blu è 0x0000FF e così via). Se non viene indicato un valore, viene utilizzato 0x000000 (nero). alpha:Number - Un numero intero che indica il valore alfa del colore della linea; i valori validi sono compresi tra 0 e 100. Se non viene indicato un valore, Flash utilizza 100 (uniforme). Se il valore è minore di 0, viene utilizzato 0; se il valore è maggiore di 100, viene utilizzato 100. pixelHinting:Boolean - Un valore booleano che specifica se approssimare i tratti ai pixel pieni. Incide sia sulla posizione degli ancoraggi di una curva, sia sulle dimensioni stesse del tratto della linea. Con pixelHinting impostato su true, il player Flash Lite approssima la larghezza delle linee alla larghezza dei pixel interi. Con pixelHinting impostato su false, possono apparire delle discontinuità nelle curve e nelle linee rette. noScale:String - Una stringa che specifica come adattare un tratto. I valori validi sono riportati di seguito: "normale" - "Modificare sempre in scala lo spessore (impostazione predefinita)."nessuno" - Non modificare mai in scala lo spessore."verticale" - Non modificare mai in scala lo spessore se per l'oggetto è impostata solo la scala verticale."orizzontale" - Non modificare mai in scala lo spessore se per l'oggetto è impostata solo la scala orizzontale capsStyle:String - Una stringa che specifica il tipo di estremità sulle linee. I valori validi sono: "round", "square" e "none". Se non viene indicato un valore, Flash utilizza estremità arrotondate. jointStyle:String - Una stringa che specifica il tipo di aspetto dei raccordi utilizzato agli angoli. I valori validi sono: "round", "miter" e "bevel". Se non viene indicato un valore, Flash utilizza spigoli arrotondati. miterLimit:Number - Un numero che indica il limite in corrispondenza del quale lo spigolo viene troncato. L'intervallo di valori validi è compreso tra 1 e 255, e i valori non compresi in questo intervallo vengono approssimati a 1 o 255. Il valore viene utilizzato solo se jointStyle è impostato su "miter". Se non viene indicato un valore, Flash utilizza 3. Il valore miterLimit rappresenta la lunghezza per la quale una giunzione ad angolo può estendersi oltre il punto in cui le linee si incontrano per costituire uno spigolo. Il valore esprime un fattore del valore thickness della linea. Ad esempio, con un fattore miterLimit 2,5 ed un valore di 10 pixel per thickness, lo spigolo viene troncato a 25 pixel. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 432 Classi ActionScript Esempio Il codice seguente consente di disegnare un triangolo con linee solide color magenta di 5 pixel senza riempimento. this.createEmptyMovieClip("triangle_mc", 1); triangle_mc.lineStyle(5, 0xff00ff, 100); triangle_mc.moveTo(200, 200); triangle_mc.lineTo(300, 300); triangle_mc.lineTo(100, 300); triangle_mc.lineTo(200, 200); Vedete anche beginFill (metodo MovieClip.beginFill), beginGradientFill (metodo MovieClip.beginGradientFill), clear (metodo MovieClip.clear), curveTo (metodo MovieClip.curveTo), lineTo (metodo MovieClip.lineTo), moveTo (metodo MovieClip.moveTo) lineTo (metodo MovieClip.lineTo) public lineTo(x:Number, y:Number) : Void Disegna una linea con lo stile di linea corrente dalla posizione di disegno corrente a (x, y); la posizione di disegno corrente viene quindi impostata su (x, y). Se il clip filmato in cui si sta disegnando ha del contenuto creato con gli strumenti di disegno di Flash, le chiamate a lineTo() vengono disegnate sotto tale contenuto. Se si chiama il metodo lineTo() prima delle chiamate al metodo moveTo(), la posizione di disegno corrente è impostata sul valore predefinito (0,0). Se mancano uno o più parametri, il metodo ha esito negativo e la posizione di disegno corrente non cambia. È possibile estendere i metodi e i gestori di eventi della classe MovieClip creando una sottoclasse. Disponibilità Flash Lite 2.0 Parametri x:Number - Un numero intero che indica la posizione orizzontale relativa al punto di registrazione del clip filmato principale. y:Number - Un numero intero che indica la posizione verticale relativa al punto di registrazione del clip filmato principale. Esempio Nell'esempio seguente viene disegnato un triangolo con una linea magenta uniforme di spessore pari a 5 pixel e un riempimento blu parzialmente trasparente: this.createEmptyMovieClip("triangle_mc", 1); triangle_mc.beginFill(0x0000FF, 30); triangle_mc.lineStyle(5, 0xFF00FF, 100); triangle_mc.moveTo(200, 200); triangle_mc.lineTo(300, 300); triangle_mc.lineTo(100, 300); triangle_mc.lineTo(200, 200); triangle_mc.endFill(); Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 433 Classi ActionScript Vedete anche beginFill (metodo MovieClip.beginFill), createEmptyMovieClip (metodo MovieClip.createEmptyMovieClip), endFill (metodo MovieClip.endFill), lineStyle (metodo MovieClip.lineStyle), moveTo (metodo MovieClip.moveTo) loadMovie (metodo MovieClip.loadMovie) public loadMovie(url:String, [method:String]) : Void Carica i file SWF o JPEG in un clip filmato in un file SWF riprodotto in Flash Player. Suggerimento: per verificare lo stato di avanzamento dell'operazione, utilizzare MovieClipLoader.loadClip() invece del metodo loadMovie(). Il metodo loadMovie() consente di visualizzare più file SWF contemporaneamente e di passare da uno all'altro senza caricare un altro documento HTML. Un file SWF o un'immagine caricata in un clip filmato eredita le proprietà di posizione, rotazione e scala del clip filmato. È possibile utilizzare il percorso target del clip filmato per indicare come destinazione il file SWF caricato. Chiama la funzione loadMovie() per caricare qualsiasi formato di immagine supportato dal dispositivo. Se, ad esempio, il dispositivo di destinazione supporta i file PNG, il codice seguente carica e riproduce un file PNG presente su un server Web: loadMovie("http://www.adobe.com/image.png", "image_target"); Per determinare i formati grafici supportati dal dispositivo di destinazione, utilizzare la proprietà System.capabilities.imageMIMETypes che contiene un array dei tipi MIME grafici supportati. L'indice di ogni elemento dell'array corrisponde a ogni tipo MIME supportato. Il codice riportato di seguito, ad esempio, determina se un dispositivo supporta le immagini PNG prima che il dispositivo tenti di caricare un file PNG esterno: if (System.capabilities.imageMIMETypes["image/png"]) { loadMovie("images/image.png", "mc_myPngImage"); } In Flash Lite il numero di operazioni loadMovie() eseguibili da un'applicazione in un determinato fotogramma è limitato a cinque. Flash lite limita il numero di operazioni loadMovie eseguibili contemporaneamente a dieci. Supporre, ad esempio, che l'applicazione contenga codice nel fotogramma 1 che carica sei immagini JPEG: image1.loadMovie("image1.jpg"); image2.loadMovie("image2.jpg"); image3.loadMovie("image3.jpg"); image4.loadMovie("image4.jpg"); image5.loadMovie("image5.jpg"); image6.loadMovie("image6.jpg"); // Won't load In questo caso, vengono caricate solo le prime cinque immagini (da image1.jpg a image5.jpg). L'ultima immagine (image6.jpg) non viene caricata in quanto è stato raggiunto il limite di connessione. Una soluzione consiste nel suddividere le chiamate loadMovie() su più fotogrammi, affinché ogni fotogramma contenga al massimo cinque chiamate loadMovie(). Quando si chiama il metodo loadMovie(), impostare la proprietà MovieClip._lockroot su true nel filmato del loader, come illustrato nell'esempio di codice riportato di seguito. Se nel filmato del loader non si imposta _lockroot su true, tutti i riferimenti a _root nel filmato caricato punteranno a _root del loader anziché a _root del filmato caricato. myMovieClip._lockroot = true; Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 434 Classi ActionScript Utilizzare il metodo MovieClip.unloadMovie() per rimuovere i file SWF o le immagini caricate con il metodoloadMovie(). Utilizzare il metodo MovieClip.loadVariables(), l'oggetto XML, Flash Remoting oppure oggetti condivisi per mantenere il file SWF attivo e caricarvi nuovi dati. I risultati dell'uso di gestori di eventi con MovieClip.loadMovie() possono essere imprevedibili. Se si associa un gestore di eventi a un pulsante tramite on() oppure si crea un gestore dinamico tramite un metodo del gestore di eventi quale MovieClip.onPress, quindi si chiama loadMovie(), il gestore di eventi non rimarrà attivo dopo il caricamento del nuovo contenuto. Se invece si associa un gestore di eventi a un clip filmato tramite onClipEvent() o on(), quindi si chiama loadMovie() su tale clip filmato, il gestore di eventi rimarrà attivo anche dopo il caricamento del nuovo contenuto. Disponibilità Flash Lite 2.0 Parametri url:String - L'URL assoluto o relativo del file SWF o JPEG da caricare. Un percorso relativo deve essere tale rispetto al file SWF che si trova sul livello 0. Gli URL assoluti devono includere il riferimento al protocollo, ad esempio http:// o file:///. method:String [opzionale] - Specifica un metodo HTTP per l'invio o il caricamento di variabili. Il parametro deve essere la stringa GET o POST. Se nessuna variabile deve essere inviata, omettere questo parametro. Il metodo GET aggiunge le variabili alla fine dell'URL e viene utilizzato quando il numero di variabili è ridotto; il metodo POST invia le variabili in un'intestazione HTTP separata e viene utilizzato per l'invio di stringhe di variabili lunghe. Esempio L'esempio seguente crea un nuovo clip filmato, quindi crea un elemento secondario al suo interno e carica un'immagine PNG nell'elemento secondario. In tal modo l'elemento principale sarà in grado di conservare i valori di istanza assegnati prima della chiamata a loadMovie. var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.onRelease = function():Void { trace(this.image._url); // http://www.w3.org/Icons/w3c_main.png } var image:MovieClip = mc.createEmptyMovieClip("image", mc.getNextHighestDepth()); image.loadMovie("http://www.w3.org/Icons/w3c_main.png"); Vedete anche _lockroot (proprietà MovieClip._lockroot), unloadMovie (metodo MovieClip.unloadMovie), loadVariables (metodo MovieClip.loadVariables), loadMovie (metodo MovieClip.loadMovie), onPress (gestore MovieClip.onPress), MovieClipLoader, Gestore onClipEvent(), Costanti, Funzione loadMovieNum, Funzione unloadMovie, Funzione unloadMovieNum loadVariables (metodo MovieClip.loadVariables) public loadVariables(url:String, [method:String]) : Void Legge i dati da un file esterno e imposta i valori delle variabili nel clip filmato. Il file esterno può essere un file di testo generato da ColdFusion, uno script CGI, una pagina ASP (Active Server Page), uno script PHP o qualsiasi altro file di testo formattato correttamente. Il file può contenere un numero qualsiasi di variabili. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 435 Classi ActionScript Il metodo loadVariables può essere utilizzato anche per aggiornare con dei nuovi valori le variabili del clip filmato attivo. Il metodo loadVariables richiede che il testo dell'URL sia nel formato MIME standard: application/x-www-formurlencoded (formato di script CGI). Nei file SWF eseguiti in una versione di Flash Player precedente alla 7, l'url deve trovarsi nello stesso superdominio del file SWF che emette la chiamata. Un superdominio può essere derivato rimovendo il componente più a sinistra dell'URL di un file. Ad esempio, un file SWF che si trova in www.someDomain.com può caricare dati da un'origine situata in store.someDomain.com in quanto entrambi i file si trovano nel superdominio someDomain.com. Nei file SWF eseguiti nella versione di Flash Player 7 o successiva, l'url deve trovarsi esattamente nello stesso dominio del file SWF che genera la chiamata. Ad esempio, un file SWF che si trova nel sito www.someDomain.com può caricare dati solo da altre origini presenti nel sito www.someDomain.com. Per caricare dati da un dominio diverso, è possibile collocare un file di criteri dei domini sul server che ospita l'origine dati a cui si sta accedendo. Per caricare variabili in un livello specifico, utilizzare loadVariablesNum() anziché loadVariables(). È possibile estendere i metodi e i gestori di eventi della classe MovieClip creando una sottoclasse. Disponibilità Flash Lite 2.0 Parametri url:String - L'URL assoluto o relativo del file esterno che contiene le variabili da caricare. Se il file SWF che genera la chiamata viene eseguito in un browser Web, l'url deve trovarsi nello stesso dominio del file SWF; per informazioni dettagliate, vedete la descrizione di seguito. method:String [opzionale] - Specifica un metodo HTTP per l'invio di variabili. Il parametro deve essere la stringa GET o POST. Se non vengono inviate variabili, omettere questo parametro. Il metodo GET aggiunge le variabili alla fine dell'URL e viene utilizzato quando il numero di variabili è ridotto; il metodo POST invia le variabili in un'intestazione HTTP separata e viene utilizzato per l'invio di stringhe di variabili lunghe. Esempio L'esempio seguente carica le informazioni dal file di testo params.txt nel clip filmato target_mc creato mediante createEmptyMovieClip(). La funzione setInterval() viene utilizzata per controllare l'avanzamento. Lo script cerca una variabile denominata done nel file params.txt. this.createEmptyMovieClip("target_mc", this.getNextHighestDepth()); target_mc.loadVariables("params.txt"); function checkParamsLoaded() { if (target_mc.done == undefined) { trace("not yet."); } else { trace("finished loading. killing interval."); trace("-------------"); for (i in target_mc) { trace(i+": "+target_mc[i]); } trace("-------------"); clearInterval(param_interval); } } var param_interval = setInterval(checkParamsLoaded, 100); Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 436 Classi ActionScript Il file params.txt include il testo seguente: var1="hello"&var2="goodbye"&done="done" Vedete anche loadMovie (metodo MovieClip.loadMovie), Funzione loadVariablesNum, unloadMovie (metodo MovieClip.unloadMovie) localToGlobal (metodo MovieClip.localToGlobal) public localToGlobal(pt:Object) : Void Converte le coordinate del clip filmato (locali) in quelle dello stage (globali) per l'oggetto pt. Il metodo MovieClip.localToGlobal() consente di convertire qualsiasi coppia data di coordinate x e y da valori relativi all'angolo superiore sinistro di un clip filmato specifico in valori relativi all'angolo superiore sinistro dello stage. È necessario innanzitutto creare un oggetto generico con due proprietà: x e y. Questi valori x e y (che devono essere chiamati x e y) vengono definiti coordinate locali poiché si riferiscono all'angolo superiore sinistro del clip filmato. La proprietà x rappresenta l'offset orizzontale dall'angolo superiore sinistro del clip filmato. In altre parole, rappresenta la distanza verso destra in cui si trova il punto. Ad esempio, se x = 50, il punto si trova 50 pixel a destra dell'angolo superiore sinistro. La proprietà y rappresenta l'offset verticale dall'angolo superiore sinistro del clip filmato. In altre parole, rappresenta la distanza verso il basso in cui si trova il punto. Ad esempio, se y = 20, il punto si trova 20 pixel sotto l'angolo superiore sinistro. Il codice seguente crea un oggetto generico con queste coordinate. var myPoint:Object = new Object(); myPoint.x = 50; myPoint.y = 20; In alternativa, è possibile creare l'oggetto e assegnare i valori contemporaneamente con un valore letterale Object. var myPoint:Object = {x:50, y:20}; Dopo aver creato un oggetto point con coordinate locali, è possibile convertirle in coordinate globali. Il metodo localToGlobal() non restituisce un valore poiché modifica i valori di x e y nell'oggetto generico inviato come parametro, convertendoli da valori relativi a un clip filmato specifico (coordinate locali) in valori relativi allo stage (coordinate globali). Ad esempio, se si crea un clip filmato collocato nel punto (_x:100, _y:100) e si passa un punto locale che rappresenta un punto accanto all'angolo superiore sinistro del clip filmato (x:10, y:10) al metodo localToGlobal(), questo dovrebbe convertire i valori x e y in coordinate globali, in questo caso (x:110, y:110). Questa conversione si verifica poiché le coordinate x e y sono espresse in relazione all'angolo superiore sinistro dello stage anziché a quello del clip filmato. Le coordinate del clip filmato sono state espresse utilizzando _x e _y, essendo queste le proprietà di MovieClip utilizzate per impostare i valori x e y per gli oggetti MovieClip. Per l'oggetto generico vengono tuttavia utilizzati i valori x and y senza carattere di sottolineatura. Il codice seguente converte le coordinate x e y in coordinate globali: var myPoint:Object = {x:10, y:10}; // create your generic point object this.createEmptyMovieClip("myMovieClip", this.getNextHighestDepth()); myMovieClip._x = 100; // _x for movieclip x position myMovieClip._y = 100; // _y for movieclip y position myMovieClip.localToGlobal(myPoint); trace ("x: " + myPoint.x); // output: 110 trace ("y: " + myPoint.y); // output: 110 È possibile estendere i metodi e i gestori di eventi della classe MovieClip creando una sottoclasse. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 437 Classi ActionScript Disponibilità Flash Lite 2.0 Parametri pt:Object - Il nome o l'identificatore di un oggetto creato con la classe Object, che specifica le coordinate x e y come proprietà. Esempio Nell'esempio seguente vengono convertite le coordinate x e y dell'oggetto my_mc, dalle coordinate del clip filmato (locali) in quelle dello stage (globali). Il punto centrale del clip filmato viene riflesso dopo aver fatto clic e trascinato l'istanza. this.createTextField("point_txt", this.getNextHighestDepth(), 0, 0, 100, 22); var mouseListener:Object = new Object(); mouseListener.onMouseMove = function() { var point:Object = {x:my_mc._width/2, y:my_mc._height/2}; my_mc.localToGlobal(point); point_txt.text = "x:"+point.x+", y:"+point.y; }; Mouse.addListener(mouseListener); my_mc.onPress = function() { this.startDrag(); }; my_mc.onRelease = function() { this.stopDrag(); }; Vedete anche globalToLocal (metodo MovieClip.globalToLocal) _lockroot (proprietà MovieClip._lockroot) public _lockroot : Boolean Un valore booleano che specifica l'elemento a cui si riferisce _root quando un file SWF viene caricato in un clip filmato. La proprietà _lockrootnon è definita per impostazione predefinita. È possibile impostarla all'interno del file SWF che si sta caricando o del gestore che sta caricando il clip filmato. Ad esempio, si supponga che il documento Games.fla che consente all'utente di scegliere un gioco da eseguire carichi il gioco (ad esempio, Chess.swf) nel clip filmato game_mc. Accertarsi che dopo il caricamento in Games.swf, qualsiasi utilizzo di _root in Chess.swf faccia ancora riferimento a _root in Chess.swf (non _root in Games.swf). Se si ha l'accesso al file Chess.fla e lo si pubblica per Flash Player 7 o versioni successive, è possibile aggiungere l'istruzione seguente a Chess.fla sulla linea temporale principale: this._lockroot = true; Se non si ha accesso a Chess.fla (ad esempio, se si carica Chess.swf da un sito di terzi in chess_mc), è possibile impostarne la proprietà _lockroot quando lo si carica. Posizionare il codice ActionScript seguente sulla linea temporale principale di Games.fla: chess_mc._lockroot = true; In questo caso, Chess.swf può essere pubblicato per qualunque versione di Flash Player, a condizione che Games.swf sia pubblicato per Flash Player 7 o versioni successive. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 438 Classi ActionScript Quando si chiama il metodo loadMovie(), impostare la proprietà MovieClip._lockroot su true nel filmato del loader, come illustrato nel codice riportato di seguito. Se nel filmato del loader non si imposta _lockroot su true, tutti i riferimenti a _root nel filmato caricato punteranno a _root del loader anziché a _root del filmato caricato: myMovieClip._lockroot = true; Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente, per lockroot.fla viene applicata la proprietà _lockroot al file SWF principale. Se il file SWF viene caricato in un altro documento FLA, _root fa sempre riferimento all'area di validità di lockroot.swf, che contribuisce a prevenire conflitti. Posizionare il codice ActionScript seguente sulla linea temporale principale di lockroot.fla: this._lockroot = true; _root.myVar = 1; _root.myOtherVar = 2; trace("from lockroot.swf"); for (i in _root) { trace(" "+i+" -> "+_root[i]); } trace(""); che traccia le informazioni seguenti: from lockroot.swf myOtherVar -> 2 myVar -> 1 _lockroot -> true $version -> WIN 7,0,19,0 Nell'esempio seguente vengono caricati due file SWF, lockroot.swf e nolockroot.swf. Il documento lockroot.fla contiene il codice ActionScript dell'esempio precedente. Per il file FLA nolockroot, il codice seguente è collocato sul fotogramma 1 della linea temporale: _root.myVar = 1; _root.myOtherVar = 2; trace("from nolockroot.swf"); for (i in _root) { trace(" "+i+" -> "+_root[i]); } trace(""); A differenza del file nolockroot.swf, al file lockroot.swf è applicata la proprietà _lockroot. Dopo il caricamento, ciascun file scarica variabili dalle relative aree di validità _root. Posizionare il codice ActionScript seguente sulla linea temporale principale di un documento FLA: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 439 Classi ActionScript this.createEmptyMovieClip("lockroot_mc", this.getNextHighestDepth()); lockroot_mc.loadMovie("lockroot.swf"); this.createEmptyMovieClip("nolockroot_mc", this.getNextHighestDepth()); nolockroot_mc.loadMovie("nolockroot.swf"); function dumpRoot() { trace("from current SWF file"); for (i in _root) { trace(" "+i+" -> "+_root[i]); } trace(""); } dumpRoot(); che traccia le informazioni seguenti: from current SWF file dumpRoot -> [type Function] $version -> WIN 7,0,19,0 nolockroot_mc -> _level0.nolockroot_mc lockroot_mc -> _level0.lockroot_mc from nolockroot.swf myVar -> 1 i -> lockroot_mc dumpRoot -> [type Function] $version -> WIN 7,0,19,0 nolockroot_mc -> _level0.nolockroot_mc lockroot_mc -> _level0.lockroot_mc from lockroot.swf myOtherVar -> 2 myVar -> 1 Il file a cui non viene applicata _lockroot contiene inoltre tutte le altre variabili incluse nel file radice SWF. Se non si dispone dell'accesso a nolockroot.fla, è possibile aggiungere il codice ActionScript seguente alla linea temporale principale per cambiare la proprietà _lockroot nel precedente documento FLA principale: this.createEmptyMovieClip("nolockroot_mc", this.getNextHighestDepth()); nolockroot_mc._lockroot = true; nolockroot_mc.loadMovie("nolockroot.swf"); che quindi traccia quanto segue: from current SWF file dumpRoot -> [type Function] $version -> WIN 7,0,19,0 nolockroot_mc -> _level0.nolockroot_mc lockroot_mc -> _level0.lockroot_mc from nolockroot.swf myOtherVar -> 2 myVar -> 1 from lockroot.swf myOtherVar -> 2 myVar -> 1 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 440 Classi ActionScript Vedete anche Proprietà _root, _lockroot (proprietà MovieClip._lockroot), attachMovie (metodo MovieClip.attachMovie), loadMovie (metodo MovieClip.loadMovie), onLoadInit (listener di eventi MovieClipLoader.onLoadInit) moveTo (metodo MovieClip.moveTo) public moveTo(x:Number, y:Number) : Void Sposta la posizione di disegno corrente nel punto (x, y). Se mancano uno o più parametri, il metodo ha esito negativo e la posizione di disegno corrente non cambia. È possibile estendere i metodi e i gestori di eventi della classe MovieClip creando una sottoclasse. Disponibilità Flash Lite 2.0 Parametri x:Number - Un numero intero che indica la posizione orizzontale relativa al punto di registrazione del clip filmato principale. y:Number - Un numero intero che indica la posizione verticale relativa al punto di registrazione del clip filmato principale. Esempio Nell'esempio seguente viene disegnato un triangolo con una linea magenta uniforme di spessore pari a 5 pixel e un riempimento blu parzialmente trasparente: this.createEmptyMovieClip("triangle_mc", 1); triangle_mc.beginFill(0x0000FF, 30); triangle_mc.lineStyle(5, 0xFF00FF, 100); triangle_mc.moveTo(200, 200); triangle_mc.lineTo(300, 300); triangle_mc.lineTo(100, 300); triangle_mc.lineTo(200, 200); triangle_mc.endFill(); Vedete anche createEmptyMovieClip (metodo MovieClip.createEmptyMovieClip), lineStyle (metodo MovieClip.lineStyle), lineTo (metodo MovieClip.lineTo) _name (proprietà MovieClip._name) public _name : String Il nome dell'istanza del clip filmato. Disponibilità Flash Lite 2.0 Vedete anche _name (proprietà Button._name) Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 441 Classi ActionScript nextFrame (metodo MovieClip.nextFrame) public nextFrame() : Void Invia l'indicatore di riproduzione al fotogramma successivo e lo ferma. È possibile estendere i metodi e i gestori di eventi della classe MovieClip creando una sottoclasse. Disponibilità Flash Lite 2.0 Esempio Il seguente esempio utilizza _framesloaded e nextFrame() per caricare il contenuto in un file SWF. Evitare di aggiungere codice al fotogramma 1, ma aggiungere il codice ActionScript seguente al fotogramma 2 della linea temporale: if (this._framesloaded >= 3) { this.nextFrame(); } else { this.gotoAndPlay(1); } Aggiungere quindi il codice seguente, e il contenuto che si desidera caricare, al fotogramma 3: stop(); Vedete anche Funzione nextFrame, Funzione prevFrame, prevFrame (metodo MovieClip.prevFrame) onData (gestore MovieClip.onData) onData = function() {} Richiamato quando un clip filmato riceve dati da una chiamata a MovieClip.loadVariables() o MovieClip.loadMovie(). È necessario definire una funzione che viene eseguita nel momento in cui il gestore di eventi viene richiamato. È possibile definire la funzione sulla linea temporale oppure in un file di classe che estenda la classe MovieClip o sia collegato a un simbolo presente nella libreria. Questo gestore può essere utilizzato solo con i clip filmato per i quali un simbolo della libreria è associato a una classe. Per richiamare un gestore di eventi quando uno specifico clip filmato riceve dei dati, anziché questo gestore utilizzare il gestore onClipEvent(), che viene richiamato quando un clip filmato qualunque riceve dei dati. Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente viene illustrato l'utilizzo corretto di MovieClip.onData() e onClipEvent(data). symbol_mc è un simbolo di clip filmato nel pannello Libreria, collegato alla classe MovieClip. La prima funzione sotto viene attivata per ciascuna istanza di symbol_mc nel momento in cui vengono ricevuti dei dati. dynamic_mc è un clip filmato in fase di caricamento mediante MovieClip.loadMovie(). Il codice seguente, utilizzando dynamic_mc, cerca di chiamare una funzione nel momento in cui viene caricato il clip filmato, ma l'operazione non riesce. Il file SWF caricato deve essere un simbolo della libreria associato alla classe MovieClip. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 442 Classi ActionScript L'ultima funzione utilizza onClipEvent(data). Il gestore di eventi onClipEvent() viene chiamato per qualsiasi clip filmato che riceve dati, indipendentemente dal fatto che si trovi nella libreria o meno. Pertanto, l'ultima funzione in questo esempio viene chiamata quando viene creata un'istanza di symbol_mc e quando viene caricato il file replacement.swf. // The following function is triggered for each instance of symbol_mc // when it receives data. symbol_mc.onData = function() { trace("The movie clip has received data"); } // This code attempts to call a function when the clip is loaded, // but it will not work, because the loaded SWF is not a symbol // in the library associated with the MovieClip class. function output() { trace("Will never be called."); } dynamic_mc.onData = output; dynamic_mc.loadMovie("replacement.swf"); // The following function is invoked for any movie clip that // receives data, whether it is in the library or not. onClipEvent( data ) { trace("The movie clip has received data"); } Vedete anche Gestore onClipEvent() onDragOut (gestore MovieClip.onDragOut) onDragOut = function() {} Richiamato quando viene premuto il pulsante del mouse e il puntatore esce dall'oggetto. È necessario definire una funzione che viene eseguita nel momento in cui il gestore di eventi viene richiamato. È possibile definire la funzione sulla linea temporale oppure in un file di classe che estenda la classe MovieClip o sia collegato a un simbolo presente nella libreria. Nota: questo gestore di eventi è supportato in Flash Lite solo se System.capabilities.hasMouse è true o System.capabilities.hasStylus è true. Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente viene definita una funzione per il metodo onDragOut che invia un'azione trace() al pannello Output: my_mc.onDragOut = function () { trace ("onDragOut called"); } Vedete anche onDragOver (gestore MovieClip.onDragOver) Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 443 Classi ActionScript onDragOver (gestore MovieClip.onDragOver) onDragOver = function() {} Richiamato quando il puntatore viene trascinato fuori dall'oggetto e successivamente sopra di esso. È necessario definire una funzione che viene eseguita nel momento in cui il gestore di eventi viene richiamato. È possibile definire la funzione sulla linea temporale oppure in un file di classe che estenda la classe MovieClip o sia collegato a un simbolo presente nella libreria. Nota: questo gestore di eventi è supportato in Flash Lite solo se System.capabilities.hasMouse è true o System.capabilities.hasStylus è true. Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente viene definita una funzione per il metodo onDragOver che invia un'azione trace() al pannello Output: my_mc.onDragOver = function () { trace ("onDragOver called"); } Vedete anche onDragOut (gestore MovieClip.onDragOut) onEnterFrame (gestore MovieClip.onEnterFrame) onEnterFrame = function() {} Richiamato ripetutamente alla frequenza dei fotogrammi del file SWF. La funzione assegnata dall'utente al gestore di eventi onEnterFrame viene elaborata prima di qualsiasi altro codice ActionScript associato ai fotogrammi interessati. È necessario definire una funzione che viene eseguita nel momento in cui il gestore di eventi viene richiamato. È possibile definire la funzione sulla linea temporale oppure in un file di classe che estenda la classe MovieClip o sia collegato a un simbolo presente nella libreria. Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente viene definita una funzione per il gestore di eventi onEnterFrame che invia un'azione trace() al pannello Output: my_mc.onEnterFrame = function () { trace ("onEnterFrame called"); } onKeyDown (gestore MovieClip.onKeyDown) onKeyDown = function() {} Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 444 Classi ActionScript Richiamato quando un clip filmato è attivo e viene premuto un tasto. Il gestore di eventi onKeyDown viene richiamato senza parametri. I metodi Key.getAscii() e Key.getCode() consentono di determinare quale tasto è stato premuto. È necessario definire una funzione che viene eseguita nel momento in cui il gestore di eventi viene richiamato. È possibile definire la funzione sulla linea temporale oppure in un file di classe che estenda la classe MovieClip o sia collegato a un simbolo presente nella libreria. Il gestore di eventi onKeyDown funziona solo se il clip filmato è stato attivato. Innanzitutto, la proprietà MovieClip.focusEnabled per il clip filmato deve essere impostata su true. Quindi, il clip deve essere attivato. Per attivarlo è possibile utilizzare Selection.setFocus() o impostare il tasto Tab per spostarsi sul clip. Se si utilizza Selection.setFocus(), il percorso del clip filmato deve essere passato a Selection.setFocus(). È molto facile che altri elementi ridiventino attivi dopo che viene mosso il mouse. Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente viene definita una funzione per il metodo onKeyDown() che invia un'azione trace() al pannello Output: Creare un clip filmato denominato my_mc e aggiungere il seguente codice ActionScript al file FLA o AS: my_mc.onKeyDown = function () { trace ("key was pressed"); } Per il corretto funzionamento del gestore di eventi onKeyDown, è necessario che il clip filmato sia attivo. Aggiungere il codice ActionScript seguente per impostare lo stato attivo: my_mc.tabEnabled = true; my_mc.focusEnabled = true; Selection.setFocus(my_mc); Quando si passa al clip filmato e si preme un tasto, nel pannello Output viene visualizzato key was pressed: Questa operazione non viene tuttavia eseguita dopo lo spostamento del mouse, poiché il clip filmato ha perso lo stato attivo. Nella maggior parte dei casi, sarà quindi necessario utilizzare Key.onKeyDown. Vedete anche getAscii (metodo Key.getAscii), getCode (metodo Key.getCode), focusEnabled (proprietà MovieClip.focusEnabled), setFocus (metodo Selection.setFocus), onKeyDown (listener di eventi Key.onKeyDown), onKeyUp (gestore MovieClip.onKeyUp) onKeyUp (gestore MovieClip.onKeyUp) onKeyUp = function() {} Richiamato quando viene rilasciato un tasto. Il gestore di eventi onKeyUp viene richiamato senza parametri. I metodi Key.getAscii() e Key.getCode() consentono di determinare quale tasto è stato premuto. È necessario definire una funzione che viene eseguita nel momento in cui il gestore di eventi viene richiamato. È possibile definire la funzione sulla linea temporale oppure in un file di classe che estenda la classe MovieClip o sia collegato a un simbolo presente nella libreria. Il gestore di eventi onKeyUp funziona solo se il clip filmato è stato attivato. Innanzitutto, la proprietà MovieClip.focusEnabled per il clip filmato deve essere impostata su true. Quindi, il clip deve essere attivato. Per attivarlo è possibile utilizzare Selection.setFocus() o impostare il tasto Tab per spostarsi sul clip. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 445 Classi ActionScript Se si utilizza Selection.setFocus(), il percorso del clip filmato deve essere passato a Selection.setFocus(). È molto facile che altri elementi ridiventino attivi dopo che viene mosso il mouse. Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente viene definita una funzione per il metodo onKeyUp che invia un'azione trace() al pannello Output: my_mc.onKeyUp = function () { trace ("onKey called"); } Nell'esempio seguente viene impostato lo stato attivo: my_mc.focusEnabled = true; Selection.setFocus(my_mc); Vedete anche getAscii (metodo Key.getAscii), getCode (metodo Key.getCode), focusEnabled (proprietà MovieClip.focusEnabled), setFocus (metodo Selection.setFocus), onKeyDown (listener di eventi Key.onKeyDown)onKeyDown (gestore MovieClip.onKeyDown) onKillFocus (gestore MovieClip.onKillFocus) onKillFocus = function(newFocus:Object) {} Richiamato quando un clip filmato viene disattivato. Il metodo onKillFocus riceve un solo parametro, newFocus, che è un oggetto che rappresenta il nuovo oggetto che viene attivato. Se non viene attivato alcun oggetto, newFocus contiene il valore null. È necessario definire una funzione che viene eseguita nel momento in cui il gestore di eventi viene richiamato. È possibile definire la funzione sulla linea temporale oppure in un file di classe che estenda la classe MovieClip o sia collegato a un simbolo presente nella libreria. Disponibilità Flash Lite 2.0 Parametri newFocus:Object - L'oggetto che viene attivato. Esempio Nell'esempio seguente vengono visualizzate informazioni sul clip filmato che non è più attivo e sull'istanza che riceve lo stato attivo. I due clip filmato, denominati my_mc e other_mc, si trovano sullo stage. È possibile aggiungere il codice ActionScript seguente al documento AS o FLA: my_mc.onRelease = Void; other_mc.onRelease = Void; my_mc.onKillFocus = function(newFocus) { trace("onKillFocus called, new focus is: "+newFocus); }; Quando si preme il tasto Tab per spostarsi tra due istanze, nel pannello Output vengono visualizzate le informazioni. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 446 Classi ActionScript Vedete anche onSetFocus (gestore MovieClip.onSetFocus) onLoad (gestore MovieClip.onLoad) onLoad = function() {} Richiamato quando per il clip filmato viene creata un'istanza e il clip filmato viene visualizzato nella linea temporale. È necessario definire una funzione che viene eseguita nel momento in cui il gestore di eventi viene richiamato. È possibile definire la funzione sulla linea temporale oppure in un file di classe che estenda la classe MovieClip o sia collegato a un simbolo presente nella libreria. Questo gestore può essere utilizzato solo con i clip filmato per i quali un simbolo della libreria è associato a una classe. Per richiamare un gestore di eventi quando viene caricato uno specifico clip filmato (ad esempio, quando si utilizza MovieClip.loadMovie() per caricare un file SWF in modo dinamico), anziché questo gestore utilizzare il gestore onClipEvent(load) o la classe MovieClipLoader. A differenza di MovieClip.onLoad, quando viene caricato un clip filmato qualunque, vengono richiamati gli altri gestori. Disponibilità Flash Lite 2.0 Esempio In questo esempio viene illustrato come utilizzare il gestore di eventi onLoad in una definizione di classe ActionScript 2.0 che estende la classe MovieClip. Creare innanzitutto un file di classe denominato Oval.as e definire un metodo della classe denominato onLoad(); verificare che il file di classe sia inserito nel percorso di classe corretto: // contents of Oval.as class Oval extends MovieClip{ public function onLoad () { trace ("onLoad called"); } } Creare quindi un simbolo di clip filmato nella libreria e denominarlo Oval. Fare clic per aprire il menu di scelta rapida (in genere con il pulsante destro del mouse) sul simbolo nel pannello Libreria, quindi selezionare Concatenamento dal menu di scelta rapida. Fare clic su "Esporta per ActionScript" e inserire la parola "Ovale" (senza virgolette) nei campi "Identificatore" e "Classe AS 2.0". Lasciare selezionata la casella di controllo Esporta nel primo fotogramma, quindi fare clic su OK. Passare al primo fotogramma del file e immettere il codice seguente nel pannello Azioni: var myOval:Oval = Oval(attachMovie("Oval","Oval_1",1)); Effettuare infine una prova del filmato; dovrebbe essere visualizzato il testo "onLoad called". Vedete anche loadMovie (metodo MovieClip.loadMovie), Gestore onClipEvent(), MovieClipLoader onMouseDown (gestore MovieClip.onMouseDown) onMouseDown = function() {} Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 447 Classi ActionScript Richiamato quando viene premuto il pulsante del mouse. È necessario definire una funzione che viene eseguita nel momento in cui il gestore di eventi viene richiamato. È possibile definire la funzione sulla linea temporale oppure in un file di classe che estenda la classe MovieClip o sia collegato a un simbolo presente nella libreria. Nota: questo gestore di eventi è supportato in Flash Lite solo se System.capabilities.hasMouse è true o System.capabilities.hasStylus è true. Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente viene definita una funzione per il metodo onMouseDown che invia un'azione trace() al pannello Output: my_mc.onMouseDown = function () { trace ("onMouseDown called"); } onMouseMove (gestore MovieClip.onMouseMove) onMouseMove = function() {} Richiamato allo spostamento del mouse. È necessario definire una funzione che viene eseguita nel momento in cui il gestore di eventi viene richiamato. È possibile definire la funzione sulla linea temporale oppure in un file di classe che estenda la classe MovieClip o sia collegato a un simbolo presente nella libreria. Nota: questo gestore di eventi è supportato in Flash Lite solo se System.capabilities.hasMouse è true. Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente viene definita una funzione per il metodo onMouseMove che invia un'azione trace() al pannello Output: my_mc.onMouseMove = function () { trace ("onMouseMove called"); } onMouseUp (gestore MovieClip.onMouseUp) onMouseUp = function() {} Richiamato quando viene rilasciato il pulsante del mouse. È necessario definire una funzione che viene eseguita nel momento in cui il gestore di eventi viene richiamato. È possibile definire la funzione sulla linea temporale oppure in un file di classe che estenda la classe MovieClip o sia collegato a un simbolo presente nella libreria. Nota: questo gestore di eventi è supportato in Flash Lite solo se System.capabilities.hasMouse è true o System.capabilities.hasStylus è true. Disponibilità Flash Lite 2.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 448 Classi ActionScript Esempio Nell'esempio seguente viene definita una funzione per il metodo onMouseUp che invia un'azione trace() al pannello Output: my_mc.onMouseUp = function () { trace ("onMouseUp called"); } onPress (gestore MovieClip.onPress) onPress = function() {} Richiamato quando si fa clic con il mouse mentre il puntatore si trova sopra un clip filmato. È necessario definire una funzione che viene eseguita nel momento in cui il gestore di eventi viene richiamato. È possibile definirlo nella libreria. Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente viene definita una funzione per il metodo onPress che invia un'azione trace() al pannello Output: my_mc.onPress = function () { trace ("onPress called"); } onRelease (gestore MovieClip.onRelease) onRelease = function() {} Richiamato quando il pulsante del mouse viene rilasciato sopra un clip filmato. È necessario definire una funzione che viene eseguita nel momento in cui il gestore di eventi viene richiamato. È possibile definire la funzione sulla linea temporale oppure in un file di classe che estenda la classe MovieClip o sia collegato a un simbolo presente nella libreria. Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente viene definita una funzione per il metodo onRelease che invia un'azione trace() al pannello Output: my_mc.onRelease = function () { trace ("onRelease called"); } onReleaseOutside (gestore MovieClip.onReleaseOutside) onReleaseOutside = function() {} Richiamato quando il pulsante del mouse è stato premuto all'interno dell'area del clip filmato e successivamente rilasciato fuori della stessa. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 449 Classi ActionScript È necessario definire una funzione che viene eseguita nel momento in cui il gestore di eventi viene richiamato. È possibile definire la funzione sulla linea temporale oppure in un file di classe che estenda la classe MovieClip o sia collegato a un simbolo presente nella libreria. Nota: questo gestore di eventi è supportato in Flash Lite solo se System.capabilities.hasMouse è true o System.capabilities.hasStylus è true. Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente viene definita una funzione per il metodo onReleaseOutside che invia un'azione trace() al pannello Output: my_mc.onReleaseOutside = function () { trace ("onReleaseOutside called"); } onRollOut (gestore MovieClip.onRollOut) onRollOut = function() {} Richiamato quando il puntatore viene spostato fuori dell'area del clip filmato. È necessario definire una funzione che viene eseguita nel momento in cui il gestore di eventi viene richiamato. È possibile definire la funzione sulla linea temporale oppure in un file di classe che estenda la classe MovieClip o sia collegato a un simbolo presente nella libreria. Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente viene definita una funzione per il metodo onRollOut che invia un'azione trace() al pannello Output: my_mc.onRollOut = function () { trace ("onRollOut called"); } onRollOver (gestore MovieClip.onRollOver) onRollOver = function() {} Richiamato quando il puntatore viene spostato sopra l'area del clip filmato. È necessario definire una funzione che viene eseguita nel momento in cui il gestore di eventi viene richiamato. È possibile definire la funzione sulla linea temporale oppure in un file di classe che estenda la classe MovieClip o sia collegato a un simbolo presente nella libreria. Disponibilità Flash Lite 2.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 450 Classi ActionScript Esempio Nell'esempio seguente viene definita una funzione per il metodo onRollOver che invia un'azione trace() al pannello Output: my_mc.onRollOver = function () { trace ("onRollOver called"); } onSetFocus (gestore MovieClip.onSetFocus) onSetFocus = function(oldFocus:Object) {} Richiamato quando un clip filmato viene attivato. Il parametro oldFocus indica l'oggetto che viene disattivato. Ad esempio, se l'utente preme il tasto Tab per passare da un clip filmato a un campo di testo, oldFocus contiene l'istanza del clip filmato. Se in precedenza non è stato attivato alcun oggetto, oldFocus contiene il valore null. È necessario definire una funzione che viene eseguita nel momento in cui il gestore di eventi viene richiamato. È possibile definire la funzione sulla linea temporale oppure in un file di classe che estenda la classe MovieClip o sia collegato a un simbolo presente nella libreria. Disponibilità Flash Lite 2.0 Parametri oldFocus:Object - L'oggetto che viene disattivato. Esempio Nell'esempio seguente vengono visualizzate informazioni sul clip filmato attivato e sull'istanza attiva in precedenza. I due clip filmato, denominati my_mc e other_mc, si trovano sullo stage. Aggiungere il codice ActionScript seguente al documento AS o FLA: my_mc.onRelease = Void; other_mc.onRelease = Void; my_mc.onSetFocus = function(oldFocus) { trace("onSetFocus called, previous focus was: "+oldFocus); } Quando si preme il tasto Tab tra due istanze, nel pannello Output vengono visualizzate le informazioni. Vedete anche onKillFocus (gestore MovieClip.onKillFocus) onUnload (gestore MovieClip.onUnload) onUnload = function() {} Richiamato nel primo fotogramma dopo che il clip filmato è stato rimosso dalla linea temporale. Le azioni associate al gestore di eventi onUnload vengono elaborate prima di associare qualunque azione al fotogramma interessato. È necessario definire una funzione che viene eseguita nel momento in cui il gestore di eventi viene richiamato. È possibile definire la funzione sulla linea temporale oppure in un file di classe che estenda la classe MovieClip o sia collegato a un simbolo presente nella libreria. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 451 Classi ActionScript Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente viene definita una funzione per il metodo MovieClip.onUnload che invia un'azione trace() al pannello Output: my_mc.onUnload = function () { trace ("onUnload called"); } _parent (proprietà MovieClip._parent) public _parent : MovieClip Un riferimento al clip filmato o all'oggetto che contiene il clip filmato o l'oggetto corrente. L'oggetto corrente è l'oggetto a cui fa riferimento la proprietà _parent. Utilizzare la proprietà _parent per specificare un percorso relativo per i clip filmato o gli oggetti che si trovano sopra il clip filmato o per l'oggetto corrente. È possibile utilizzare _parent per spostare verso l'alto più livelli nell'elenco di visualizzazione, come illustrato di seguito: this._parent._parent._alpha = 20; Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente viene tracciato il riferimento a un clip filmato e alla relativa relazione con la linea temporale principale. Creare un clip filmato con il nome di istanza my_mc e aggiungerlo alla linea temporale principale. Aggiungere il codice ActionScript seguente al file FLA o AS: my_mc.onRelease = function() { trace("You clicked the movie clip: "+this); trace("The parent of "+this._name+" is: "+this._parent); } Quando si fa clic sul clip filmato, nel pannello Output vengono visualizzate le informazioni seguenti: You clicked the movie clip: _level0.my_mc The parent of my_mc is: _level0 Vedete anche _parent (proprietà Button._parent), Proprietà _root, Funzione targetPath, _parent (proprietà TextField._parent) play (metodo MovieClip.play) public play() : Void Sposta l'indicatore di riproduzione nella linea temporale del clip filmato. È possibile estendere i metodi e i gestori di eventi della classe MovieClip creando una sottoclasse. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 452 Classi ActionScript Disponibilità Flash Lite 2.0 Esempio Utilizzare il codice ActionScript seguente per riprodurre la linea temporale principale di un file SWF. Questo codice ActionScript si riferisce a un pulsante di un clip filmato denominato my_mc sulla linea temporale principale: stop(); my_mc.onRelease = function() { this._parent.play(); }; Utilizzare il codice ActionScript seguente per riprodurre la linea temporale di un clip filmato in un file SWF. Questo codice ActionScript si riferisce a un pulsante denominato my_btn sulla linea temporale principale che riproduce un clip filmato denominato animation_mc: animation_mc.stop(); my_btn.onRelease = function(){ animation_mc.play(); }; Vedete anche Funzione play, gotoAndPlay (metodo MovieClip.gotoAndPlay), Funzione gotoAndPlay prevFrame (metodo MovieClip.prevFrame) public prevFrame() : Void Invia l'indicatore di riproduzione al fotogramma precedente e lo ferma. È possibile estendere i metodi e i gestori di eventi della classe MovieClip creando una sottoclasse. Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente, due pulsanti di clip filmato controllano la linea temporale. Il pulsante prev_mc sposta l'indicatore di riproduzione sul fotogramma precedente, mentre il pulsante next_mc sposta l'indicatore di riproduzione sul fotogramma successivo. Aggiungere contenuto a una serie di fotogrammi sulla linea temporale e aggiungere il codice ActionScript seguente al fotogramma 1 della linea temporale: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 453 Classi ActionScript stop(); prev_mc.onRelease = function() { var parent_mc:MovieClip = this._parent; if (parent_mc._currentframe>1) { parent_mc.prevFrame(); } else { parent_mc.gotoAndStop(parent_mc._totalframes); } }; next_mc.onRelease = function() { var parent_mc:MovieClip = this._parent; if (parent_mc._currentframe<parent_mc._totalframes) { parent_mc.nextFrame(); } else { parent_mc.gotoAndStop(1); } }; Vedete anche Funzione prevFrame _quality (proprietà MovieClip._quality) public _quality : String Imposta o recupera la qualità di rendering utilizzata per un file SWF. I caratteri del dispositivo sono sottoposti ad aliasing e pertanto non vengono modificati dalla proprietà _quality. La proprietà _quality può essere impostata sui valori seguenti: Valore Descrizione Antialiasing personalizzato "LOW" Qualità di rendering bassa. Alle funzioni non viene applicata la funzione di antialiasing. "MEDIUM" Qualità di rendering media. Si tratta di un'impostazione adatta per i filmati che non contengono testo. Le immagini vengono sottoposte ad antialiasing utilizzando una griglia di 2 x 2 pixel. "HIGH" Qualità di rendering alta. È Le immagini vengono sottoposte ad l'impostazione predefinita antialiasing utilizzando una griglia di 4 x 4 pixel. utilizzata da Flash per la qualità di rendering. "BEST" Qualità di rendering molto alta. Le immagini vengono sottoposte ad antialiasing utilizzando una griglia di 4 x 4 pixel. Nota: benché sia possibile specificare questa proprietà per un oggetto Movie Clip, si tratta anche di una proprietà globale ed è possibile specificarne il valore semplicemente come _quality. Disponibilità Flash Lite 2.0 Esempio Questo esempio imposta la qualità di rendering di un clip filmato di nome my_mc su LOW: my_mc._quality = "LOW"; Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 454 Classi ActionScript Vedete anche Proprietà _quality removeMovieClip (metodo MovieClip.removeMovieClip) public removeMovieClip() : Void Rimuove un'istanza del clip filmato creata con duplicateMovieClip(), MovieClip.duplicateMovieClip(), MovieClip.createEmptyMovieClip(), o MovieClip.attachMovie(). Questo metodo non rimuove un clip filmato assegnato a un valore di profondità negativo. Per impostazione predefinita, ai clip filmato creati con lo strumento di creazione vengono assegnati valori di profondità negativi. Per rimuovere un clip filmato al quale è assegnato un valore di profondità negativo, utilizzare innanzitutto MovieClip.swapDepths() per spostare il clip filmato su un valore di profondità positivo. È possibile estendere i metodi e i gestori di eventi della classe MovieClip creando una sottoclasse. Disponibilità Flash Lite 2.0 Esempio Ogni volta che si fa clic su un pulsante nell'esempio seguente, si associa un'istanza di clip filmato sullo stage in una posizione casuale. Quando si fa clic sull'istanza di un clip filmato, l'istanza viene rimossa dal file SWF. function randRange(min:Number, max:Number):Number { var randNum:Number = Math.round(Math.random()*(max-min))+min; return randNum; } var bugNum:Number = 0; addBug_btn.onRelease = addBug; function addBug() { var thisBug:MovieClip = this._parent.attachMovie("bug_id", "bug"+bugNum+"_mc", bugNum, {_x:randRange(50, 500), _y:randRange(50, 350)}); thisBug.onRelease = function() { this.removeMovieClip(); }; bugNum++; } Vedete anche Funzione duplicateMovieClip, createEmptyMovieClip (metodo MovieClip.createEmptyMovieClip), duplicateMovieClip (metodo MovieClip.duplicateMovieClip), attachMovie (metodo MovieClip.attachMovie)swapDepths (metodo MovieClip.swapDepths) _rotation (proprietà MovieClip._rotation) public _rotation : Number Specifica la rotazione del clip filmato, espressa in gradi, rispetto alla posizione originale. I valori da 0 a 180 rappresentano la rotazione oraria, quelli da 0 a -180 la rotazione antioraria. I valori esterni a questo intervallo vengono aggiunti o sottratti a 360 per ottenere un valore interno all'intervallo. Ad esempio, l'istruzione my_mc._rotation = 450 è uguale a my_mc._rotation = 90. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 455 Classi ActionScript Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente viene creata dinamicamente un'istanza clip filmato denominato triangle. Quando si esegue il file SWF, fare clic sul clip filmato per ruotarlo: this.createEmptyMovieClip("triangle", this.getNextHighestDepth()); triangle.beginFill(0x0000FF, 100); triangle.moveTo(100, 100); triangle.lineTo(100, 150); triangle.lineTo(150, 100); triangle.lineTo(100, 100); triangle.onMouseUp= function() { this._rotation += 15; }; Vedete anche _rotation (proprietà Button._rotation), _rotation (proprietà TextField._rotation) setMask (metodo MovieClip.setMask) public setMask(mc:Object) : Void Il clip filmato del parametro mc viene reso come una maschera che rivela il clip filmato richiedente. Il metodo setmask() consente ai clip filmato con più fotogrammi e con contenuto complesso e su più livelli di fungere da maschere (un'operazione possibile mediante livelli maschera). Se in un clip filmato mascherato sono presenti dei caratteri dispositivo, questi ultimi vengono disegnati ma non mascherati. Non è possibile impostare un clip filmato come maschera di se stesso ad esempio, my_mc.setMask(my_mc). Se si crea un livello maschera che contiene un clip filmato e successivamente vi si applica il metodo setMask(), la chiamata a setMask() ha la priorità. Questo comportamento non è reversibile. Ad esempio, è possibile che un clip filmato sia presente in un livello maschera di nome UIMask, che maschera un altro livello che contiene un altro clip filmato di nome UIMaskee. Se mentre viene riprodotto il file SWF si chiama il metodo UIMask.setMask(UIMaskee), da quel punto in poi UIMask viene mascherato da UIMaskee. Per annullare una maschera creata con ActionScript, passare il valore null al metodo setMask(). Il codice seguente annulla la maschera senza incidere sul livello maschera nella linea temporale. UIMask.setMask(null); È possibile estendere i metodi e i gestori di eventi della classe MovieClip creando una sottoclasse. Disponibilità Flash Lite 2.0 Parametri mc:Object - Il nome dell'istanza di un clip filmato da utilizzare come maschera. Può essere un valore String o MovieClip. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 456 Classi ActionScript Esempio Nel codice riportato di seguito il clip filmato circleMask_mc viene utilizzato per mascherare il clip filmato theMaskee_mc: theMaskee_mc.setMask(circleMask_mc); _soundbuftime (proprietà MovieClip._soundbuftime) public _soundbuftime : Number Specifica il numero di secondi per cui un suono viene inserito nel prebuffer prima che ne inizi lo streaming. Nota: benché sia possibile specificare questa proprietà per un oggetto MovieClip, si tratta in realtà di una proprietà globale che si applica a tutti i suoni caricati ed è possibile specificarne il valore semplicemente come _soundbuftime. Se si imposta questa proprietà per un oggetto MovieClip, viene in effetti impostata la proprietà globale. Disponibilità Flash Lite 2.0 Vedete anche Proprietà _soundbuftime startDrag (metodo MovieClip.startDrag) public startDrag([lockCenter:Boolean], [left:Number], [top:Number], [right:Number], [bottom:Number]) : Void Consente all'utente di trascinare il clip filmato specificato. È possibile trascinare il clip filmato fino a quando il trascinamento non viene interrotto esplicitamente mediante una chiamata a MovieClip.stopDrag() o non viene reso trascinabile un altro clip filmato. È possibile trascinare un solo clip filmato alla volta. È possibile estendere i metodi e i gestori di eventi della classe MovieClip creando una sottoclasse. Nota: questo metodo è supportato in Flash Lite solo se System.capabilities.hasMouse è true o System.capabilities.hasStylus è true. Disponibilità Flash Lite 2.0 Parametri lockCenter:Boolean [opzionale] - Valore booleano che specifica che il clip filmato trascinabile è bloccato al centro della posizione del mouse (true) oppure bloccato nel punto in cui l'utente aveva fatto clic sul clip filmato la prima volta (false). left:Number [opzionale] - Valore relativo alle coordinate del clip filmato principale, che indica un rettangolo di delimitazione per il clip filmato. top:Number [opzionale] - Valore relativo alle coordinate del clip filmato principale, che indica un rettangolo di delimitazione per il clip filmato. right:Number [opzionale] - Valore relativo alle coordinate del clip filmato principale, che indica un rettangolo di delimitazione per il clip filmato. bottom:Number [opzionale] - Valore relativo alle coordinate del clip filmato principale, che indica un rettangolo di delimitazione per il clip filmato. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 457 Classi ActionScript Esempio Nell'esempio seguente viene creata l'istanza di un clip filmato trascinabile denominata mc_1: this.createEmptyMovieClip("mc_1", 1); with (mc_1) { lineStyle(1, 0xCCCCCC); beginFill(0x4827CF); moveTo(0, 0); lineTo(80, 0); lineTo(80, 60); lineTo(0, 60); lineTo(0, 0); endFill(); } mc_1.onPress = function() { this.startDrag(); }; mc_1.onRelease = function() { this.stopDrag(); }; Vedete anche _droptarget (MovieClip._droptarget, proprietà), Funzione startDrag, stopDrag (metodo MovieClip.stopDrag) stop (metodo MovieClip.stop) public stop() : Void Interrompe il clip filmato in riproduzione. È possibile estendere i metodi e i gestori di eventi della classe MovieClip creando una sottoclasse. Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente viene illustrato come interrompere un clip filmato denominato aMovieClip: aMovieClip.stop(); Vedete anche Funzione stop stopDrag (metodo MovieClip.stopDrag) public stopDrag() : Void Termina un metodo MovieClip.startDrag(). Un clip filmato che è stato reso trascinabile mediante questo metodo rimane tale finché non viene aggiunto un metodo stopDrag() o fino a quando un altro clip filmato non diventa trascinabile. È possibile trascinare un solo clip filmato alla volta. È possibile estendere i metodi e i gestori di eventi della classe MovieClip creando una sottoclasse. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 458 Classi ActionScript Nota: questo metodo è supportato in Flash Lite solo se System.capabilities.hasMouse è true o System.capabilities.hasStylus è true. Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente viene creata l'istanza di un clip filmato trascinabile denominata mc_1: this.createEmptyMovieClip("mc_1", 1); with (mc_1) { lineStyle(1, 0xCCCCCC); beginFill(0x4827CF); moveTo(0, 0); lineTo(80, 0); lineTo(80, 60); lineTo(0, 60); lineTo(0, 0); endFill(); } mc_1.onPress = function() { this.startDrag(); }; mc_1.onRelease = function() { this.stopDrag(); }; Vedete anche _droptarget (MovieClip._droptarget, proprietà), startDrag (metodo MovieClip.startDrag), Funzione stopDrag swapDepths (metodo MovieClip.swapDepths) public swapDepths(target:Object) : Void Scambia l'impilamento, detto anche livello di profondità (z-order), di questo clip filmato con il clip filmato specificato dal parametro target o con il clip filmato che occupa il livello di profondità specificato nel parametro target. Entrambi i clip filmato devono avere lo stesso clip filmato principale. Lo scambio del livello di profondità dei clip filmato ha l'effetto di spostare un clip filmato in primo piano o dietro all'altro. Se un clip filmato sta eseguendo un'interpolazione quando si chiama questo metodo, l'interpolazione viene interrotta. È possibile estendere i metodi e i gestori di eventi della classe MovieClip creando una sottoclasse. Disponibilità Flash Lite 2.0 Parametri target:Object - Questo parametro può avere uno dei due formati seguenti: • Un numero che specifica il livello di profondità in cui deve essere collocato il clip filmato. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 459 Classi ActionScript • Una stringa che specifica il clip filmato la cui profondità viene sostituita con il clip filmato per il quale viene applicato il metodo. Entrambi i clip filmato devono avere lo stesso clip filmato principale. Esempio Nell'esempio seguente viene scambiato l'ordine di impilamento di due istanze di clip filmato. Sovrapporre due istanze del clip filmato, denominate myMC1_mc e myMC2_mc, sullo stage e quindi aggiungere il seguente script alla linea temporale: myMC1_mc.onRelease = function() { this.swapDepths(myMC2_mc); }; myMC2_mc.onRelease = function() { this.swapDepths(myMC1_mc); }; Vedete anche Proprietà _level, getDepth (metodo MovieClip.getDepth), getInstanceAtDepth (metodo MovieClip.getInstanceAtDepth), getNextHighestDepth (metodo MovieClip.getNextHighestDepth) tabChildren (proprietà MovieClip.tabChildren) public tabChildren : Boolean Determina se gli elementi secondari di un clip filmato vengono inclusi nell'ordine di tabulazione automatico. Se la proprietà tabChildren è undefined o true, gli elementi secondari di un clip filmato vengono inclusi nell'ordine di tabulazione automatico. Se il valore di tabChildren è false, gli elementi secondari di un clip filmato non vengono inclusi nell'ordine di tabulazione automatico. Il valore predefinito è undefined. Disponibilità Flash Lite 2.0 Esempio Un widget dell'interfaccia di tipo casella di riepilogo creato come clip filmato contiene diversi elementi. L'utente può fare clic su ogni elemento per selezionarlo, quindi ogni elemento rappresenta un pulsante. Solo la casella di riepilogo stessa dovrebbe, tuttavia, corrispondere a uno spazio di tabulazione. Gli elementi all'interno della casella di riepilogo dovrebbero essere esclusi dall'ordine di tabulazione. Per eseguire questa operazione, impostare la proprietà tabChildren della casella di riepilogo su false. La proprietà tabChildren non ha alcun effetto se viene utilizzata la proprietà tabIndex; la proprietà tabChildren incide solo sull'ordine di tabulazione automatico. Nell'esempio seguente viene disattivata la tabulazione per tutti i clip filmato secondari all'interno di un clip filmato principale denominato menu_mc: menu_mc.onRelease = function(){}; menu_mc.menu1_mc.onRelease = function(){}; menu_mc.menu2_mc.onRelease = function(){}; menu_mc.menu3_mc.onRelease = function(){}; menu_mc.menu4_mc.onRelease = function(){}; menu_mc.tabChildren = false; Modificare l'ultima riga di codice come riportato di seguito, in modo da includere le istanze di clip filmato secondarie di menu_mc nell'ordine di tabulazione automatico: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 460 Classi ActionScript menu_mc.tabChildren = true; Vedete anche tabIndex (proprietà Button.tabIndex), tabEnabled (proprietà MovieClip.tabEnabled), tabIndex (proprietà MovieClip.tabIndex), tabIndex (proprietà TextField.tabIndex) tabEnabled (proprietà MovieClip.tabEnabled) public tabEnabled : Boolean Specifica se il clip filmato è incluso nell'ordine di tabulazione automatico. È non definito per impostazione predefinita. Se la proprietà tabEnablednon è definita, l'oggetto viene incluso nell'ordine di tabulazione automatico solo se definisce almeno un gestore di clip filmato, ad esempio MovieClip.onRelease. Se tabEnabled è true, l'oggetto viene incluso nell'ordine di tabulazione automatico. Se anche la proprietà tabIndex è impostata su un valore, l'oggetto viene incluso a sua volta nell'ordine di tabulazione personalizzato. Se tabEnabled è false, l'oggetto non viene incluso nell'ordine di tabulazione automatico o personalizzato, nemmeno nel caso in cui la proprietà tabIndex sia impostata. Tuttavia, se MovieClip.tabChildren è true, è comunque possibile includere gli elementi secondari del clip filmato nell'ordine di tabulazione automatico, anche se tabEnabled è impostata su false. Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente, myMC2_mc non viene incluso nell'ordine di tabulazione automatico: myMC1_mc.onRelease = function() {}; myMC2_mc.onRelease = function() {}; myMC3_mc.onRelease = function() {}; myMC2_mc.tabEnabled = false; Vedete anche onRelease (gestore MovieClip.onRelease), tabEnabled (proprietà Button.tabEnabled), tabChildren (proprietà MovieClip.tabChildren), tabIndex (proprietà MovieClip.tabIndex), tabEnabled (proprietà TextField.tabEnabled) tabIndex (proprietà MovieClip.tabIndex) public tabIndex : Number Consente di personalizzare l'ordine di tabulazione degli oggetti in un filmato. La proprietà tabIndexnon è definita per impostazione predefinita. È possibile impostare la proprietà tabIndex su un'istanza di pulsante, clip filmato o campo di testo. Se un oggetto di un file SWF contiene una proprietà tabIndex, l'ordine di tabulazione automatico viene disabilitato e l'ordine di tabulazione viene calcolato in base alle proprietà tabIndex degli oggetti presenti nel file SWF. L'ordine di tabulazione automatico include solo gli oggetti dotati delle proprietà tabIndex. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 461 Classi ActionScript La proprietà tabIndex deve essere un numero intero positivo. Gli oggetti vengono ordinati in base alle relative proprietà tabIndex, in ordine ascendente. Un oggetto con un valore tabIndex di 1 precede un oggetto con il valore tabIndex di 2. L'ordine di tabulazione personalizzato non tiene in considerazione le relazioni gerarchiche tra gli oggetti in un file SWF. Tutti gli oggetti del file SWF dotati di proprietà tabIndex vengono inseriti nell'ordine di tabulazione. Si consiglia di non utilizzare lo stesso valore di tabIndex per più oggetti. Disponibilità Flash Lite 2.0 Esempio Il seguente codice ActionScript imposta un ordine di tabulazione personalizzato per tre istanze di clip filmato. myMC1_mc.onRelease = function() {}; myMC2_mc.onRelease = function() {}; myMC3_mc.onRelease = function() {}; myMC1_mc.tabIndex = 2; myMC2_mc.tabIndex = 1; myMC3_mc.tabIndex = 3; Vedete anche tabIndex (proprietà Button.tabIndex), tabIndex (proprietà TextField.tabIndex) _target (proprietà MovieClip._target) public _target : String [read-only] Restituisce il percorso di destinazione dell'istanza del clip filmato in notazione a barra. Utilizzare la funzione eval() per convertire il percorso di destinazione in notazione del punto. Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente vengono visualizzati i percorsi target delle istanze di clip filmato in un file SWF, sia in notazione della barra che in notazione del punto. for (var i in this) { if (typeof (this[i]) == "movieclip") { trace("name: " + this[i]._name + ",\t target: " + this[i]._target + ",\t target(2):" + eval(this[i]._target)); } } _totalframes (proprietà MovieClip._totalframes) public _totalframes : Number [read-only] Restituisce il numero totale di fotogrammi dell'istanza del clip filmato specificata dal parametro MovieClip. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 462 Classi ActionScript Esempio Nell'esempio seguente, due pulsanti di clip filmato controllano la linea temporale. Il pulsante prev_mc sposta l'indicatore di riproduzione sul fotogramma precedente, mentre il pulsante next_mc sposta l'indicatore di riproduzione sul fotogramma successivo. Aggiungere contenuto a una serie di fotogrammi sulla linea temporale e aggiungere il codice ActionScript seguente al fotogramma 1 della linea temporale: stop(); prev_mc.onRelease = function() { var parent_mc:MovieClip = this._parent; if (parent_mc._currentframe>1) { parent_mc.prevFrame(); } else { parent_mc.gotoAndStop(parent_mc._totalframes); } }; next_mc.onRelease = function() { var parent_mc:MovieClip = this._parent; if (parent_mc._currentframe<parent_mc._totalframes) { parent_mc.nextFrame(); } else { parent_mc.gotoAndStop(1); } }; trackAsMenu (proprietà MovieClip.trackAsMenu) public trackAsMenu : Boolean Un valore booleano che indica se altri pulsanti o clip filmato possono ricevere eventi associati al rilascio del mouse o dello stilo. Se si trascina uno stilo o un mouse su un clip filmato e successivamente lo si rilascia su un altro clip filmato, l'evento onRelease viene registrato per il secondo clip filmato. In questo modo è possibile creare i menu per il secondo clip filmato. È possibile impostare la proprietà trackAsMenu su qualunque oggetto pulsante o clip filmato. Se la proprietà trackAsMenu non è stata definita, il comportamento predefinito è false. È possibile modificare la proprietà trackAsMenu in qualsiasi momento; al clip filmato modificato viene associato immediatamente il nuovo comportamento. Nota: questa proprietà è supportata in Flash Lite solo se System.capabilities.hasMouse è true o System.capabilities.hasStylus è true. Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente viene impostata la proprietà trackAsMenu per tre clip filmato sullo stage. Fare clic su un clip filmato e rilasciare il pulsante del mouse su un secondo clip filmato per visualizzare l'istanza che riceve l'evento. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 463 Classi ActionScript myMC1_mc.trackAsMenu = true; myMC2_mc.trackAsMenu = true; myMC3_mc.trackAsMenu = false; myMC1_mc.onRelease = clickMC; myMC2_mc.onRelease = clickMC; myMC3_mc.onRelease = clickMC; function clickMC() { trace("you clicked the "+this._name+" movie clip."); }; Vedete anche trackAsMenu (proprietà Button.trackAsMenu) transform (proprietà MovieClip.transform) public transform : Transform Un oggetto con proprietà relative alla matrice, alla trasformazione del colore e ai limiti di pixel di un clip filmato. Le specifiche proprietà matrix, colorTransform e tre proprietà di sola lettura (concatenatedMatrix, concatenatedColorTransform e pixelBounds) sono descritte nella voce relativa alla classe Transform. Ognuna delle proprietà dell'oggetto di trasformazione è, essa stessa, un oggetto. Questo aspetto è importante, poiché il solo modo per impostare nuovi valori per gli oggetti matrice o colorTransform consiste nel creare un oggetto e copiarlo nella proprietà transform.matrix o transform.colorTransform. Ad esempio, per aumentare il valore tx della matrice di un clip filmato, è necessario eseguire una copia dell'intero oggetto matrice, modificare la proprietà tx del nuovo oggetto e quindi copiare quest'ultimo nella proprietà matrix dell'oggetto di trasformazione: var myMatrix:Object = myDisplayObject.transform.matrix; myMatrix.tx += 10; myDisplayObject.transform.matrix = myMatrix; Non è possibile impostare direttamente la proprietà tx. Il codice seguente non ha effetto su myDisplayObject: myDisplayObject.transform.matrix.tx += 10; È inoltre possibile copiare un numero intero oggetto di trasformazione e assegnarlo alla proprietà di trasformazione di un altro clip filmato. Ad esempio, il codice seguente copia l'intero oggetto di trasformazione da myOldDisplayObj a myNewDisplayObj: myNewDisplayObj.transform = myOldDisplayObj.transform; Il nuovo clip filmato, myNewDisplayObj, dispone ora degli stessi valori relativi alla matrice, alla trasformazione del colore e ai limiti di pixel del clip filmato precedente, myOldDisplayObj. Disponibilità Flash Lite 3.1 Esempio L'esempio seguente mostra come utilizzare la proprietà transform di un clip filmato per accedere e modificare la posizione di un clip filmato mediante il posizionamento Matrix. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 464 Classi ActionScript import flash.geom.Matrix; var rect:MovieClip = createRectangle(20, 80, 0xFF0000); var translateMatrix:Matrix = new Matrix(); translateMatrix.translate(10, 0); rect.onPress = function() { var tmpMatrix:Matrix = this.transform.matrix; tmpMatrix.concat(translateMatrix); this.transform.matrix = tmpMatrix; } function createRectangle(width:Number, height:Number, color:Number, scope:MovieClip):MovieClip { scope = (scope == undefined) ? this : scope; var depth:Number = scope.getNextHighestDepth(); var mc:MovieClip = scope.createEmptyMovieClip("mc_" + depth, depth); mc.beginFill(color); mc.lineTo(0, height); mc.lineTo(width, height); mc.lineTo(width, 0); mc.lineTo(0, 0); return mc; } Vedete anche “Transform (flash.geom.Transform)” a pagina 666 unloadMovie (metodo MovieClip.unloadMovie) public unloadMovie() : Void Rimuove il contenuto di un'istanza di clip filmato. Le proprietà dell'istanza e i gestori del clip vengono conservati. Per rimuovere l'istanza insieme alle relative proprietà e ai gestori del clip, utilizzare MovieClip.removeMovieClip(). È possibile estendere i metodi e i gestori di eventi della classe MovieClip creando una sottoclasse. Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente viene scaricata un'istanza di clip filmato denominata box quando un utente fa clic sul clip filmato box: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 465 Classi ActionScript this.createEmptyMovieClip("box", 1); with (box) { lineStyle(1, 0xCCCCCC); beginFill(0x4827CF); moveTo(0, 0); lineTo(80, 0); lineTo(80, 60); lineTo(0, 60); lineTo(0, 0); endFill(); } box.onRelease = function() { box.unloadMovie(); }; Vedete anche removeMovieClip (metodo MovieClip.removeMovieClip), attachMovie (metodo MovieClip.attachMovie), loadMovie (metodo MovieClip.loadMovie), Funzione unloadMovie, Funzione unloadMovieNum _url (proprietà MovieClip._url) public _url : String [read-only] Recupera l'URL del file SWF, JPEG, GIF o PNG da cui è stato scaricato il clip filmato. Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente viene visualizzato l'URL dell'immagine caricata nell'istanza image_mc nel pannello Output. this.createEmptyMovieClip("image_mc", 1); var mclListener:Object = new Object(); mclListener.onLoadInit = function(target_mc:MovieClip) { trace("_url: "+target_mc._url); }; var image_mcl:MovieClipLoader = new MovieClipLoader(); image_mcl.addListener(mclListener); image_mcl.loadClip("http://www.helpexamples.com/flash/images/image1.jpg", image_mc); _visible (proprietà MovieClip._visible) public _visible : Boolean Un valore booleano che indica se il clip filmato è visibile. I clip filmato non visibili (quelli con la proprietà _visible impostata su false) sono disabilitati. Ad esempio, non è possibile fare clic su un pulsante presente in un clip filmato con _visible impostato sufalse. Disponibilità Flash Lite 2.0 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 466 Ultimo aggiornamento 4/5/2010 Classi ActionScript Esempio Nell'esempio seguente viene impostata la proprietà _visible per due clip filmato denominati myMC1_mc e myMC2_mc. La proprietà è impostata su true per un'istanza e su false per l'altra. Non è possibile fare clic sull'istanza myMC1_mc dopo che la proprietà _visible è stata impostata su false. myMC1_mc.onRelease = function() trace(this._name+"._visible this._visible = false; }; myMC2_mc.onRelease = function() trace(this._name+"._alpha = this._alpha = 0; }; { = false"); { 0"); Vedete anche _visible (proprietà Button._visible), _visible (proprietà TextField._visible) _width (proprietà MovieClip._width) public _width : Number La larghezza del clip filmato, espressa in pixel. Disponibilità Flash Lite 2.0 Esempio Nel seguente esempio di codice vengono visualizzate la larghezza e l'altezza di un clip filmato nel pannello Output: this.createEmptyMovieClip("triangle", this.getNextHighestDepth()); triangle.beginFill(0x0000FF, 100); triangle.moveTo(100, 100); triangle.lineTo(100, 150); triangle.lineTo(150, 100); triangle.lineTo(100, 100); trace(triangle._name + " = " + triangle._width + " X " + triangle._height + " pixels"); Vedete anche _height (proprietà MovieClip._height) _x (MovieClip._x, proprietà) public _x : Number Un numero intero che imposta la coordinata x di un clip filmato in relazione alle coordinate locali del clip filmato principale. Se un clip filmato si trova sulla linea temporale principale, le sue coordinate considerano l'angolo superiore sinistro dello stage come punto (0, 0). Se è all'interno di un altro clip filmato che contiene delle trasformazioni, il clip filmato utilizza il sistema di coordinate locali del clip filmato. Pertanto, se un clip filmato viene ruotato di 90 gradi in senso antiorario, l'elemento secondario del clip filmato eredita un sistema di coordinate che è ruotato di 90 gradi in senso antiorario. Le coordinate del clip filmato sono relative al punto di registrazione. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 467 Classi ActionScript Disponibilità Flash Lite 2.0 Vedete anche _xscale (proprietà MovieClip._xscale), _y (proprietà MovieClip._y), _yscale (proprietà MovieClip._yscale) _xmouse (proprietà MovieClip._xmouse) public _xmouse : Number [read-only] Restituisce la coordinata x della posizione del mouse. Nota: questa proprietà è supportata in Flash Lite solo se System.capabilities.hasMouse è true o System.capabilities.hasStylus è true. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente restituisce le coordinate correnti x e y del mouse sullo stage _level0) e in relazione a un clip filmato denominato my_mc sullo stage: this.createTextField("mouse_txt", this.getNextHighestDepth(), 0, 0, 150, 66); mouse_txt.html = true; mouse_txt.multiline = true; var row1_str:String = " \t<b>_xmouse\t</b><b>_ymouse</b>"; my_mc.onMouseMove = function() { mouse_txt.htmlText = "<textformat tabStops='[50,100]'>"; mouse_txt.htmlText += row1_str; mouse_txt.htmlText += "<b>_level0</b>\t"+_xmouse+"\t"+_ymouse; mouse_txt.htmlText += "<b>my_mc</b>\t"+this._xmouse+"\t"+this._ymouse; mouse_txt.htmlText += "</textformat>"; }; Vedete anche hasMouse (proprietà capabilities.hasMouse), _ymouse (proprietà MovieClip._ymouse) _xscale (proprietà MovieClip._xscale) public _xscale : Number Imposta la scala orizzontale (in percentuale) del clip filmato applicata dal punto di registrazione del clip filmato. Il punto di registrazione predefinito è (0,0). Se si modifica in scala il sistema di coordinate locale, vengono cambiate anche le impostazioni delle proprietà _x e _y, che sono definite in pixel. Ad esempio, quando il clip filmato principale viene modificato in scala del 50%, se si imposta la proprietà _y un oggetto nel clip filmato viene spostato per la metà dei pixel per cui verrebbe spostato se il filmato fosse al 100% delle proprie dimensioni. Disponibilità Flash Lite 2.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 468 Classi ActionScript Esempio Nell'esempio seguente viene creato un clip filmato in fase di runtime denominato box_mc. L'API di disegno viene utilizzata per disegnare un riquadro in questa istanza e, quando il mouse passa sopra il riquadro, al clip filmato viene applicata la modifica in scala orizzontale e verticale. Quando il mouse viene allontanato dall'istanza, viene ripristinata la modifica in scala precedente. this.createEmptyMovieClip("box_mc", 1); box_mc._x = 100; box_mc._y = 100; with (box_mc) { lineStyle(1, 0xCCCCCC); beginFill(0xEEEEEE); moveTo(0, 0); lineTo(80, 0); lineTo(80, 60); lineTo(0, 60); lineTo(0, 0); endFill(); }; box_mc.onRollOver = function() { this._x -= this._width/2; this._y -= this._height/2; this._xscale = 200; this._yscale = 200; }; box_mc.onRollOut = function() { this._xscale = 100; this._yscale = 100; this._x += this._width/2; this._y += this._height/2; }; Vedete anche _x (MovieClip._x, proprietà), _y (proprietà MovieClip._y), _yscale (proprietà MovieClip._yscale), _width (proprietà MovieClip._width) _y (proprietà MovieClip._y) public _y : Number Imposta la coordinata y di un clip filmato relativa alle coordinate locali del clip filmato principale. Se un clip filmato si trova sulla linea temporale principale, le sue coordinate considerano l'angolo superiore sinistro dello stage come (0,0). Se è all'interno di un altro clip filmato che contiene delle trasformazioni, il clip filmato utilizza il sistema di coordinate locali del clip filmato che lo racchiude. Pertanto, se un clip filmato viene ruotato di 90 gradi in senso antiorario, l'elemento secondario del clip filmato eredita un sistema di coordinate che è ruotato di 90 gradi in senso antiorario. Le coordinate del clip filmato sono relative al punto di registrazione. Disponibilità Flash Lite 2.0 Vedete anche _x (MovieClip._x, proprietà), _xscale (proprietà MovieClip._xscale), _yscale (proprietà MovieClip._yscale) Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 469 Classi ActionScript _ymouse (proprietà MovieClip._ymouse) public _ymouse : Number [read-only] Indica la coordinata y della posizione del mouse. Nota: questa proprietà è supportata in Flash Lite solo se System.capabilities.hasMouse è true o System.capabilities.hasStylus è true. Disponibilità Flash Lite 2.0 Esempio L'esempio seguente restituisce le coordinate correnti x e y del mouse sullo stage _level0) e in relazione a un clip filmato denominato my_mc sullo stage. this.createTextField("mouse_txt", this.getNextHighestDepth(), 0, 0, 150, 66); mouse_txt.html = true; mouse_txt.multiline = true; var row1_str:String = " \t<b>_xmouse\t</b><b>_ymouse</b>"; my_mc.onMouseMove = function() { mouse_txt.htmlText = "<textformat tabStops='[50,100]'>"; mouse_txt.htmlText += row1_str; mouse_txt.htmlText += "<b>_level0</b>\t"+_xmouse+"\t"+_ymouse; mouse_txt.htmlText += "<b>my_mc</b>\t"+this._xmouse+"\t"+this._ymouse; mouse_txt.htmlText += "</textformat>"; }; Vedete anche hasMouse (proprietà capabilities.hasMouse), _xmouse (proprietà MovieClip._xmouse) _yscale (proprietà MovieClip._yscale) public _yscale : Number Imposta la scala verticale (in percentuale) del clip filmato applicata dal punto di registrazione del clip filmato. Il punto di registrazione predefinito è (0,0). Se si modifica in scala il sistema di coordinate locale, vengono cambiate anche le impostazioni delle proprietà _x e _y, che sono definite in pixel. Ad esempio, quando il clip filmato principale viene modificato in scala del 50%, se si imposta la proprietà _x un oggetto nel clip filmato viene spostato per la metà dei pixel per cui verrebbe spostato se il filmato fosse al 100% delle proprie dimensioni. Disponibilità Flash Lite 2.0 Esempio Nell'esempio seguente viene creato un clip filmato in fase di runtime denominato box_mc. L'API di disegno viene utilizzata per disegnare un riquadro in questa istanza e, quando il mouse passa sopra il riquadro, al clip filmato viene applicata la modifica in scala orizzontale e verticale. Quando il mouse viene allontanato dall'istanza, viene ripristinata la modifica in scala precedente. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 470 Classi ActionScript this.createEmptyMovieClip("box_mc", 1); box_mc._x = 100; box_mc._y = 100; with (box_mc) { lineStyle(1, 0xCCCCCC); beginFill(0xEEEEEE); moveTo(0, 0); lineTo(80, 0); lineTo(80, 60); lineTo(0, 60); lineTo(0, 0); endFill(); }; box_mc.onRollOver = function() { this._x -= this._width/2; this._y -= this._height/2; this._xscale = 200; this._yscale = 200; }; box_mc.onRollOut = function() { this._xscale = 100; this._yscale = 100; this._x += this._width/2; this._y += this._height/2; }; Vedete anche _x (MovieClip._x, proprietà), _xscale (proprietà MovieClip._xscale), _y (proprietà MovieClip._y), _height (proprietà MovieClip._height) MovieClipLoader Object | +-MovieClipLoader public class MovieClipLoader extends Object La classe MovieClipLoader consente di implementare le funzioni di callback del listener che forniscono le informazioni sullo stato mentre i file SWF, JPEG, GIF e PNG vengono caricati (scaricati) nei clip filmato. Per utilizzare le funzioni di MovieClipLoader, utilizzare MovieClipLoader.loadClip() anziché loadMovie() o MovieClip.loadMovie() per caricare i file SWF. Dopo aver eseguito il metodo MovieClipLoader.loadClip(), si verificano gli eventi seguenti nell'ordine elencato: • Quando i primi byte del file scaricato sono stati scritti su disco, viene richiamato il listener MovieClipLoader.onLoadStar. • Se è stato implementato, il listener MovieClipLoader.onLoadProgress viene richiamato durante il processo di caricamento. • Nota: è possibile chiamare MovieClipLoader.getProgress() in qualunque momento del processo di caricamento. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 471 Classi ActionScript • Quando l'intero file scaricato è stato scritto su disco, viene richiamato il listener MovieClipLoader.onLoadComplete. • Dopo che sono state eseguite le azioni del primo fotogramma del file scaricato, viene richiamato il listener MovieClipLoader.onLoadInit. Dopo che è stato richiamato MovieClipLoader.onLoadInit, è possibile impostare le proprietà, utilizzare i metodi e interagire in altro modo con il filmato caricato. Se il file non viene caricato completamente, viene richiamato il listener MovieClipLoader.onLoadError. Disponibilità Flash Lite 2.0 Riepilogo delle proprietà Proprietà ereditate dalla classe Object constructor (proprietà Object.constructor), __proto__ (proprietà Object._proto), prototype (proprietà Object.prototype), __resolve (proprietà Object.__resolve) Riepilogo degli eventi Evento Descrizione onLoadComplete = Richiamato dopo che è stato scaricato completamente un file caricato con function(listenerOb MovieClipLoader.loadClip(). ject, [target_mc]) {} onLoadError = Richiamato quando non è possibile completare il caricamento di un file mediante function(target_mc, MovieClipLoader.loadClip(). errorCode) {} onLoadInit = Richiamato quando sono state eseguite le azioni del primo fotogramma del clip function([target_mc caricato. ]) {} onLoadProgress = Richiamato ogni volta che il contenuto caricato viene scritto sul disco nel corso del function([target_mc processo di caricamento (vale a dire tra MovieClipLoader.onLoadStart e ], loadedBytes, MovieClipLoader.onLoadComplete). totalBytes) {} onLoadStart = Richiamato quando inizia lo scaricamento di un file a seguito di una chiamata a function([target_mc MovieClipLoader.loadClip(). ]) {} Riepilogo delle funzioni di costruzione Firma Descrizione MovieClipLoader() Crea un oggetto MovieClipLoader che è possibile utilizzare per implementare una serie di listener che reagiscano agli eventi mentre si sta scaricando il file SWF, JPEG, GIF o PNG. GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 472 Ultimo aggiornamento 4/5/2010 Classi ActionScript Riepilogo dei metodi Modificatori Firma Descrizione addListener(listener: Object) : Boolean Registra un oggetto per ricevere una notifica quando viene richiamato un gestore di eventi MovieClipLoader. getProgress(target:Obj Restituisce il numero di byte caricati e il numero totale di byte di un file che viene caricato mediante ect) : Object MovieClipLoader.loadClip(); per i filmati compressi, il metodo getProgress rispecchia il numero di byte compressi. loadClip(url:String, target:Object) : Boolean Carica un file SWF o JPEG in un clip filmato nel player Flash Lite mentre è in riproduzione il filmato originale. removeListener(listene Rimuove il listener precedentemente utilizzato per ricevere r:Object) : Boolean una notifica quando è stato richiamato un gestore di eventi MovieClipLoader. unloadClip(target:Obje Rimuove un clip filmato che è stato caricato mediante MovieClipLoader.loadClip(). ct) : Boolean Metodi ereditati dalla classe Object addProperty (metodo Object.addProperty), hasOwnProperty (metodo Object.hasOwnProperty), isPropertyEnumerable (metodo Object.isPropertyEnumerable), isPrototypeOf (metodo Object.isPrototypeOf), registerClass (metodo Object.registerClass), toString (metodo Object.toString), unwatch (metodo Object.unwatch), valueOf (metodo Object.valueOf), watch (metodo Object.watch) addListener (metodo MovieClipLoader.addListener) public addListener(listener:Object) : Boolean Registra un oggetto per ricevere una notifica quando viene richiamato un gestore di eventi MovieClipLoader. Disponibilità Flash Lite 2.0 Parametri listener:Object - Un oggetto listener per una notifica callback dai gestori di eventi MovieClipLoader. Restituisce Boolean - Un valore booleano. Il valore restituito è true se il listener è stato stabilito correttamente; in caso contrario è false. Esempio Nell'esempio seguente viene caricata un'immagine in un clip filmato, denominata image_mc. L'istanza di clip filmato viene ruotata e centrata sullo stage; lungo i perimetri dello stage e del clip filmato viene disegnato un tratto. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 473 Classi ActionScript this.createEmptyMovieClip("image_mc", this.getNextHighestDepth()); var mclListener:Object = new Object(); mclListener.onLoadInit = function(target_mc:MovieClip) { target_mc._x = Stage.width/2-target_mc._width/2; target_mc._y = Stage.height/2-target_mc._width/2; var w:Number = target_mc._width; var h:Number = target_mc._height; target_mc.lineStyle(4, 0x000000); target_mc.moveTo(0, 0); target_mc.lineTo(w, 0); target_mc.lineTo(w, h); target_mc.lineTo(0, h); target_mc.lineTo(0, 0); target_mc._rotation = 3; }; var image_mcl:MovieClipLoader = new MovieClipLoader(); image_mcl.addListener(mclListener); image_mcl.loadClip("http://www.helpexamples.com/flash/images/image1.jpg", image_mc); Vedete anche onLoadComplete (listener di eventi MovieClipLoader.onLoadComplete), onLoadError (listener di eventi MovieClipLoader.onLoadError), onLoadInit (listener di eventi MovieClipLoader.onLoadInit), onLoadProgress (listener di eventi MovieClipLoader.onLoadProgress), onLoadStart (listener di eventi MovieClipLoader.onLoadStart), removeListener (metodo MovieClipLoader.removeListener) getProgress (metodo MovieClipLoader.getProgress) public getProgress(target:Object) : Object Restituisce il numero di byte caricati e il numero totale di byte di un file che si sta caricando mediante MovieClipLoader.loadClip(); per i filmati compressi, il metodo getProgress rispecchia il numero di byte compressi. Il metodo getProgress consente di richiedere esplicitamente queste informazioni, anziché (oppure oltre a) scrivere una funzione del listener MovieClipLoader.onLoadProgress. Disponibilità Flash Lite 2.0 Parametri target:Object - Un file SWF, JPEG, GIF o PNG che viene caricato mediante MovieClipLoader.loadClip(). Restituisce Object - Un oggetto dotato di due proprietà a valore intero: bytesLoaded e bytesTotal. Esempio L'esempio seguente mostra come utilizzare il metodo getProgress. Invece di utilizzare tale metodo, di solito viene creato un oggetto listener "in ascolto" dell'evento onLoadProgress. Un'altra caratteristica importante di questo metodo è il fatto che la prima chiamata sincrona a getProgress può restituire i valori di bytesLoaded e bytesTotal del container e non i valori relativi all'oggetto richiesto esternamente. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 474 Classi ActionScript var container:MovieClip = this.createEmptyMovieClip("container", this.getNextHighestDepth()); var image:MovieClip = container.createEmptyMovieClip("image", container.getNextHighestDepth()); var mcLoader:MovieClipLoader = new MovieClipLoader(); var listener:Object = new Object(); listener.onLoadProgress = function(target:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void { trace(target + ".onLoadProgress with " + bytesLoaded + " bytes of " + bytesTotal); } mcLoader.addListener(listener); mcLoader.loadClip("http://www.w3.org/Icons/w3c_main.png", image); var interval:Object = new Object(); interval.id = setInterval(checkProgress, 100, mcLoader, image, interval); function checkProgress(mcLoader:MovieClipLoader, image:MovieClip, interval:Object):Void { trace(">> checking progress now with : " + interval.id); var progress:Object = mcLoader.getProgress(image); trace("bytesLoaded: " + progress.bytesLoaded + " bytesTotal: " + progress.bytesTotal); if(progress.bytesLoaded == progress.bytesTotal) { clearInterval(interval.id); } } Vedete anche loadClip (metodo MovieClipLoader.loadClip), onLoadProgress (listener di eventi MovieClipLoader.onLoadProgress) loadClip (metodo MovieClipLoader.loadClip) public loadClip(url:String, target:Object) : Boolean Carica un file SWF o JPEG in un clip filmato nel player Flash Lite mentre è in riproduzione il filmato originale. Consente di visualizzare più file SWF contemporaneamente e di passare da uno all'altro senza caricare un altro documento HTML. L'utilizzo del metodo loadClip() in luogo di loadMovie() o MovieClip.loadMovie() comporta una serie di vantaggi. I gestori elencati di seguito vengono implementati mediante un oggetto listener. Per attivare il listener mediante MovieClipLoader.addListener(listenerObject), registrarlo con la classe MovieClipLoader. • Il gestore MovieClipLoader.onLoadStart viene richiamato quando inizia il caricamento. • Il gestore MovieClipLoader.onLoadError viene richiamato se non è possibile caricare il clip. • Il gestore MovieClipLoader.onLoadProgress viene richiamato mentre è in corso il processo di caricamento. • Il gestore MovieClipLoader.onLoadComplete viene richiamato quando viene completato lo scaricamento di un file, ma prima che siano disponibili i metodi e le proprietà del clip filmato caricato. Questo gestore viene chiamato prima del gestore onLoadInit. • Il gestore MovieClipLoader.onLoadInit viene richiamato dopo che sono state eseguite le azioni del primo fotogramma del clip, per consentire di manipolare il clip caricato. Questo gestore viene chiamato dopo il gestore onLoadComplete. Nella maggior parte delle situazioni, utilizzare il gestore onLoadInit. Un file SWF o un'immagine caricata in un clip filmato eredita le proprietà di posizione, rotazione e scala del clip filmato. È possibile utilizzare il percorso target del clip filmato per indicare come destinazione il filmato caricato. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 475 Classi ActionScript È possibile utilizzare il metodo loadClip() per caricare uno o più file in un unico clip filmato o livello; agli oggetti del listener MovieClipLoader viene passata, come parametro, l'istanza del clip filmato target in fase di caricamento. In alternativa, è possibile creare un oggetto MovieClipLoader diverso per ciascun file caricato. Utilizzare MovieClipLoader.unloadClip() per rimuovere i filmati o le immagini caricate con questo metodo o per annullare un'operazione di caricamento in corso. MovieClipLoader.getProgress() e MovieClipLoaderListener.onLoadProgress non indicano i valori bytesLoaded and bytesTotal effettivi nel lettore dell'ambiente di creazione. Quando si utilizza la funzione Profilo ampiezza banda nell'ambiente di creazione, MovieClipLoader.getProgress() e MovieClipLoaderListener.onLoadProgress riportano lo scaricamento alla velocità effettiva, non alla velocità ridotta dell'ampiezza di banda fornita da Profilo ampiezza banda. Disponibilità Flash Lite 2.0 Parametri url:String - L'URL assoluto o relativo del file SWF o JPEG da caricare. Un percorso relativo deve essere tale rispetto al file SWF che si trova sul livello 0. Gli URL assoluti devono includere il riferimento al protocollo, ad esempio http:// o file:///. I nomi file non devono contenere specifiche relative all'unità disco. target:Object - Il percorso di destinazione di un clip filmato o un numero intero che specifica il livello di Flash Player in cui viene caricato il clip filmato. Il clip filmato target viene sostituito dal file SWF o dall'immagine caricati. Restituisce Boolean - Un valore booleano. Il valore restituito è true se la richiesta URL è stata inviata correttamente; in caso contrario è false. Esempio Nell'esempio seguente viene illustrato come utilizzare il metodo MovieClipLoader.loadClip mediante la creazione di un gestore per l'evento onLoadInit e il successivo invio della richiesta. Aggiungere il codice seguente direttamente a un'azione fotogramma sulla linea temporale oppure incollarlo in una classe che estende MovieClip. Creare un metodo del gestore per l'evento onLoadInit. public function onLoadInit(mc:MovieClip):Void { trace("onLoadInit: " + mc); } Creare un MovieClip vuoto e caricare al suo interno un'immagine mediante MovieClipLoader. var container:MovieClip = createEmptyMovieClip("container", getNextHighestDepth()); var mcLoader:MovieClipLoader = new MovieClipLoader(); mcLoader.addListener(this); mcLoader.loadClip("YourImage.jpg", container); function onLoadInit(mc:MovieClip) { trace("onLoadInit: " + mc); } Vedete anche onLoadInit (listener di eventi MovieClipLoader.onLoadInit) Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 476 Classi ActionScript MovieClipLoader (funzione di costruzione) public MovieClipLoader() Crea un oggetto MovieClipLoader che è possibile utilizzare per implementare una serie di listener che reagiscano agli eventi mentre si sta scaricando il file SWF, JPEG, GIF o PNG. Disponibilità Flash Lite 2.0 Esempio Vedere MovieClipLoader.loadClip(). Vedete anche addListener (metodo MovieClipLoader.addListener), loadClip (metodo MovieClipLoader.loadClip) onLoadComplete (listener di eventi MovieClipLoader.onLoadComplete) onLoadComplete = function(listenerObject, [target_mc]) {} Richiamato dopo che è stato scaricato completamente un file caricato con MovieClipLoader.loadClip(). Il valore di target_mc identifica il clip filmato per il quale viene eseguita la chiamata. È utile quando vengono caricati più file con lo stesso set di listener. Questo parametro viene passato da Flash al codice, ma non è necessario implementare tutti i parametri della funzione del listener. Quando si utilizzano gli eventi onLoadComplete e onLoadInit mediante la classe MovieClipLoader, è importante comprendere la differenza tra questo uso specifico e il caso in cui gli eventi agiscono insieme al file SWF. L'evento onLoadComplete viene chiamato dopo che il file SWF, JPEG, GIF o PNG è stato caricato, ma prima che l'applicazione venga inizializzata. A questo punto è impossibile accedere ai metodi e alle proprietà del clip filmato caricato e per tale motivo non è possibile chiamare una funzione, passare a un fotogramma specifico, e così via. Nella maggior parte dei casi, è preferibile utilizzare l'evento onLoadInit, che viene chiamato dopo che il contenuto è stato caricato e inizializzato completamente. Disponibilità Flash Lite 2.0 Parametri listenerObject: - Un oggetto listener aggiunto utilizzando MovieClipLoader.addListener(). target_mc: [opzionale] - Un clip filmato caricato da un metodo MovieClipLoader.loadClip(). Questo parametro è opzionale. Esempio Nell'esempio seguente viene caricata un'immagine in un'istanza di clip filmato, denominata image_mc. Gli eventi onLoadInit e onLoadComplete vengono utilizzati per determinare il tempo necessario per caricare l'immagine. Le informazioni vengono visualizzate in un campo di testo creato dinamicamente, denominato timer_txt. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 477 Classi ActionScript this.createEmptyMovieClip("image_mc", this.getNextHighestDepth()); var mclListener:Object = new Object(); mclListener.onLoadStart = function(target_mc:MovieClip) { target_mc.startTimer = getTimer(); }; mclListener.onLoadComplete = function(target_mc:MovieClip) { target_mc.completeTimer = getTimer(); }; mclListener.onLoadInit = function(target_mc:MovieClip) { var timerMS:Number = target_mc.completeTimer-target_mc.startTimer; target_mc.createTextField("timer_txt", target_mc.getNextHighestDepth(), 0, target_mc._height, target_mc._width, 22); target_mc.timer_txt.text = "loaded in "+timerMS+" ms."; }; var image_mcl:MovieClipLoader = new MovieClipLoader(); image_mcl.addListener(mclListener); image_mcl.loadClip("http://www.macromedia.com/images/shared/product_boxes/112x112/box_studio _112x112.jpg", image_mc); Vedete anche addListener (metodo MovieClipLoader.addListener), loadClip (metodo MovieClipLoader.loadClip), onLoadStart (listener di eventi MovieClipLoader.onLoadStart), onLoadError (listener di eventi MovieClipLoader.onLoadError), onLoadInit (listener di eventi MovieClipLoader.onLoadInit) onLoadError (listener di eventi MovieClipLoader.onLoadError) onLoadError = function(target_mc, errorCode) {} Richiamato quando non è possibile completare il caricamento di un file mediante MovieClipLoader.loadClip(). È possibile richiamare il listener per varie ragioni: ad esempio, se il server è guasto, se è impossibile trovare il file o quando si verifica una violazione della sicurezza. Chiamare questo listener su un oggetto listener aggiunto mediante MovieClipLoader.addListener(). Il valore di target_mc identifica il clip filmato per il quale viene eseguita la chiamata. Il parametro è utile quando devono essere caricati più file con lo stesso set di listener. Per il parametro errorCode, viene restituita la stringa "URLNotFound" se non è stato chiamato né il listener MovieClipLoader.onLoadStart né MovieClipLoader.onLoadComplete; ad esempio, se un server è guasto o è impossibile trovare il file. La stringa "LoadNeverCompleted" viene restituita se è stato chiamato MovieClipLoader.onLoadStart ma non MovieClipLoader.onLoadComplete; ad esempio, nel caso in cui lo scaricamento sia stato interrotto per un sovraccarico del server, un blocco del server e così via. Disponibilità Flash Lite 2.0 Parametri target_mc: - Un clip filmato caricato da un metodo MovieClipLoader.loadClip(). errorCode: - Una stringa che spiega il motivo dell'errore. Esempio Nell'esempio seguente vengono visualizzate informazioni nel pannello Output quando è impossibile caricare un'immagine. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 478 Classi ActionScript this.createEmptyMovieClip("image_mc", this.getNextHighestDepth()); var mclListener:Object = new Object(); mclListener.onLoadError = function(target_mc:MovieClip, errorCode:String) { trace("ERROR!"); switch (errorCode) { case 'URLNotFound' : trace("\t Unable to connect to URL: "+target_mc._url); break; case 'LoadNeverCompleted' : trace("\t Unable to complete download: "+target_mc); break; } }; mclListener.onLoadInit = function(target_mc:MovieClip) { trace("success"); trace(image_mcl.getProgress(target_mc).bytesTotal+" bytes loaded"); }; var image_mcl:MovieClipLoader = new MovieClipLoader(); image_mcl.addListener(mclListener); image_mcl.loadClip("http://www.fakedomain.com/images/bad_hair_day.jpg", image_mc); Vedete anche addListener (metodo MovieClipLoader.addListener), loadClip (metodo MovieClipLoader.loadClip), onLoadStart (listener di eventi MovieClipLoader.onLoadStart), onLoadComplete (listener di eventi MovieClipLoader.onLoadComplete) onLoadInit (listener di eventi MovieClipLoader.onLoadInit) onLoadInit = function([target_mc]) {} Richiamato quando sono state eseguite le azioni del primo fotogramma del clip caricato. Dopo che è stato richiamato il listener, è possibile impostare le proprietà, utilizzare i metodi e interagire in altro modo con il filmato caricato. Chiamare questo listener su un oggetto listener aggiunto mediante MovieClipLoader.addListener(). Il valore di target_mc identifica il clip filmato per il quale viene eseguita la chiamata. Il parametro è utile quando devono essere caricati più file con lo stesso set di listener. Disponibilità Flash Lite 2.0 Parametri target_mc: [opzionale] - Un clip filmato caricato da un metodo MovieClipLoader.loadClip(). Esempio Nell'esempio seguente viene caricata un'immagine in un'istanza di clip filmato, denominata image_mc. Gli eventi onLoadInit e onLoadComplete vengono utilizzati per determinare il tempo necessario per caricare l'immagine. Le informazioni vengono visualizzate in un campo di testo denominato timer_txt. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 479 Classi ActionScript this.createEmptyMovieClip("image_mc", this.getNextHighestDepth()); var mclListener:Object = new Object(); mclListener.onLoadStart = function(target_mc:MovieClip) { target_mc.startTimer = getTimer(); }; mclListener.onLoadComplete = function(target_mc:MovieClip) { target_mc.completeTimer = getTimer(); }; mclListener.onLoadInit = function(target_mc:MovieClip) { var timerMS:Number = target_mc.completeTimer-target_mc.startTimer; target_mc.createTextField("timer_txt", target_mc.getNextHighestDepth(), 0, target_mc._height, target_mc._width, 22); target_mc.timer_txt.text = "loaded in "+timerMS+" ms."; }; var image_mcl:MovieClipLoader = new MovieClipLoader(); image_mcl.addListener(mclListener); image_mcl.loadClip("http://www.helpexamples.com/flash/images/image1.jpg", image_mc); Nell'esempio seguente viene controllato se un filmato è stato caricato in un clip filmato creato in fase di runtime: this.createEmptyMovieClip("tester_mc", 1); var mclListener:Object = new Object(); mclListener.onLoadInit = function(target_mc:MovieClip) { trace("movie loaded"); } var image_mcl:MovieClipLoader = new MovieClipLoader(); image_mcl.addListener(mclListener); image_mcl.loadClip("http://www.yourserver.com/your_movie.swf", tester_mc); Vedete anche addListener (metodo MovieClipLoader.addListener), loadClip (metodo MovieClipLoader.loadClip), onLoadStart (listener di eventi MovieClipLoader.onLoadStart) onLoadProgress (listener di eventi MovieClipLoader.onLoadProgress) onLoadProgress = function([target_mc], loadedBytes, totalBytes) {} Richiamato ogni volta che il contenuto caricato viene scritto sul disco nel corso del processo di caricamento (vale a dire tra MovieClipLoader.onLoadStart e MovieClipLoader.onLoadComplete). Chiamare questo listener su un oggetto listener aggiunto mediante MovieClipLoader.addListener(). È possibile utilizzare questo metodo per visualizzare le informazioni relative all'avanzamento dello scaricamento, utilizzando i parametri loadedBytes e totalBytes. Il valore di target_mc identifica il clip filmato per il quale viene eseguita la chiamata. È utile quando devono essere caricati più file con lo stesso set di listener. Nota: se si tenta di utilizzare onLoadProgress nella modalità di prova del filmato con un file locale che risiede sul disco rigido, l'evento non funziona correttamente poiché in modalità di prova il player Flash Lite carica i file locali integralmente. Parametri target_mc: MovieClip [opzionale] Un clip filmato caricato da un metodo MovieClipLoader.loadClip(). loadedBytes: Number Il numero di byte caricati quando è stato richiamato il listener. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 480 Classi ActionScript totalBytes: Number Il numero totale di byte del file in fase di caricamento. Disponibilità Flash Lite 2.0 Parametri target_mc: [opzionale] - Un clip filmato caricato da un metodo MovieClipLoader.loadClip(). loadedBytes: - Il numero di byte caricati quando è stato richiamato il listener. totalBytes: - Il numero totale di byte del file in fase di caricamento. Esempio Nell'esempio seguente viene creato un clip filmato, un nuovo MovieClipLoader e un listener di eventi anonimo. Dovrebbe fornire come output periodico l'avanzamento di un carico e come output finale la notifica dell'avvenuto completamento e della disponibilità della risorsa in ActionScript. var container:MovieClip = this.createEmptyMovieClip("container", this.getNextHighestDepth()); var mcLoader:MovieClipLoader = new MovieClipLoader(); var listener:Object = new Object(); listener.onLoadProgress = function(target:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void { trace(target + ".onLoadProgress with " + bytesLoaded + " bytes of " + bytesTotal); } listener.onLoadInit = function(target:MovieClip):Void { trace(target + ".onLoadInit"); } mcLoader.addListener(listener); mcLoader.loadClip("http://www.w3.org/Icons/w3c_main.png", container); Vedete anche addListener (metodo MovieClipLoader.addListener), loadClip (metodo MovieClipLoader.loadClip), getProgress (metodo MovieClipLoader.getProgress) onLoadStart (listener di eventi MovieClipLoader.onLoadStart) onLoadStart = function([target_mc]) {} Richiamato quando inizia lo scaricamento di un file a seguito di una chiamata a MovieClipLoader.loadClip(). Chiamare questo listener su un oggetto listener aggiunto mediante MovieClipLoader.addListener(). Il valore di target_mc identifica il clip filmato per il quale viene eseguita la chiamata. Il parametro è utile quando devono essere caricati più file con lo stesso set di listener. Disponibilità Flash Lite 2.0 Parametri target_mc: [opzionale] - Un clip filmato caricato da un metodo MovieClipLoader.loadClip(). Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 481 Classi ActionScript Esempio Nell'esempio seguente viene caricata un'immagine in un'istanza di clip filmato, denominata image_mc. Gli eventi onLoadInit e onLoadComplete vengono utilizzati per determinare il tempo necessario per caricare l'immagine. Le informazioni vengono visualizzate in un campo di testo denominato timer_txt. this.createEmptyMovieClip("image_mc", this.getNextHighestDepth()); var mclListener:Object = new Object(); mclListener.onLoadStart = function(target_mc:MovieClip) { target_mc.startTimer = getTimer(); }; mclListener.onLoadComplete = function(target_mc:MovieClip) { target_mc.completeTimer = getTimer(); }; mclListener.onLoadInit = function(target_mc:MovieClip) { var timerMS:Number = target_mc.completeTimer-target_mc.startTimer; target_mc.createTextField("timer_txt", target_mc.getNextHighestDepth(), 0, target_mc._height, target_mc._width, 22); target_mc.timer_txt.text = "loaded in "+timerMS+" ms."; }; var image_mcl:MovieClipLoader = new MovieClipLoader(); image_mcl.addListener(mclListener); image_mcl.loadClip("http://www.helpexamples.com/flash/images/image1.jpg", image_mc); Vedete anche addListener (metodo MovieClipLoader.addListener), loadClip (metodo MovieClipLoader.loadClip), onLoadError (listener di eventi MovieClipLoader.onLoadError), onLoadInit (listener di eventi MovieClipLoader.onLoadInit)onLoadComplete (listener di eventi MovieClipLoader.onLoadComplete) removeListener (metodo MovieClipLoader.removeListener) public removeListener(listener:Object) : Boolean Rimuove il listener precedentemente utilizzato per ricevere una notifica quando è stato richiamato un gestore di eventi MovieClipLoader. Non viene ricevuto alcun ulteriore messaggio di caricamento. Disponibilità Flash Lite 2.0 Parametri listener:Object - Un oggetto listener aggiunto mediante MovieClipLoader.addListener(). Restituisce Boolean Esempio Nell'esempio seguente viene caricata un'immagine in un clip filmato e viene consentito all'utente di avviare e interrompere il processo di caricamento mediante due pulsanti denominati start_button e stop_button. Le informazioni relative all'avvio o all'interruzione dell'avanzamento vengono visualizzate nel pannello Output. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 482 Classi ActionScript this.createEmptyMovieClip("image_mc", this.getNextHighestDepth()); var mclListener:Object = new Object(); mclListener.onLoadStart = function(target_mc:MovieClip) { trace("\t onLoadStart"); }; mclListener.onLoadComplete = function(target_mc:MovieClip) { trace("\t onLoadComplete"); }; mclListener.onLoadError = function(target_mc:MovieClip, errorCode:String) { trace("\t onLoadError: "+errorCode); }; mclListener.onLoadInit = function(target_mc:MovieClip) { trace("\t onLoadInit"); start_button.enabled = true; stop_button.enabled = false; }; var image_mcl:MovieClipLoader = new MovieClipLoader(); // start_button.clickHandler = function() { trace("Starting..."); start_button.enabled = false; stop_button.enabled = true; // image_mcl.addListener(mclListener); image_mcl.loadClip("http://www.helpexamples.com/flash/images/image1.jpg", image_mc); }; stop_button.clickHandler = function() { trace("Stopping..."); start_button.enabled = true; stop_button.enabled = false; // image_mcl.removeListener(mclListener); }; stop_button.enabled = false; Vedete anche addListener (metodo MovieClipLoader.addListener) unloadClip (metodo MovieClipLoader.unloadClip) public unloadClip(target:Object) : Boolean Rimuove un clip filmato che è stato caricato mediante MovieClipLoader.loadClip(). Se si chiama questo metodo mentre un filmato è in fase di caricamento, viene richiamato MovieClipLoader.onLoadError. Disponibilità Flash Lite 2.0 Parametri target:Object - Un valore intero o stringa passato alla corrispondente chiamata a my_mcl.loadClip(). Restituisce Boolean - Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 483 Classi ActionScript Esempio Nell'esempio seguente viene caricata un'immagine in un clip filmato, denominata image_mc. Se si fa clic sul clip filmato, questo viene rimosso e le relative informazioni vengono visualizzate nel pannello Output. this.createEmptyMovieClip("image_mc", this.getNextHighestDepth()); var mclListener:Object = new Object(); mclListener.onLoadInit = function(target_mc:MovieClip) { target_mc._x = 100; target_mc._y = 100; target_mc.onRelease = function() { trace("Unloading clip..."); trace("\t name: "+target_mc._name); trace("\t url: "+target_mc._url); image_mcl.unloadClip(target_mc); }; }; var image_mcl:MovieClipLoader = new MovieClipLoader(); image_mcl.addListener(mclListener); image_mcl.loadClip("http://www.helpexamples.com/flash/images/image1.jpg", image_mc); Vedete anche loadClip (metodo MovieClipLoader.loadClip), onLoadError (listener di eventi MovieClipLoader.onLoadError) NetConnection Crea un oggetto NetConnection che è possibile utilizzare con un oggetto NetStream per richiamare i comandi su un server applicazioni remoto o per riprodurre localmente o da un server i file video in streaming (FLV). Metodo Descrizione connect(); connect(command:String, ... arguments):void Apre una connessione con un server. close(); close():void Chiude la connessione aperta localmente o con il server e invia l'evento netStatus con una proprietà di codice NetConnection.Connect.Closed. Disponibilità Flash Lite 3.0 connect (NetConnection.connect), metodo Apre una connessione con un server. Mediante questa connessione è possibile riprodurre file audio o video (FLV) dal sistema locale oppure richiamare comandi su un server remoto. Quando si utilizza questo metodo, considerare il modello di sicurezza del player Flash Lite nonché le seguenti considerazioni: • Per impostazione predefinita, il sito Web nega l'accesso tra due sandbox. Il sito Web può consentire l'accesso a una risorsa utilizzando un file di criteri dei domini. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 484 Classi ActionScript • Un sito Web può negare l'acceso a una risorsa aggiungendo la logica dell'applicazione ActionScript lato server a Flash Media Server. • Non è possibile utilizzare il metodo NetConnection.connect() se il file SWF che effettua la chiamata si trova nella sandbox locale con il file system. • Per impedire al file SWF l'utilizzo di questo metodo, impostare il parametro allowNetworking dell'oggetto e i tag inclusi nella pagina HTML con il contenuto SWF. Disponibilità Flash Lite 3.0 close (NetConnection.close), metodo public function close():void Chiude la connessione aperta localmente o con il server e invia l'evento netStatus con una proprietà di codice NetConnection.Connect.Closed. Questo metodo disconnette tutti gli oggetti NetStream in esecuzione su questa connessione; qualsiasi dato inserito in una coda non inviato viene ignorato (per terminare gli streaming senza chiudere la connessione, utilizzare NetStream.close()). Se si chiama questo metodo e quindi si desidera riconnettersi, sarà necessario creare l'oggetto NetStream. Disponibilità Flash Lite 3.0 Vedete anche NetStream Funzione di costruzione NetConnection public “NetConnection” a pagina 483() Crea un oggetto NetConnection che è possibile utilizzare in combinazione con un oggetto NetStream per riprodurre dei file video in streaming (FLV) locali. Dopo aver creato l'oggetto NetConnection, utilizzare il metodo Connect(NetConnection.connect) per effettuare la connessione effettiva. La riproduzione di file FLV esterni offre diversi vantaggi rispetto all'incorporamento di video in un documento Flash, ad esempio migliori prestazioni e gestione della memoria, oltre a frequenze di fotogrammi video e Flash indipendenti. La classe NetConnection fornisce il mezzo per riprodurre i file FLV in streaming da un'unità locale o da un indirizzo HTTP. Disponibilità Flash Lite 3.0 Esempio Vedere l'esempio per il metodo connect (NetConnection.connect). Vedete anche “connect (NetConnection.connect), metodo” a pagina 483, “attachVideo (metodo Video.attachVideo)” a pagina 675,“NetStream” a pagina 485 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 485 Classi ActionScript NetStream Crea uno streaming da utilizzare per la riproduzione dei file FLV mediante l'oggetto NetConnection specificato. Possono essere supportati anche gli URL dei file locali con la semplice sostituzione di “http:” con “file:”. Ad esempio NetStream.play("http://somefile.flv"); NetStream.play("file://somefile.flv"); Nota: vengono applicate le restrizioni di sicurezza standard. Ad esempio, un file SWF remoto non può accedere agli URL assoluti file:// utilizzando la forma "file://C:/somefile.flv". Disponibilità Flash Lite 3.0 NetStream Class, metodi Metodo Descrizione close() close():void Interrompe la riproduzione di tutti i dati dello streaming, imposta la proprietà time su 0 e rende lo streaming disponibile per altri usi. pause() pause():void Sospende la riproduzione dello streaming video. play() play(... arguments):void Inizia la riproduzione del file audio o video (FLV) esterno. seek() Cerca il fotogramma chiave più vicino al numero di secondi specificato, a partire dall'inizio dello streaming. setBufferTime() Specifica per quanto tempo eseguire il buffering dei messaggi prima di avviarne la visualizzazione. NetStream Class, proprietà Proprietà Descrizione bufferLength Il numero di secondi dei dati attualmente presenti nel buffer. bufferTime Il numero di secondi assegnati al buffer da setBufferTime(). bytesLoaded Il numero di byte di dati caricati nel lettore. bytesTotal La dimensione totale in byte del file caricato nel lettore. currentFPS Il numero di fotogrammi visualizzati al secondo. time La posizione dell'indicatore di riproduzione, in secondi. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 486 Classi ActionScript NetStream Class, eventi Evento Descrizione onStatus Richiamato quando viene inviato un cambiamento di stato o un errore per l'oggetto NetStream. onCuePoint Richiamato quando si raggiunge un cue point incorporato durante la riproduzione di un file FLV. OnMetaData Richiamato dal player Flash Lite quando si ricevono informazioni descrittive incorporate nel file FLV. bufferLength (proprietà NetStream.bufferLength) public bufferLength : Number [read-only] Il numero di secondi dei dati attualmente presenti nel buffer. Utilizzare questa proprietà insieme a NetStream.bufferTime per valutare quanto manca al buffer per riempirsi, ad esempio per visualizzare una risposta a un utente che attende il caricamento di dati nel buffer. Disponibilità Flash Lite 3.0 Nota: questa proprietà è supportata anche in Flash Player 6, se utilizzata con Flash Media Server. Per ulteriori informazioni, consultare la documentazione di Flash Media Server. Esempio L'esempio seguente crea dinamicamente un campo di testo in cui sono visualizzate informazioni sul numero di secondi attualmente presenti nel buffer. Nel campo di testo è mostrata anche la lunghezza del buffer su cui è impostato il video e la percentuale di buffer occupata. this.createTextField("buffer_txt", this.getNextHighestDepth(), 10, 10, 300, 22); buffer_txt.html = true; var connection_nc:NetConnection = new NetConnection(); connection_nc.connect(null); var stream_ns:NetStream = new NetStream(connection_nc); stream_ns.setBufferTime(3); my_video.attachVideo(stream_ns); stream_ns.play("video1.flv"); var buffer_interval:Number = setInterval(checkBufferTime, 100, stream_ns); function checkBufferTime(my_ns:NetStream):Void { var bufferPct:Number = Math.min(Math.round(my_ns.bufferLength/my_ns.bufferTime*100), 100); var output_str:String = "<textformat tabStops='[100,200]'>"; output_str += "Length: "+my_ns.bufferLength+"\t"+"Time: "+my_ns.bufferTime+"\t"+"Buffer:"+bufferPct+"%"; output_str += "</textformat>"; buffer_txt.htmlText = output_str; } bufferTime (proprietà NetStream.bufferTime) public bufferTime : Number [read-only] Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 487 Classi ActionScript Il numero di secondi assegnati al buffer da NetStream.setBufferTime(). Il valore predefinito è 0,1 (un decimo di secondo). Per determinare il numero di secondi attualmente presenti nel buffer, utilizzare NetStream.setBufferLength. Disponibilità Flash Lite 3.0 Nota: questa proprietà è supportata anche in Flash Player 6, se utilizzata con Flash Media Server. Per ulteriori informazioni, consultare la documentazione di Flash Media Server. Esempio L'esempio seguente crea dinamicamente un campo di testo in cui sono visualizzate informazioni sul numero di secondi attualmente presenti nel buffer. Nel campo di testo è mostrata anche la lunghezza del buffer su cui è impostato il video e la percentuale di buffer occupata. this.createTextField("buffer_txt", this.getNextHighestDepth(), 10, 10, 300, 22); buffer_txt.html = true; var connection_nc:NetConnection = new NetConnection(); connection_nc.connect(null); var stream_ns:NetStream = new NetStream(connection_nc); stream_ns.setBufferTime(3); my_video.attachVideo(stream_ns); stream_ns.play("video1.flv"); var buffer_interval:Number = setInterval(checkBufferTime, 100, stream_ns); function checkBufferTime(my_ns:NetStream):Void { var bufferPct:Number = Math.min(Math.round(my_ns.bufferLength my_ns.bufferTime*100), 100); var output_str:String = "<textformat tabStops='[100,200]'>"; output_str += "Length: "+my_ns.bufferLength+"\t"+"Time: "+my_ns.bufferTime+"\t"+"Buffer:"+bufferPct+"%"; output_str += "</textformat>"; buffer_txt.htmlText = output_str; } bytesLoaded (proprietà NetStream.bytesLoaded) public bytesLoaded : Number [read-only] Il numero di byte di dati caricati nel lettore. Utilizzare questo metodo insieme a NetStream.bytesTotal per valutare quanto manca al buffer per riempirsi, ad esempio per visualizzare una risposta a un utente che attende il caricamento di dati nel buffer. Disponibilità Flash Lite 3.0 Esempio L'esempio seguente crea una barra di avanzamento mediante l'API di disegno e le proprietà bytesLoaded e bytesTotal. La barra visualizza l'avanzamento dell'operazione mentre video1.flv viene caricato nell'istanza dell'oggetto video denominato called my_video. Viene creato dinamicamente un campo di testo denominato loaded_txt per visualizzare anche le informazioni sull'avanzamento del caricamento. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 488 Classi ActionScript var connection_nc:NetConnection = new NetConnection(); connection_nc.connect(null); var stream_ns:NetStream = new NetStream(connection_nc); my_video.attachVideo(stream_ns); stream_ns.play("video1.flv"); this.createTextField("loaded_txt", this.getNextHighestDepth(), 10, 10, 160, 22); this.createEmptyMovieClip("progressBar_mc", this.getNextHighestDepth()); progressBar_mc.createEmptyMovieClip("bar_mc", progressBar_mc.getNextHighestDepth()); with (progressBar_mc.bar_mc) { beginFill(0xFF0000); moveTo(0, 0); lineTo(100, 0); lineTo(100, 10); lineTo(0, 10); lineTo(0, 0); endFill(); _xscale = 0; } progressBar_mc.createEmptyMovieClip("stroke_mc", progressBar_mc.getNextHighestDepth()); with (progressBar_mc.stroke_mc) { lineStyle(0, 0x000000); moveTo(0, 0); lineTo(100, 0); lineTo(100, 10); lineTo(0, 10); lineTo(0, 0); } var loaded_interval:Number = setInterval(checkBytesLoaded, 500, stream_ns); function checkBytesLoaded(my_ns:NetStream) { var pctLoaded:Number = Math.round(my_ns.bytesLoaded/my_ns.bytesTotal*100); loaded_txt.text = Math.round(my_ns.bytesLoaded/1000)+" of "+Math.round(my_ns.bytesTotal/1000)+" KB loaded ("+pctLoaded+"%)"; progressBar_mc.bar_mc._xscale = pctLoaded; if (pctLoaded>=100) { clearInterval(loaded_interval); } } bytesTotal (proprietà NetStream.bytesTotal) public bytesTotal : Number [read-only] La dimensione totale in byte del file caricato nel lettore. Disponibilità Flash Lite 3.0 Esempio L'esempio seguente crea una barra di avanzamento mediante l'API di disegno e le proprietà bytesLoaded e bytesTotal. La barra visualizza l'avanzamento dell'operazione mentre video1.flv viene caricato nell'istanza dell'oggetto video denominato called my_video. Viene creato dinamicamente un campo di testo denominato loaded_txt per visualizzare anche le informazioni sull'avanzamento del caricamento. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 489 Classi ActionScript var connection_nc:NetConnection = new NetConnection(); connection_nc.connect(null); var stream_ns:NetStream = new NetStream(connection_nc); my_video.attachVideo(stream_ns); stream_ns.play("video1.flv"); this.createTextField("loaded_txt", this.getNextHighestDepth(), 10, 10, 160, 22); this.createEmptyMovieClip("progressBar_mc", this.getNextHighestDepth()); progressBar_mc.createEmptyMovieClip("bar_mc", progressBar_mc.getNextHighestDepth()); with (progressBar_mc.bar_mc) { beginFill(0xFF0000); moveTo(0, 0); lineTo(100, 0); lineTo(100, 10); lineTo(0, 10); lineTo(0, 0); endFill(); _xscale = 0; } progressBar_mc.createEmptyMovieClip("stroke_mc", progressBar_mc.getNextHighestDepth()); with (progressBar_mc.stroke_mc) { lineStyle(0, 0x000000); moveTo(0, 0); lineTo(100, 0); lineTo(100, 10); lineTo(0, 10); lineTo(0, 0); } var loaded_interval:Number = setInterval(checkBytesLoaded, 500, stream_ns); function checkBytesLoaded(my_ns:NetStream) { var pctLoaded:Number = Math.round(my_ns.bytesLoaded/my_ns.bytesTotal*100); loaded_txt.text = Math.round(my_ns.bytesLoaded/1000)+" of "+Math.round(my_ns.bytesTotal/1000)+" KB loaded ("+pctLoaded+"%)"; progressBar_mc.bar_mc._xscale = pctLoaded; if (pctLoaded>=100) { clearInterval(loaded_interval); } } currentFps (proprietà NetStream.currentFps) public currentFps : Number [read-only] Il numero di fotogrammi visualizzati al secondo. Se si esegue l'esportazione di file FLV da riprodurre su una serie di sistemi, è possibile verificare questo valore durante il test per stabilire la compressione da applicare per l'esportazione del file. Disponibilità Flash Lite 3.0 Nota: questa proprietà è supportata anche in Flash Player 6, se utilizzata con Flash Media Server. Per ulteriori informazioni, consultare la documentazione di Flash Media Server. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 490 Classi ActionScript Esempio L'esempio seguente crea un campo di testo che mostra il numero corrente di fotogrammi al secondo visualizzati da video1.flv. var connection_nc:NetConnection = new NetConnection(); connection_nc.connect(null); var stream_ns:NetStream = new NetStream(connection_nc); my_video.attachVideo(stream_ns); stream_ns.play("video1.flv"); this.createTextField("fps_txt", this.getNextHighestDepth(), 10, 10, 50, 22); fps_txt.autoSize = true; var fps_interval:Number = setInterval(displayFPS, 500, stream_ns); function displayFPS(my_ns:NetStream) { fps_txt.text = "currentFps (frames per second): "+Math.floor(my_ns.currentFps); } time (NetStream.time property) Funzione di costruzione NetStream public NetStream(connection:“NetConnection” a pagina 483) Crea uno streaming da utilizzare per la riproduzione dei file FLV mediante l'oggetto NetConnection specificato. Nota: questa classe è supportata anche in Flash Player 6 quando è utilizzato con Flash Communication Server. Per ulteriori informazioni, consultare la documentazione di Flash Communication Server. Parametri connection:NetConnection - Un oggetto NetConnection. Esempio Il codice seguente crea innanzitutto un nuovo oggetto NetConnection, connection_nc, e quindi lo utilizza per creare un nuovo oggetto NetStream denominato stream_ns. Selezionare Nuovo Video dal menu Opzioni della libreria per creare una nuova istanza dell'oggetto video e assegnarvi il nome istanza my_video. var connection_nc:NetConnection = new NetConnection(); connection_nc.connect(null); var stream_ns:NetStream = new NetStream(connection_nc); my_video.attachVideo(stream_ns); stream_ns.play("video1.flv"); Vedete anche “NetConnection” a pagina 483, “attachVideo (metodo Video.attachVideo)” a pagina 675 time (proprietà NetStream.time) public time : Number [read-only] La posizione dell'indicatore di riproduzione, in secondi. Disponibilità Flash Lite 3.0 Nota: questa proprietà è supportata anche in Flash Player 6, se utilizzata con Flash Media Server. Per ulteriori informazioni, consultare la documentazione di Flash Media Server. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 491 Classi ActionScript Esempio Nell'esempio seguente la posizione attuale dell'indicatore di riproduzione viene visualizzata in un campo di testo creato dinamicamente denominato time_txt. Selezionare Nuovo video dal menu Opzioni della libreria per creare un'istanza di oggetto video e assegnarle il nome my_video. Creare un nuovo oggetto video denominato my_video. Aggiungere il codice ActionScript seguente al file FLA o AS: var connection_nc:NetConnection = new NetConnection(); connection_nc.connect(null); var stream_ns:NetStream = new NetStream(connection_nc); my_video.attachVideo(stream_ns); stream_ns.play("video1.flv"); // stream_ns.onStatus = function(infoObject:Object) { statusCode_txt.text = infoObject.code; }; this.createTextField("time_txt", this.getNextHighestDepth(), 10, 10, 100, 22); time_txt.text = "LOADING"; var time_interval:Number = setInterval(checkTime, 500, stream_ns); function checkTime(my_ns:NetStream) { var ns_seconds:Number = my_ns.time; var minutes:Number = Math.floor(ns_seconds/60); var seconds = Math.floor(ns_seconds%60); if (seconds<10) { seconds = "0"+seconds; } time_txt.text = minutes+":"+seconds; } onStatus (gestore NetStream.onStatus) onStatus = function(infoObject:Object) {} Richiamato ogni volta che viene inviato un cambiamento di stato o un errore per l'oggetto NetStream. Se si desidera rispondere a questo gestore di eventi, creare una funzione che elabori l'oggetto informazioni. L'oggetto informazioni ha una proprietà di codice contenente una stringa che descrive il risultato del gestore onStatus e una proprietà level contenente una stringa status o error. Gli eventi seguenti notificano all'utente quando si svolgono determinate attività di NetStream. Proprietà di codice Proprietà di livello Significato NetStream.Buffer.Empty status I dati non vengono ricevuti con una rapidità sufficiente a occupare il buffer. Il flusso di dati viene interrotto finché il buffer si riempie nuovamente; a quel punto viene inviato un messaggio NetStream.Buffer.Full e la riproduzione dello streaming ricomincia. NetStream.Buffer.Full status Il buffer è pieno e inizia la riproduzione dello streaming. NetStream.Buffer.Flush status Lo streaming dei dati è completato e verrà svuotata la parte restante del buffer. NetStream.Play.Start status La riproduzione è stata avviata. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 492 Classi ActionScript Proprietà di codice Proprietà di livello Significato NetStream.Play.Stop status La riproduzione è stata interrotta. NetStream.Play.StreamNotFound status Impossibile trovare il file FLV passato al metodo play(). NetStream.Seek.InvalidTime error Per i video scaricati con download progressivo, l'utente ha tentato di eseguire una ricerca o la riproduzione oltre la fine dei dati video scaricati fino a quel momento o oltre la fine del video, per un file scaricato completamente. La proprietà Error.message.details contiene un codice di tempo che indica l'ultima posizione valida fino a cui poter cercare. Vedere la proprietà Error.message. NetStream.Seek.Notify status L'operazione di ricerca è stata completata. Se si verificano frequentemente errori relativi al buffer, provare a modificare il buffer con il metodo NetStream.setBufferTime(). Disponibilità Flash Lite 3.0 Parametri infoObject:Object - Un parametro definito in base al messaggio di stato o di errore. Esempio L'esempio seguente mostra i dati relativi allo streaming nel pannello Output. var connection_nc:NetConnection = new NetConnection(); connection_nc.connect(null); var stream_ns:NetStream = new NetStream(connection_nc); my_video.attachVideo(stream_ns); stream_ns.play("video1.flv"); stream_ns.onStatus = function(infoObject:Object) { trace("NetStream.onStatus called: ("+getTimer()+" ms)"); for (var prop in infoObject) { trace("\t"+prop+":\t"+infoObject[prop]); } trace(""); }; onCuePoint (gestore NetStream.onCuePoint) onCuePoint = function(infoObject:Object) {} Richiamato quando si raggiunge un cue point incorporato durante la riproduzione di un file FLV. Questo gestore può essere utilizzato per attivare azioni nel codice quando il video raggiunge un particolare cue point. In tal modo è possibile sincronizzare le altre azioni dell'applicazione con gli eventi di riproduzione video. In un file FLV è possibile incorporare due tipi di cue point. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 493 Classi ActionScript Un cue point di "navigazione" che specifica un fotogramma chiave all'interno del file FLV la cui proprietà time corrisponde a quel preciso fotogramma chiave. I cue point di navigazione spesso sono utilizzati come segnalibri o punti di accesso che consentono di navigare nel file video. Un cue point “evento” è specificato da un valore temporale, a prescindere dalla sua corrispondenza o meno a un fotogramma chiave specifico. I cue point evento normalmente rappresentano un momento nel video in cui accade qualcosa che consente di attivare altri eventi dell'applicazione. Il gestore di eventi onCuePoint riceve un oggetto con le seguenti proprietà: Proprietà Descrizione name Il nome assegnato al cue point quando è stato incorporato nel file FLV. time Il tempo, espresso in secondi, in cui si verifica il cue point nel file video durante la riproduzione. type Il tipo di cue point raggiunto, di "navigazione" o "evento". parameters Un array associativo di stringhe di coppie nome/valore specificate per questo cue point. Per il parametro nome p valore è possibile utilizzare una qualsiasi stringa valida. È possibile definire i cue point in un file FLV quando il file viene codificato per la prima volta o quando si importa un clip video nello strumento di creazione Flash Authoring mediante la procedura guidata Importa video. Anche il gestore di eventi onMetaData() recupera informazioni sui cue point in un file video. Tuttavia, il gestore di eventi onMetaData recupera le informazioni su tutti i cue point prima che inizi la riproduzione del video. Il gestore di eventi onCuePoint riceve le informazioni sui singoli cue point al momento specificato per ciascuno di essi durante la riproduzione. In genere, per far sì che il codice risponda a un determinato cue point nel momento che si verifica, è necessario utilizzare il gestore di eventi onCuePoint per attivare un'azione nel codice. Utilizzare l'elenco di cue point disponibile nel gestore di eventi onMetaData per consentire di avviare la riproduzione del video in punti prestabiliti dello streaming video. Per riprodurre un video partendo da un cue point, passare il valore della proprietà time di tale cue point al metodo NetStream.seek(). Disponibilità Flash Lite 3.0 Parametri infoObject:Object - Un oggetto contenente il nome, il momento, il tipo e i parametri per il cue point. Esempio In questo esempio il codice parte dalla creazione di nuovi oggetti NetConnection e NetStream. Quindi definisce il gestore onCuePoint() per l'oggetto NetStream. Il gestore passa ciclicamente attraverso ciascuna proprietà nominata nell'oggetto infoObject e stampa il nome e il valore della proprietà. Quando trova i parametri nominati della proprietà, scorre ciascun nome di parametro nell'elenco tutti e ne stampa nome e valore. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 494 Classi ActionScript var nc:NetConnection = new NetConnection(); nc.connect(null); var ns:NetStream = new NetStream(nc); ns.onCuePoint = function(infoObject:Object) { trace("onCuePoint:"); for (var propName:String in infoObject) { if (propName != "parameters") { trace(propName + " = " + infoObject[propName]); } else { trace("parameters ="); if (infoObject.parameters != undefined) { for (var paramName:String in infoObject.parameters) { trace(" " + paramName + ": " + infoObject.parameters[paramName]); } } else { trace("undefined"); } } } trace("---------"); } ns.play("http://www.helpexamples.com/flash/video/cuepoints.flv"); Questo provoca la visualizzazione delle seguenti informazioni: onCuePoint: parameters = lights: beginning type = navigation time = 0.418 name = point1 --------onCuePoint: parameters = lights: middle type = navigation time = 7.748 name = point2 --------onCuePoint: parameters = lights: end type = navigation time = 16.02 name = point3 --------- Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 495 Classi ActionScript Il nome di parametro “lights” è un nome arbitrario utilizzato dall'autore del video di esempio. Ai parametri dei cue point è possibile assegnare un nome qualsiasi. onMetaData (gestore NetStream.onMetaData) onMetaData = function(infoObject:Object) {} Richiamato quando il player Flash Lite riceve informazioni descrittive incorporate nel file FLV in riproduzione. L'utilità Flash Video Exporter (versione 1.1 o successiva) inserisce nel video informazioni quali durata, data di creazione, velocità dei dati e così via. I dati incorporati variano in base al codificatore video utilizzato. Questo gestore viene avviato dopo che è stato richiamato il metodo NetStream.play(), ma prima che l'indicatore di riproduzione inizi a muoversi. Spesso, il valore di durata incorporato nei metadati FLV si avvicina alla durata effettiva ma non è mai esatto. In altri termini, non sempre corrisponde al valore della proprietà NetStream.time quando l'indicatore di riproduzione di trova alla fine dello streaming video. Disponibilità Flash Lite 3.0 Parametri infoObject: Object - Un oggetto che contiene una proprietà per ciascun elemento di metadati. Esempio In questo esempio il codice parte dalla creazione di nuovi oggetti NetConnection e NetStream. Quindi definisce il gestore onMetaData() per l'oggetto NetStream. Il gestore passa ciclicamente attraverso ciascuna proprietà nominata nell'oggetto infoObject e stampa il nome e il valore della proprietà. var nc:NetConnection = new NetConnection(); nc.connect(null); var ns:NetStream = new NetStream(nc); ns.onMetaData = function(infoObject:Object) { for (var propName:String in infoObject) { trace(propName + " = " + infoObject[propName]); } }; ns.play("http://www.helpexamples.com/flash/video/water.flv"); Questo provoca la visualizzazione delle seguenti informazioni: canSeekToEnd = true videocodecid = 4 framerate = 15 videodatarate = 400 height = 215 width = 320 duration = 7.347 L'elenco delle proprietà varia in base al software utilizzato per codificare il file FLV. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 496 Classi ActionScript Metodo close (NetStream.close) public close() : Void Interrompe la riproduzione di tutti i dati dello streaming, imposta la proprietà NetStream.time su 0 e rende lo streaming disponibile per altri usi. Questo comando inoltre elimina la copia locale dei file FLV scaricati tramite HTTP. Benché la copia locale del file FLV creata dal player Flash Lite venga eliminata, è possibile che una copia del video rimanga nella directory della cache del browser. Se è la memorizzazione nella cache o locale del file FLV è impedita, utilizzare Flash Media Server. Disponibilità Flash Lite 3.0 Nota: Questo metodo è supportato anche in Flash Player 6, se utilizzato con Flash Media Server. Per ulteriori informazioni, consultare la documentazione di Flash Media Server. Esempio La funzione close() seguente chiude una connessione ed elimina la copia temporanea di video1.flv memorizzata sul disco locale quando si preme il pulsante denominato close_btn: var connection_nc:NetConnection = new NetConnection(); connection_nc.connect(null); var stream_ns:NetStream = new NetStream(connection_nc); my_video.attachVideo(stream_ns); stream_ns.play("video1.flv"); close_btn.onRelease = function(){ stream_ns.close(); }; pause (metodo NetStream.pause) public pause([flag:Boolean]) : Void Sospende o riprende la riproduzione di uno stream. La prima volta che questo metodo viene richiamato (senza inviare un parametro), la riproduzione viene sospesa; la volta successiva invece viene ripresa. Può risultare utile collegare questo metodo a un pulsante che quando viene premuto sospende la riproduzione o la riprende. Disponibilità Flash Lite 3.0 Nota: Questo metodo è supportato anche in Flash Player 6, se utilizzato con Flash Media Server. Per ulteriori informazioni, consultare la documentazione di Flash Media Server. Parametri flag : Boolean [opzionale] - Un valore booleano che indica se sospendere la riproduzione (true) o riprenderla (false). Se si omette questo parametro, NetStream.pause() funge da interruttore: la prima volta che viene richiamato per un determinato streaming, la riproduzione viene sospesa; la volta successiva invece viene ripresa. Esempio Gli esempi seguenti mostrano alcuni usi di questo metodo : Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 497 Classi ActionScript my_ns.pause(); // pauses play first time issued my_ns.pause(); // resumes play my_ns.pause(false); // no effect, play continues my_ns.pause(); // pauses play play (NetStream.play), metodo public play(name:Object, start:Number, len:Number, reset:Object) : Void Inizia la riproduzione di un file video (FLV) esterno. Per vedere i dati video, è necessario richiamare un metodo Video.attachVideo(); l'audio riprodotto con il video o i file FLV che contengono solo audio vengono riprodotti automaticamente. Per controllare l'audio associato a un file FLV, è possibile utilizzare MovieClip.attachAudio() per indirizzare l'audio a un clip filmato; successivamente è possibile creare un oggetto Sound che controlli alcuni aspetti dell'audio. Per ulteriori informazioni, vedete MovieClip.attachAudio(). Se non si riesce a trovare il file FLV, è possibile richiamare il gestore di eventi NetStream.onStatus. Se si desidera interrompere uno streaming in fase di riproduzione, utilizzare NetStream.close(). È possibile riprodurre i file FLV locali memorizzati nella stessa directory del file SWF o in una sottodirectory; non è possibile passare a una directory di livello superiore. Ad esempio, se il file SWF si trova in una directory nome /training e si desidera riprodurre un video memorizzato nella directory /training/videos, è necessario utilizzare la seguente sintassi: my_ns.play("videos/videoName.flv"); Per riprodurre un video memorizzato nella directory /training, utilizzare la seguente sintassi: my_ns.play("videoName.flv"); Quando si usa questo metodo, tenere presente il modello di sicurezza di Flash Player. Per Flash Player 8: Non è possibile utilizzare il metodo NetStream.play() se il file SWF che effettua la chiamata si trova nella sandbox locale con il file system e la risorsa è in una sandbox non locale. L'accesso alle sandbox di rete da sandbox locali affidabili o locali con rete richiede l'autorizzazione del sito Web mediante un file di criteri dei domini. Per ulteriori informazioni, consultare i seguenti riferimenti: White Paper Flash Player 9 Security all'indirizzo http://www.adobe.com/go/fp9_0_security_it White Paper Flash sulle API connesse alla sicurezza per Flash Player 8 all'indirizzo http://www.adobe.com/go/fp8_security_apis_it Disponibilità Flash Lite 3.0 Nota: Questo metodo è supportato anche in Flash Player 6, se utilizzato con Flash Media Server. Per ulteriori informazioni, consultare la documentazione di Flash Media Server. Parametri name : Object - Il nome di un file FLV da riprodurre, racchiuso tra virgolette. Sono supportati sia il formato http:// che file://; la posizione file:// è sempre correlata alla posizione del file SWF. start : Number - Da utilizzare con Flash Media Server; consultate la documentazione di Flash Media Server. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 498 Classi ActionScript len : Number - Da utilizzare con Flash Media Server; consultate la documentazione di Flash Media Server. reset : Object - Da utilizzare con Flash Media Server; consultate la documentazione di Flash Media Server. Esempio L'esempio seguente illustra alcuni modi per l'uso del metodo NetStream.seek(). È possibile riprodurre un file che si trova sul computer di un utente. La directory joe_user è una sottodirectory della directory in cui si trova il file SWF. Inoltre, è possibile riprodurre un file su un server: // Play a file that is on the user's computer. my_ns.play("file://joe_user/flash/videos/lectureJune26.flv"); // Play a file on a server. my_ns.play("http://someServer.someDomain.com/flash/video/orientation.flv"); seek (NetStream.seek), metodo public seek(offset:Number) : Void Cerca il fotogramma chiave più vicino al numero di secondi specificato, a partire dall'inizio dello streaming. La riproduzione viene riavviata quando viene raggiunta questa posizione. Disponibilità Flash Lite 3.0 Nota: Questo metodo è supportato anche in Flash Player 6, se utilizzato con Flash Media Server. Per ulteriori informazioni, consultare la documentazione di Flash Media Server. Parametri offset : Number - Il valore temporale approssimativo, in secondi, per lo spostamento dell'indicatore di riproduzione in un file FLV. L'indicatore di riproduzione passa al fotogramma chiave del video più vicino al valore specificato da offset. • Per ritornare all'inizio dello streaming, spostare offset a 0. • Per cercare in avanti, partendo dall'inizio dello streaming, specificare il numero di secondi per l'avanzamento. Ad esempio, per posizionare l'indicatore di riproduzione a 15 secondi dall'inizio, utilizzare my_ns.seek(15). • Per cercare a partire dalla posizione corrente, specificare my_ns.time + n o my_ns.time - n per cercare rispettivamente n secondi in avanti o all'indietro, dalla posizione attuale. Ad esempio, per un riavvolgimento di 20 secondi dalla posizione corrente, utilizzare my_ns.seek(my_ns.time - 20). La posizione precisa in cui si sposta l'indicatore di riproduzione varia in base all'impostazione fps (frames-per-second) con cui è stato esportato il video. Ad esempio, si supponga avere due oggetti video che rappresentano lo stesso video, uno esportato a 6 fps e l'altro a 30 fps. Se si utilizza my_ns.seek(15) per entrambi gli oggetti, l'indicatore di riproduzione si sposta in due posizioni differenti. Esempio L'esempio seguente illustra alcuni modi per l'uso del comando NetStream.seek(). È possibile ritornare all'inizio dello streaming, passare a una posizione che si trova a 30 secondi dall'inizio e tornare indietro di tre minuti rispetto alla posizione corrente: Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 499 Classi ActionScript // Return to the beginning of the stream my_ns.seek(0); // Move to a location 30 seconds from the beginning of the stream my_ns.seek(30); // Move backwards three minutes from current location my_ns.seek(my_ns.time - 180); setBufferTime (NetStream.setBufferTime), metodo public setBufferTime(bufferTime:Number) : Void Specifica per quanto tempo eseguire il buffering dei messaggi prima di avviare la visualizzazione dello streaming. Ad esempio, per garantire la riproduzione dei primi 15 secondi dello streaming senza interruzioni, impostare bufferTime su 15; la riproduzione viene avviata solo dopo aver eseguito il buffering di 15 secondi di dati. Disponibilità Flash Lite 3.0 Nota: Questo metodo è supportato anche in Flash Player 6, se utilizzato con Flash Media Server. Per ulteriori informazioni, consultare la documentazione di Flash Media Server. Parametri bufferTime: Number - Il numero di secondi di esecuzione del buffering dei dati prima di avviare la visualizzazione dei dati. Il valore predefinito è 0,1(un decimo di secondo). Esempio Vedere l'esempio per NetStream.bufferLength. Number Object | +-Number public class Number extends Object La classe Number è un semplice oggetto wrapper per il tipo di dati Number. È possibile manipolare i valori numerici di base utilizzando i metodi e le proprietà associati alla classe Number. Questa classe è identica alla classe Number del codice JavaScript. Le proprietà della classe sono statiche; questo significa che non è necessario che un oggetto le utilizzi e pertanto non è necessario utilizzare la funzione di costruzione. L'esempio seguente chiama il metodo toString() della classe Number, che restituisce la stringa 1234: var myNumber:Number = new Number(1234); myNumber.toString(); L'esempio seguente assegna il valore della proprietà MIN_VALUE a una variabile dichiarata senza ricorrere a una funzione di costruzione: GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 500 Ultimo aggiornamento 4/5/2010 Classi ActionScript var smallest:Number = Number.MIN_VALUE; Disponibilità Flash Lite 2.0 Riepilogo delle proprietà Modificatori Proprietà Descrizione static MAX_VALUE:Number Il più grande numero rappresentabile (IEEE-754 a doppia precisione). static MIN_VALUE:Number Il più piccolo numero rappresentabile (IEEE-754 a doppia precisione). static NaN:Number Il valore IEEE-754 che rappresenta Not A Number (NaN). static NEGATIVE_INFINITY:Num ber Indica il valore IEEE-754 che rappresenta l'infinito negativo. static POSITIVE_INFINITY:Numb er Indica il valore IEEE-754 che rappresenta l'infinito positivo. Proprietà ereditate dalla classe Object constructor (proprietà Object.constructor), __proto__ (proprietà Object._proto), prototype (proprietà Object.prototype), __resolve (proprietà Object.__resolve) Riepilogo delle funzioni di costruzione Firma Descrizione Number(num:Object) Crea un nuovo oggetto Number. Riepilogo dei metodi Modificatori Firma Descrizione toString(radix:Number ) : String Restituisce la rappresentazione in formato stringa dell'oggetto Number specificato (myNumber). valueOf() : Number Restituisce il tipo di valore di base dell'oggetto Number specificato. Metodi ereditati dalla classe Object addProperty (metodo Object.addProperty), hasOwnProperty (metodo Object.hasOwnProperty), isPropertyEnumerable (metodo Object.isPropertyEnumerable), isPrototypeOf (metodo Object.isPrototypeOf), registerClass (metodo Object.registerClass), toString (metodo Object.toString)unwatch (metodo Object.unwatch), valueOf (metodo Object.valueOf), watch (metodo Object.watch) MAX_VALUE (proprietà Number.MAX_VALUE) public static MAX_VALUE : Number Il più grande numero rappresentabile (IEEE-754 a doppia precisione). Questo numero corrisponde approssimativamente a 1,79e+308. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 501 Classi ActionScript Disponibilità Flash Lite 2.0 Esempio Il codice ActionScript seguente visualizza scrive i numeri rappresentabili più grande e più piccolo nel pannello Output. trace("Number.MIN_VALUE = "+Number.MIN_VALUE); trace("Number.MAX_VALUE = "+Number.MAX_VALUE); Questo codice registra visualizza i valori seguenti: Number.MIN_VALUE = 4.94065645841247e-324 Number.MAX_VALUE = 1.79769313486232e+308 MIN_VALUE (proprietà Number.MIN_VALUE) public static MIN_VALUE : Number Il più piccolo numero rappresentabile (IEEE-754 a doppia precisione). Questo numero corrisponde approssimativamente a 5e-324. Disponibilità Flash Lite 2.0 Esempio Il codice ActionScript seguente visualizza i numeri rappresentabili più grande e più piccolo nel pannello Output nel file di registro. trace("Number.MIN_VALUE = "+Number.MIN_VALUE); trace("Number.MAX_VALUE = "+Number.MAX_VALUE); Questo codice registra visualizza i valori seguenti: Number.MIN_VALUE = 4.94065645841247e-324 Number.MAX_VALUE = 1.79769313486232e+308 NaN (proprietà Number.NaN) public static NaN : Number Il valore IEEE-754 che rappresenta Not A Number (NaN). Disponibilità Flash Lite 2.0 Vedete anche Funzione isNaN NEGATIVE_INFINITY (proprietà Number.NEGATIVE_INFINITY) public static NEGATIVE_INFINITY : Number Indica il valore IEEE-754 che rappresenta l'infinito negativo. Il valore di questa proprietà equivale a quello della costante -Infinity. Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 502 Classi ActionScript L'infinito negativo è un valore numerico speciale che viene restituito quando un'operazione o una funzione matematica restituisce un valore negativo superiore a quello che è possibile rappresentare. Disponibilità Flash Lite 2.0 Esempio Questo esempio confronta il risultato della divisione dei valori seguenti. var posResult:Number = 1/0; if (posResult == Number.POSITIVE_INFINITY) { trace("posResult = "+posResult); // output: posResult = Infinity } var negResult:Number = -1/0; if (negResult == Number.NEGATIVE_INFINITY) { trace("negResult = "+negResult); // output: negResult = -Infinity Number (funzione di costruzione) public Number(num:Object) Crea un nuovo oggetto Number. La funzione di costruzione new Number viene utilizzata principalmente come segnaposto. L'oggetto Number non equivale alla funzione Number() che converte un parametro in un valore di base. Disponibilità Flash Lite 2.0 Parametri num : Object - Il valore numerico dell'oggetto Number da creare o un valore da convertire in un numero. Il valore predefinito è 0, se non viene specificato value. Esempio Il codice seguente crea nuovi oggetti Number: var n1:Number = new Number(3.4); var n2:Number = new Number(-10); Vedete anche toString (metodo Number.toString), valueOf (metodo Number.valueOf) POSITIVE_INFINITY (proprietà Number.POSITIVE_INFINITY) public static POSITIVE_INFINITY : Number Indica il valore IEEE-754 che rappresenta l'infinito positivo. Il valore di questa proprietà equivale a quello della costante Infinity. L'infinito positivo è un valore numerico speciale che viene restituito quando un'operazione o una funzione matematica restituisce un valore superiore a quello che è possibile rappresentare. Disponibilità Flash Lite 2.0 Ultimo aggiornamento 4/5/2010 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 503 Classi ActionScript Esempio Questo esempio confronta il risultato della divisione dei valori seguenti. var posResult:Number = 1/0; if (posResult == Number.POSITIVE_INFINITY) { trace("posResult = "+posResult); // output: posResult = Infinity } var negResult:Number = -1/0; if (negResult == Number.NEGATIVE_INFINITY) { trace("negResult = "+negResult); // output: negResult = -Infinity toString (metodo Number.toString) public toString(radix:Number) : String Restituisce la rappresentazione in formato stringa dell'oggetto Number specificato (myNumber). Disponibilità Flash Lite 2.0 Parametri radix : Number - Specifica la base numerica (da 2 a 36) da utilizzare per la conversione da numero a stringa. Se non si specifica il parametro radix, il valore predefinito è 10. Restituisce String - Una stringa. Esempio Nell'esempio seguente vengono utilizzati i valori 2 e 8 per il parametro radix e viene restituita una stringa contenente la corrispondente rappresentazione del numero 9: var myNumber:Number = new Number(9); trace(myNumber.toString(2)); // output: 1001 trace(myNumber.toString(8)); // output: 11 Nell'esempio seguente viene restituito un valore esadecimale. var r:Number = new Number(250); var g:Number = new Number(128); var b:Number = new Number(114); var rgb:String = "0x"+ r.toString(16)+g.toString(16)+b.toString(16); trace(rgb); // output: rgb:0xFA8072 (Hexadecimal equivalent of the color 'salmon') valueOf (metodo Number.valueOf) public valueOf() : Number Restituisce il tipo di valore di base dell'oggetto Number specificato. Disponibilità Flash Lite 2.0 GUIDA DI RIFERIMENTO DI ACTIONSCRIPT PER FLASH LITE 2.X E 3.X 504 Ultimo aggiornamento 4/5/2010 Classi ActionScript Restituisce Number - Una stringa. Esempio Nell'esempio seguente viene restituito il valore di base dell'oggetto numSocks. var numSocks = new Number(2); trace(numSocks.valueOf()); // output: 2 Object Object public class Object La classe Object è alla radice della gerarchia delle classi ActionScript. Contiene un piccolo sottoinsieme di funzioni fornite dalla classe Object di JavaScript. Disponibilità Flash Lite 2.0 Riepilogo delle proprietà Modificatori static Proprietà Descrizione constructor:Obje