﻿<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets>
<!--
Questo file determina quali snippet di codice appaiono nel pannello Snippet di codice.

Attributo isBranch - Impostato su "false" per gli snippet.
title - Il nome dello snippet da visualizzare nel pannello Snippet di codice.
description - La descrizione dello snippet da visualizzare nel suggerimento.
requiresSymbol - Impostato su true se lo snippet richiede la selezione di un oggetto sullo stage.
code - Il codice da inserire. Il codice vero e proprio deve essere inserito nel blocco CDATA come in questo esempio.
minPlayerVersion - Il file FLA deve supportare una versione minima di Flash Player.
maxPlayerVersion -  Il file FLA deve supportare una versione massima di Flash Player (o inferiore).
minASVersion - Il file FLA deve supportare una versione minima di ActionScript .
maxASVersion - Il file FLA deve supportare una versione massima di ActionScript (o inferiore).

Per creare dei vostri snippet di codice personalizzati, copiate quello vuoto riportato di seguito e incollatelo nella categoria in cui volete visualizzarlo.

	<snippet isBranch="false">
	  <title>Snippet personalizzato</title>
	  <description>Questo è un esempio di snippet di codice personalizzato.</description>
	  <requiresSymbol>true</requiresSymbol>
	  <code><![CDATA[
// Inserite qui il codice
trace("Uno snippet di codice personalizzato");
	  ]]></code>
	</snippet>
-->
<snippets>
  <category title="Azioni"
      isBranch="true" expanded="false"
      description="Codice per interazioni comuni">
	<snippet isBranch="false">
	  <title>Clic per andare alla pagina Web</title>
	  <description>Quando si fa clic sull'oggetto specificato, l'URL viene caricato in una nuova finestra del browser.</description>
	  <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
		<placeholder
			text="http://www.adobe.com"
			type="editableText" />
	  </placeholders>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Click_to_Go_to_Web_Page</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Clic per andare alla pagina Web
Quando si fa clic sull'istanza di simbolo specificata, l'URL viene caricato in una nuova finestra del browser.

Istruzioni:
1. Sostituite http://www.adobe.com con l'indirizzo URL desiderato.
   Mantenete le virgolette ("").
*/

instance_name_here.addEventListener(MouseEvent.CLICK, fl_ClickToGoToWebPage);

function fl_ClickToGoToWebPage(event:MouseEvent):void
{
	navigateToURL(new URLRequest("http://www.adobe.com"), "_blank");
}
]]></code>
	</snippet>
	<snippet isBranch="false">
	  <title>Cursore mouse personalizzato</title>
	  <description>Sostituisce il cursore predefinito del mouse con l'oggetto specificato sullo stage.</description>
	  <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
	  </placeholders>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Custom_Mouse_Cursor</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Cursore mouse personalizzato
Sostituisce il cursore predefinito del mouse con l'istanza di simbolo specificata.
*/

stage.addChild(instance_name_here);
instance_name_here.mouseEnabled = false;
instance_name_here.addEventListener(Event.ENTER_FRAME, fl_CustomMouseCursor);

function fl_CustomMouseCursor(event:Event)
{
	instance_name_here.x = stage.mouseX;
	instance_name_here.y = stage.mouseY;
}
Mouse.hide();

// Per ripristinare il puntatore predefinito del mouse, rimuovere i segni di commento dalle righe seguenti:
//instance_name_here.removeEventListener(Event.ENTER_FRAME, fl_CustomMouseCursor);
//stage.removeChild(instance_name_here);
//Mouse.show();
]]></code>
	</snippet>
	<snippet isBranch="false">
	  <title>Trascina e rilascia</title>
	  <description>Rende l'oggetto specificato spostabile mediante 'trascina e rilascia'.</description>
	  <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
	  </placeholders>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Drag_and_Drop</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Trascina e rilascia
Rende l'istanza di simbolo spostabile mediante 'trascina e rilascia'.
*/

instance_name_here.addEventListener(MouseEvent.MOUSE_DOWN, fl_ClickToDrag);

function fl_ClickToDrag(event:MouseEvent):void
{
	instance_name_here.startDrag();
}

stage.addEventListener(MouseEvent.MOUSE_UP, fl_ReleaseToDrop);

function fl_ReleaseToDrop(event:MouseEvent):void
{
	instance_name_here.stopDrag();
}
]]></code>
	</snippet>
	<snippet isBranch="false">
	  <title>Riproduci un clip filmato</title>
	  <description>Riproduce l'oggetto o clip filmato specificato attualmente interrotto sullo stage.</description>
	  <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
	  </placeholders>
	  <ADOBE_PIP_ID>Play_a_Movie_Clip</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Riproduci un clip filmato
Riproduce il clip filmato specificato sullo stage.

Istruzioni:
1. Utilizzate questo codice per i clip filmato attualmente interrotti.
*/

instance_name_here.play();
]]></code>
	</snippet>
	<snippet isBranch="false">
	  <title>Interrompi un clip filmato</title>
	  <description>Interrompe l'oggetto o clip filmato specificato attualmente riprodotto sullo stage.</description>
	  <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
	  </placeholders>
	  <ADOBE_PIP_ID>Stop_a_Movie_Clip</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Interrompi un clip filmato
Interrompe il clip filmato specificato sullo stage.

Istruzioni:
1. Utilizzate questo codice per i clip filmato in corso di riproduzione.
*/

instance_name_here.stop();
]]></code>
	</snippet>
	<snippet isBranch="false">
	  <title>Clic per nascondere un oggetto</title>
	  <description>Quando si fa clic sull'oggetto specificato, questo viene nascosto.</description>
	  <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
	  </placeholders>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Click_to_Hide_an_Object</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Clic per nascondere un oggetto
Quando si fa clic sull'istanza di simbolo specificata, questa viene nascosta.

Istruzioni:
1. Utilizzate questo codice per gli oggetti attualmente visibili.
*/

instance_name_here.addEventListener(MouseEvent.CLICK, fl_ClickToHide);

function fl_ClickToHide(event:MouseEvent):void
{
	instance_name_here.visible = false;
}
]]></code>
	</snippet>
	<snippet isBranch="false">
	  <title>Mostra un oggetto</title>
	  <description>Rende visibile l'oggetto specificato.</description>
	  <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
	  </placeholders>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Show_an_Object</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Mostra un oggetto
Rende visibile l'istanza di simbolo specificata.

Istruzioni:
1. Utilizzate questo codice per visualizzare gli oggetti attualmente nascosti.
*/

instance_name_here.visible = true;
]]></code>
	</snippet>

	<snippet isBranch="false">
	  <title>Clic per posizionare un oggetto</title>
	  <description>Sposta l'oggetto specificato in base alla coordinate x e y specificate.</description>
	  <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
		<placeholder
			text="200"
			type="hotTextNumber"
			min="-500"
			max="5000"/>
		<placeholder
			text="100"
			type="hotTextNumber"
			min="-500"
			max="5000"/>
	  </placeholders>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Click_to_Position_an_Object</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Clic per posizionare un oggetto
Sposta l'istanza di simbolo specificata in base alla coordinate x e y specificate.

Istruzioni:
1. Sostituite il valore 200 con la coordinata x
   in cui posizionare l'oggetto.
2. Sostituite il valore 100 con la coordinata y in cui volete posizionare l'oggetto.
*/

instance_name_here.addEventListener(MouseEvent.CLICK, fl_ClickToPosition);

function fl_ClickToPosition(event:MouseEvent):void
{
	instance_name_here.x = 200;
	instance_name_here.y = 100;
}
]]></code>
	</snippet>

	<snippet isBranch="false">
	  <title>Clic per visualizzare un campo di testo</title>
	  <description>Quando si fa clic sull'oggetto specificato, viene creato e visualizzato un campo di testo nella posizione specificata.</description>
	  <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
		<placeholder
			type="hotTextNumber"
			text="100"
			subType="int"
			min="0" />
		<placeholder
			type="hotTextNumber"
			text="200"
			subType="int"
			min="0" />
		<placeholder
			text="Lorem ipsum dolor sit amet."
			type="editableText" />
	  </placeholders>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Click_to_Display_a_TextField</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Clic per visualizzare un campo di testo
Quando si fa clic sull'istanza di simbolo specificata viene creato e visualizzato un campo di testo in corrispondenza delle coordinate x e y specificate.

Istruzioni:
1. Sostituite il valore 200 con la coordinata x in cui posizionare il campo di testo.
2. Sostituite il valore 100 con la coordinata y in cui posizionare il campo di testo.
3. Sostituite il valore stringa "Lorem ipsum dolor sit amet" con il testo da visualizzare nel campo di testo TextField che viene visualizzato. Mantenete le virgolette.
*/

instance_name_here.addEventListener(MouseEvent.CLICK, fl_ClickToPosition);

var fl_TF:TextField;
var fl_TextToDisplay:String = "Lorem ipsum dolor sit amet.";

function fl_ClickToPosition(event:MouseEvent):void
{
	fl_TF = new TextField();
	fl_TF.autoSize = TextFieldAutoSize.LEFT;
	fl_TF.background = true;
	fl_TF.border = true;
	fl_TF.x = 200;
	fl_TF.y = 100;
	fl_TF.text = fl_TextToDisplay;
	addChild(fl_TF);
}
]]></code>
	</snippet>

	<snippet isBranch="false">
	  <title>Genera un numero casuale</title>
	  <description>Genera un valore numerico casuale compreso tra 0 e un numero specificato.</description>
	  <placeholders>
		<placeholder
			type="hotTextNumber"
			text="100"
			subType="int"
			min="2" />
	  </placeholders>
	  <ADOBE_PIP_ID>Generate_a_Random_Number</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Genera un numero casuale
Genera un numero casuale compreso tra 0 e un valore limite specificato.

Istruzioni:
1. Per cambiare il valore massimo casuale, sostituite il numero 100 nell'ultima riga dello snippet con un numero a vostra scelta.
2. Questo codice visualizza il numero casuale nel pannello Codice.
*/

function fl_GenerateRandomNumber(limit:Number):Number
{
	var randomNumber:Number = Math.floor(Math.random()*(limit+1));
	return randomNumber;
}
trace(fl_GenerateRandomNumber(100));
]]></code>
	</snippet>

	<snippet isBranch="false">
	  <title>Porta l'oggetto in primo piano</title>
	  <description>Porta in primo piano l'oggetto su cui si fa clic.</description>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Bring_Object_to_the_Front</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Porta in primo piano l'oggetto su cui si fa clic
Quando si fa clic su un simbolo sullo stage, il simbolo viene portato in primo piano rispetto a tutte le altre istanze.
*/

// Questo codice rende cliccabili tutte le istanze di simbolo sullo stage consentendo ad esse di intercettare l'evento CLICK.
for (var fl_ChildIndex:int = 0;
		fl_ChildIndex < this.numChildren;
		fl_ChildIndex++)
{
	this.getChildAt(fl_ChildIndex).addEventListener(MouseEvent.CLICK, fl_ClickToBringToFront);
}

// Questa è la funzione che sposta l'oggetto su cui si fa clic in primo piano nell'elenco di visualizzazione.

function fl_ClickToBringToFront(event:MouseEvent):void
{
	this.addChild(event.currentTarget as DisplayObject);
}
]]></code>
	</snippet>

	<snippet isBranch="false">
	  <title>Timer semplice</title>
	  <description>Visualizza un timer nel pannello Output, che esegue un conto alla rovescia a partire dal valore specificato.</description>
	  <placeholders>
		<placeholder
			type="hotTextNumber"
			text="30"
			subType="int"
			min="1" />
	  </placeholders>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Simple_Timer</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Timer semplice
Visualizza un timer di conto alla rovescia nel pannello Output fino allo scadere dell'intervallo di 30 secondi.
Questo codice è un buon punto di partenza per la creazione di timer personalizzati.

Istruzioni:
1. Per cambiare il numero di secondi del timer, sostituite il valore 30 nella prima riga qui sotto con il numero di secondi desiderato.
*/

var fl_TimerInstance:Timer = new Timer(1000, 30);
fl_TimerInstance.addEventListener(TimerEvent.TIMER, fl_TimerHandler);
fl_TimerInstance.start();

var fl_SecondsElapsed:Number = 1;

function fl_TimerHandler(event:TimerEvent):void
{
	trace("Secondi trascorsi: " + fl_SecondsElapsed);
	fl_SecondsElapsed++;
}
]]></code>
	</snippet>
	<snippet isBranch="false">
	  <title>Timer di conto alla rovescia</title>
	  <description>Esegue un conto alla rovescia a partire dal valore specificato.</description>
	  <placeholders>
		<placeholder
			type="hotTextNumber"
			text="10"
			subType="int"
			min="2" />
	  </placeholders>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Countdown_Timer</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Timer di conto alla rovescia
Effettua un conto alla rovescia a partire dal numero di secondi specificato.

Istruzioni:
1. Per cambiare la durata del conto alla rovescia, sostituite il valore 10 nella prima riga qui sotto con il numero di secondi desiderato.
*/

var fl_SecondsToCountDown:Number = 10;

var fl_CountDownTimerInstance:Timer = new Timer(1000, fl_SecondsToCountDown);
fl_CountDownTimerInstance.addEventListener(TimerEvent.TIMER, fl_CountDownTimerHandler);
fl_CountDownTimerInstance.start();

function fl_CountDownTimerHandler(event:TimerEvent):void
{
	trace(fl_SecondsToCountDown + " secondi");
	fl_SecondsToCountDown--;
}
]]></code>
	</snippet>
	</category>


	<category title="Navigazione linea temporale"
	    isBranch="true"
	    description="Codice per controllare la riproduzione dei filmati">
	<snippet isBranch="false">
	  <title>Ferma a questo fotogramma</title>
	  <description>Ferma la testina di riproduzione, non facendola avanzare al fotogramma successivo della linea temporale.</description>
	  <ADOBE_PIP_ID>Stop_at_this_Frame</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Ferma a questo fotogramma
La linea temporale di Flash si fermerà/effettuerà una pausa in corrispondenza del fotogramma in cui inserite questo codice.
Può essere utilizzato anche per fermare/mettere in pausa la linea temporale dei clip filmato.
*/

stop();
]]></code>
	</snippet>

	<snippet isBranch="false">
	  <title>Clic per andare al fotogramma specificato e interrompere la riproduzione</title>
	  <description>Quando si fa clic sull'oggetto, la testina di riproduzione si sposta sul fotogramma specificato e la riproduzione si ferma.</description>
	  <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
		<placeholder
			text="5"
			type="hotTextNumber"
			min="1" />
	  </placeholders>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Click_to_Go_to_Frame_and_Stop</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Clic per andare al fotogramma specificato e interrompere la riproduzione
Quando si fa clic sull'istanza di simbolo specificata, la testina di riproduzione si sposta sul fotogramma della linea temporale specificato e il filmato si interrompe.
Può essere utilizzato sulla linea temporale principale o sulle linee temporali dei clip filmato.

Istruzioni:
1. Sostituite il numero 5 nel codice sottostante con il numero del fotogramma sul quale volete che si sposti la testina di riproduzione quando si fa clic sull'istanza del simbolo.
*/

instance_name_here.addEventListener(MouseEvent.CLICK, fl_ClickToGoToAndStopAtFrame);

function fl_ClickToGoToAndStopAtFrame(event:MouseEvent):void
{
	gotoAndStop(5);
}
]]></code>
	</snippet>

	<snippet isBranch="false">
	  <title>Clic per andare al fotogramma specificato e avviare la riproduzione</title>
	  <description>Quando si fa clic sull'oggetto, la testina di riproduzione si sposta sul fotogramma specificato e la riproduzione riprende da quel punto.</description>
	  <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
		<placeholder
			text="5"
			type="hotTextNumber"
			min="1" />
	  </placeholders>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Click_to_Go_to_Frame_and_Play</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Clic per andare al fotogramma specificato e avviare la riproduzione
Quando si fa clic sull'istanza di simbolo specificata, la testina di riproduzione si sposta sul fotogramma della linea temporale specificato e la riproduzione riprende da quel punto.
Può essere utilizzato sulla linea temporale principale o sulle linee temporali dei clip filmato.

Istruzioni:
1. Sostituite il numero 5 nel codice sottostante con il numero del fotogramma sul quale volete che si sposti la testina di riproduzione quando si fa clic sull'istanza del simbolo.
*/

instance_name_here.addEventListener(MouseEvent.CLICK, fl_ClickToGoToAndPlayFromFrame);

function fl_ClickToGoToAndPlayFromFrame(event:MouseEvent):void
{
	gotoAndPlay(5);
}
]]></code>
	</snippet>
	<snippet isBranch="false">
	  <title>Clic per andare al fotogramma successivo e interrompere la riproduzione</title>
	  <description>Quando si fa clic sull'oggetto, la testina di riproduzione si sposta sul fotogramma successivo e si ferma.</description>
	  <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
	  </placeholders>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Click_to_Go_to_Next_Frame_and_Stop</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Clic per andare al fotogramma successivo e interrompere la riproduzione
Quando si fa clic sull'istanza di simbolo specificata, la testina di riproduzione si sposta sul fotogramma successivo e il filmato si interrompe.
*/

instance_name_here.addEventListener(MouseEvent.CLICK, fl_ClickToGoToNextFrame);

function fl_ClickToGoToNextFrame(event:MouseEvent):void
{
	nextFrame();
}
]]></code>
	</snippet>

	<snippet isBranch="false">
	  <title>Clic per andare al fotogramma precedente e interrompere la riproduzione</title>
	  <description>Quando si fa clic sull'oggetto, la testina di riproduzione si sposta sul fotogramma precedente e si ferma.</description>
	  <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
	  </placeholders>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Click_to_Go_to_Previous_Frame_and_Stop</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Clic per andare al fotogramma precedente e interrompere la riproduzione
Quando si fa clic sull'istanza di simbolo specificata, la testina di riproduzione si sposta sul fotogramma precedente e il filmato si interrompe.
*/

instance_name_here.addEventListener(MouseEvent.CLICK, fl_ClickToGoToPreviousFrame);

function fl_ClickToGoToPreviousFrame(event:MouseEvent):void
{
	prevFrame();
}
]]></code>
	</snippet>
	<snippet isBranch="false">
	  <title>Clic per andare alla scena successiva e riprendere la riproduzione</title>
	  <description>Quando si fa clic sull'oggetto, la testina di riproduzione si sposta sulla scena successiva e la riproduzione riprende da quel punto.</description>
	  <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
	  </placeholders>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Click_to_Go_to_Next_Scene_and_Play</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Clic per andare alla scena successiva e riprendere la riproduzione
Quando si fa clic sull'istanza di simbolo specificata, la testina di riproduzione si sposta sulla scena successiva della linea temporale specificato e la riproduzione riprende da quel punto.
*/

instance_name_here.addEventListener(MouseEvent.CLICK, fl_ClickToGoToNextScene);

function fl_ClickToGoToNextScene(event:MouseEvent):void
{
	MovieClip(this.root).nextScene();
}
]]></code>
	</snippet>
	<snippet isBranch="false">
	  <title>Clic per andare alla scena precedente e riprendere la riproduzione</title>
	  <description>Quando si fa clic sull'oggetto, la testina di riproduzione si sposta sulla scena precedente e la riproduzione riprende da quel punto.</description>
	  <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
	  </placeholders>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Click_to_Go_to_Previous_Scene_and_Play</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Clic per andare alla scena precedente e riprendere la riproduzione
Quando si fa clic sull'istanza di simbolo specificata, la testina di riproduzione si sposta sulla scena precedente della linea temporale e la riproduzione riprende da quel punto.
*/

instance_name_here.addEventListener(MouseEvent.CLICK, fl_ClickToGoToPreviousScene);

function fl_ClickToGoToPreviousScene(event:MouseEvent):void
{
	MovieClip(this.root).prevScene();
}
]]></code>
	</snippet>
	<snippet isBranch="false">
	  <title>Clic per andare alla scena e avviare la riproduzione</title>
	  <description>Quando si fa clic sull'oggetto, il filmato viene riprodotto a partire dalla scena e dal fotogramma specificati.</description>
	  <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
		<placeholder
			text="Scena 3"
			type="editableText" />
		<placeholder
			text="1"
			type="hotTextNumber"
			min="1" />
	  </placeholders>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Click_to_Go_to_Scene_and_Play</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Clic per andare alla scena e avviare la riproduzione
Quando si fa clic sull'istanza di simbolo specificata, il filmato viene riprodotto a partire dalla scena e dal fotogramma specificati.

Istruzioni:
1. Sostituite "Scene 3" con il nome della scena da riprodurre.
2. Sostituite 1 con il numero del fotogramma da cui riprodurre il filmato nella scena specificata.
*/

instance_name_here.addEventListener(MouseEvent.CLICK, fl_ClickToGoToScene);

function fl_ClickToGoToScene(event:MouseEvent):void
{
	MovieClip(this.root).gotoAndPlay(1, "Scena 3");
}
]]></code>
	</snippet>
	</category>


	<category title="Animazione"
	    isBranch="true"
	    description="Codice per modificare le proprietà di un oggetto nel corso del tempo">

	<snippet isBranch="false">
	  <title>Sposta con i tasti freccia</title>
	  <description>Consente di spostare l'oggetto con i tasti freccia della tastiera.</description>
	  <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
		<placeholder
			type="hotTextNumber"
			text="5"
			subType="int"
			min="1" />
	  </placeholders>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Move_with_Keyboard_Arrows</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Sposta con i tasti freccia
Consente di spostare l'istanza di simbolo specificata con i tasti freccia della tastiera.

Istruzioni:
1. Per aumentare o ridurre la quantità di movimento, sostituite il numero 5 qui sotto con il numero di pixel di cui volete che si sposti l'istanza di simbolo a ogni pressione di un tasto.
Nota: il numero 5 appare quattro volte nel codice seguente.
*/

var upPressed:Boolean = false;
var downPressed:Boolean = false;
var leftPressed:Boolean = false;
var rightPressed:Boolean = false;

instance_name_here.addEventListener(Event.ENTER_FRAME, fl_MoveInDirectionOfKey);
stage.addEventListener(KeyboardEvent.KEY_DOWN, fl_SetKeyPressed);
stage.addEventListener(KeyboardEvent.KEY_UP, fl_UnsetKeyPressed);

function fl_MoveInDirectionOfKey(event:Event)
{
	if (upPressed)
	{
		instance_name_here.y -= 5;
	}
	if (downPressed)
	{
		instance_name_here.y += 5;
	}
	if (leftPressed)
	{
		instance_name_here.x -= 5;
	}
	if (rightPressed)
	{
		instance_name_here.x += 5;
	}
}

function fl_SetKeyPressed(event:KeyboardEvent):void
{
	switch (event.keyCode)
	{
		case Keyboard.UP:
		{
			upPressed = true;
			break;
		}
		case Keyboard.DOWN:
		{
			downPressed = true;
			break;
		}
		case Keyboard.LEFT:
		{
			leftPressed = true;
			break;
		}
		case Keyboard.RIGHT:
		{
			rightPressed = true;
			break;
		}
	}
}

function fl_UnsetKeyPressed(event:KeyboardEvent):void
{
	switch (event.keyCode)
	{
		case Keyboard.UP:
		{
			upPressed = false;
			break;
		}
		case Keyboard.DOWN:
		{
			downPressed = false;
			break;
		}
		case Keyboard.LEFT:
		{
			leftPressed = false;
			break;
		}
		case Keyboard.RIGHT:
		{
			rightPressed = false;
			break;
		}
	}
}
]]></code>
	</snippet>

	<snippet isBranch="false">
	  <title>Sposta orizzontalmente</title>
	  <description>Sposta l'oggetto specificato a sinistra o a destra del numero di pixel specificato.</description>
	  <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
		<placeholder
			type="hotTextNumber"
			text="100"
			min="-500"
			max="500" />
	  </placeholders>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Move_Horizontally</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Sposta orizzontalmente
Sposta l'istanza di simbolo specificata a sinistra o a destra aumentandone o riducendone la proprietà x del numero di pixel specificato.

Istruzioni:
1. Questo codice sposta l'istanza di simbolo a destra per impostazione predefinita.
2. Per spostare l'istanza di simbolo a sinistra, sostituite il numero 100 qui sotto con un valore negativo.
3. Per modificare la quantità di movimento dell'istanza di simbolo, sostituite il numero 100 qui sotto con il numero di pixel di cui volete che si sposti l'istanza di simbolo.
*/

instance_name_here.x += 100;
]]></code>
	</snippet>
	<snippet isBranch="false">
	  <title>Sposta verticalmente</title>
	  <description>Sposta l'oggetto specificato in alto o in basso del numero di pixel specificato.</description>
	  <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
		<placeholder
			type="hotTextNumber"
			text="100"
			min="-500"
			max="500" />
	  </placeholders>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Move_Vertically</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Sposta verticalmente
Sposta l'istanza di simbolo in alto o in basso aumentandone o riducendone la proprietà y del numero di pixel specificato.

Istruzioni:
1. Lo spostamento predefinito del codice così come è scritto è verso il basso.
2. Per spostare l'istanza di simbolo in alto, sostituite il numero 100 qui sotto con un valore negativo.
3. Per modificare la quantità di movimento dell'istanza di simbolo, sostituite il numero 100 qui sotto con il numero di pixel di cui volete che si sposti l'istanza di simbolo.
*/

instance_name_here.y += 100;
]]></code>
	</snippet>

	<snippet isBranch="false">
	  <title>Ruota una volta</title>
	  <description>Ruota l'oggetto specificato una volta nella direzione specificata aggiornando la proprietà rotation.</description>
	  <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
		<placeholder
			type="hotTextNumber"
			text="45"
			min="-180"
			max="180" />
	  </placeholders>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Rotate_Once</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Ruota una volta
Ruota l'istanza di simbolo aggiornandone la proprietà rotation del numero di gradi specificato.

Istruzioni:
1. La rotazione predefinita del codice così come è scritto è in senso orario.
2. Per ruotare l'istanza di simbolo in senso antiorario, sostituite il numero 45 qui sotto con un valore negativo.
3. Per modificare la quantità di rotazione dell'istanza di simbolo, sostituite il valore 45 qui sotto con il numero di gradi di rotazione desiderato.
*/

instance_name_here.rotation += 45;
]]></code>
	</snippet>
	<snippet isBranch="false">
	  <title>Ruota continuamente</title>
	  <description>Ruota l'oggetto in modo continuativo aggiornandone la proprietà rotation con un evento ENTER_FRAME.</description>
	  <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
		<placeholder
			type="hotTextNumber"
			text="10"
			min="-180"
			max="180" />
	  </placeholders>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Rotate_Continuously</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Ruota continuamente
Ruota l'istanza di simbolo in modo continuativo aggiornandone la proprietà rotation con un evento ENTER_FRAME.

Istruzioni:
1. La rotazione predefinita del codice così come è scritto è in senso orario.
2. Per passare a una rotazione in senso antiorario, sostituite il numero 10 qui sotto con un valore negativo.
3. Per modificare la velocità di rotazione dell'istanza di simbolo, sostituite il numero 10 qui sotto con il numero di pixel di cui volete che ruoti l'istanza di simbolo in ciascun fotogramma. Un numero più alto corrisponde a una rotazione più veloce.
4. Poiché l'animazione utilizza un evento ENTER_FRAME, essa avanza solo quando la testina di riproduzione si sposta in un nuovo fotogramma. La velocità dell'animazione dipende anche dalla frequenza dei fotogrammi del documento.
*/

instance_name_here.addEventListener(Event.ENTER_FRAME, fl_RotateContinuously);

function fl_RotateContinuously(event:Event)
{
	instance_name_here.rotation += 10;
}
]]></code>
	</snippet>

	<snippet isBranch="false">
	  <title>Anima orizzontalmente</title>
	  <description>Anima l'oggetto specificato orizzontalmente sullo stage aggiornando la proprietà X dell'evento ENTER_FRAME.</description>
	  <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
		<placeholder
			type="hotTextNumber"
			text="10"
			min="-100"
			max="100" />
	  </placeholders>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Animate_Horizontally</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Anima orizzontalmente
Sposta l'istanza di simbolo a sinistra o a destra sullo stage aumentandone o riducendone la proprietà x in un evento ENTER_FRAME.

Istruzioni:
1. La direzione predefinita dell'animazione è verso destra.
2. Per passare a un'animazione verso sinistra, sostituite il numero 10 qui sotto con un valore negativo.
3. Per modificare la velocità di movimento dell'istanza di simbolo, sostituite il numero 10 qui sotto con il numero di pixel di cui volete che si sposti l'istanza di simbolo in ciascun fotogramma.
4. Poiché l'animazione utilizza un evento ENTER_FRAME, essa avanza solo quando la testina di riproduzione si sposta in un nuovo fotogramma. La velocità dell'animazione dipende anche dalla frequenza dei fotogrammi del documento.
*/

instance_name_here.addEventListener(Event.ENTER_FRAME, fl_AnimateHorizontally);

function fl_AnimateHorizontally(event:Event)
{
	instance_name_here.x += 10;
}
]]></code>
	</snippet>
	<snippet isBranch="false">
	  <title>Anima verticalmente</title>
	  <description>Anima l'oggetto specificato verticalmente sullo stage aggiornando la proprietà Y dell'evento ENTER_FRAME.</description>
	  <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
		<placeholder
			type="hotTextNumber"
			text="10"
			min="-100"
			max="100" />
	  </placeholders>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Animate_Vertically</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Anima verticalmente
Sposta l'istanza di simbolo verticalmente sullo stage aumentandone o riducendone la proprietà y in un evento ENTER_FRAME.

Istruzioni:
1. La direzione predefinita dell'animazione è verso il basso.
2. Per passare a un'animazione verso l'alto, sostituite il numero 10 qui sotto con un valore negativo.
3. Per modificare la velocità di movimento dell'istanza di simbolo, sostituite il numero 10 qui sotto con il numero di pixel di cui volete che si sposti l'istanza di simbolo in ciascun fotogramma.
4. Poiché l'animazione utilizza un evento ENTER_FRAME, essa avanza solo quando la testina di riproduzione si sposta in un nuovo fotogramma. La velocità dell'animazione dipende anche dalla frequenza dei fotogrammi del documento.
*/

instance_name_here.addEventListener(Event.ENTER_FRAME, fl_AnimateVertically);

function fl_AnimateVertically(event:Event)
{
	instance_name_here.y += 10;
}
]]></code>
	</snippet>

	<snippet isBranch="false">
	  <title>Dissolvenza in entrata di un clip filmato</title>
	  <description>Applica la dissolvenza in entrata all'oggetto specificato aggiornando la proprietà alpha dell'evento ENTER_FRAME.</description>
	  <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
		<placeholder
			type="hotTextNumber"
			text="0.01"
			subType="Number"
			increment="0.001"
			min="0.001"
			max="1" />
	  </placeholders>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Fade_In_a_Movie_Clip</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Dissolvenza in entrata di un clip filmato
Esegue una dissolvenza in entrata dell'istanza di simbolo aumentandone la proprietà alpha con un evento ENTER_FRAME finché non è completamente visibile.

Istruzioni:
1. Per cambiare la velocità di dissolvenza in entrata dell'istanza di simbolo, modificate il valore 0.01 qui sotto (il numero deve essere maggiore di 0 e inferiore o uguale a 1). A un valore maggiore corrisponde una dissolvenza in entrata più veloce.
2. Poiché l'animazione utilizza un evento ENTER_FRAME, essa avanza solo quando la testina di riproduzione si sposta in un nuovo fotogramma. La velocità dell'animazione dipende anche dalla frequenza dei fotogrammi del documento.
*/

instance_name_here.addEventListener(Event.ENTER_FRAME, fl_FadeSymbolIn);
instance_name_here.alpha = 0;

function fl_FadeSymbolIn(event:Event)
{
	instance_name_here.alpha += 0.01;
	if(instance_name_here.alpha >= 1)
	{
		instance_name_here.removeEventListener(Event.ENTER_FRAME, fl_FadeSymbolIn);
	}
}
]]></code>
	</snippet>
	<snippet isBranch="false">
	  <title>Dissolvenza in uscita di un clip filmato</title>
	  <description>Applica la dissolvenza in uscita all'oggetto specificato aggiornando la proprietà alpha dell'evento ENTER_FRAME.</description>
	  <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
		<placeholder
			type="hotTextNumber"
			text="0.01"
			subType="Number"
			increment="0.001"
			min="0.001"
			max="1" />
	  </placeholders>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Fade_Out_a_Movie_Clip</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Dissolvenza in uscita di un clip filmato
Esegue una dissolvenza in uscita dell'istanza di simbolo riducendone la proprietà alpha con un evento ENTER_FRAME finché non diventa invisibile.

Istruzioni:
1. Per cambiare la velocità di dissolvenza in uscita dell'istanza di simbolo, modificate il valore 0.01 qui sotto (il numero deve essere maggiore di 0 e inferiore o uguale a 1). A un valore maggiore corrisponde una dissolvenza in uscita più veloce.
2. Poiché l'animazione utilizza un evento ENTER_FRAME, essa avanza solo quando la testina di riproduzione si sposta in un nuovo fotogramma. La velocità dell'animazione dipende anche dalla frequenza dei fotogrammi del documento.
*/

instance_name_here.addEventListener(Event.ENTER_FRAME, fl_FadeSymbolOut);
instance_name_here.alpha = 1;

function fl_FadeSymbolOut(event:Event)
{
	instance_name_here.alpha -= 0.01;
	if(instance_name_here.alpha <= 0)
	{
		instance_name_here.removeEventListener(Event.ENTER_FRAME, fl_FadeSymbolOut);
	}
}
]]></code>
	</snippet>
  </category>


  <category title="Carica e scarica"
      isBranch="true"
      description="Codice per caricare e scaricare risorse">
	<snippet isBranch="false">
	  <title>Clic per caricare o scaricare un file SWF o un'immagine</title>
	  <description>Se si fa clic sull'oggetto specificato, viene caricato un SWF o l'URL di un'immagine. Un secondo clic scarica l'elemento.</description>
	  <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
		<placeholder
			type="editableText"
			text="http://www.helpexamples.com/flash/images/image1.jpg" />
	  </placeholders>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Click_to_Load_Unload_SWF_or_Image</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Clic per caricare o scaricare un file SWF o un'immagine da un URL.
Quando si fa clic sull'istanza di simbolo, viene caricato e visualizzato il file SWF o l'immagine presente all'URL specificato. Con un secondo clic sull'istanza di simbolo, il file SWF o l'immagine vengono scaricati.

Istruzioni:
1. Sostituite "http://www.helpexamples.com/flash/images/image1.jpg" nel codice seguente con l'indirizzo URL desiderato corrispondente al file SWF o all'immagine. Mantenete le virgolette ("").
2. Non è possibile caricare i file di domini Internet diversi dal dominio in cui risiede il file SWF chiamante, a meno che non si utilizzi una configurazione speciale.
*/

instance_name_here.addEventListener(MouseEvent.CLICK, fl_ClickToLoadUnloadSWF);

import fl.display.ProLoader;
var fl_ProLoader:ProLoader;

// Questa variabile memorizza se volete caricare o scaricare il file SWF
var fl_ToLoad:Boolean = true;

function fl_ClickToLoadUnloadSWF(event:MouseEvent):void
{
	if(fl_ToLoad)
	{
		fl_ProLoader = new ProLoader();
		fl_ProLoader.load(new URLRequest("http://www.helpexamples.com/flash/images/image1.jpg"));
		addChild(fl_ProLoader);
	}
	else
	{
		fl_ProLoader.unload();
		removeChild(fl_ProLoader);
		fl_ProLoader = null;
	}
	// Indica se volete caricare o scaricare il file SWF
	fl_ToLoad = !fl_ToLoad;
}
]]></code>
	</snippet>

	<snippet isBranch="false">
	  <title>Clic per caricare un'immagine dalla libreria</title>
	  <description>Se si fa clic sull'oggetto specificato, viene caricata e visualizzata un'immagine della libreria.</description>
	  <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
		<placeholder
			type="editableText"
			subType="identifierName"
			text="MyImage" />
	  </placeholders>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Click_to_Load_Image_from_Library</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Clic per caricare un'immagine dalla libreria
Quando si fa clic sull'istanza di simbolo, viene visualizzata l'immagine specificata della libreria.
Per caricare un'immagine dalla libreria, essa deve trovarsi nella libreria con la proprietà Esporta per ActionScript attivata e un nome di classe valido.

Istruzioni:
1. Fate clic con il pulsante destro su un simbolo di bitmap nella libreria e selezionate "Proprietà...".
2. Fate clic sul pulsante "Avanzate" per espandere la finestra di dialogo "Proprietà bitmap".
3. Attivate l'opzione "Esporta per Actionscript".
4. Digitate 'MyImage' nel campo di testo Classe.
5. Clic su OK due volte.
*/

instance_name_here.addEventListener(MouseEvent.CLICK, fl_ClickToLoadImageFromLibrary);

function fl_ClickToLoadImageFromLibrary(event:MouseEvent):void
{
	// Se volete aggiungere un'immagine diversa dalla libreria,
	// immettete un nome differente nel campo di testo Classe al punto 4 e nel codice seguente.
	var libImage:MyImage = new MyImage();

	var holder:Bitmap = new Bitmap(libImage);
	addChild(holder);
}
]]></code>
	</snippet>

	<snippet isBranch="false">
	  <title>Aggiungi istanza dalla libreria</title>
	  <description>Aggiunge allo stage un'istanza del simbolo di libreria specificato.</description>
	  <placeholders>
		<placeholder
			type="editableText"
			subType="identifierName"
			text="LibrarySymbol" />
	  </placeholders>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Add_Instance_from_Library</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Aggiungi istanza dalla libreria allo stage
Aggiunge allo stage un'istanza del simbolo di libreria MovieClip o Button specificato. Se volete aggiungere un simbolo di libreria bitmap allo stage, utilizzate lo snippet di codice "Clic per caricare un'immagine dalla libreria".

Istruzioni:
1. Clic con il pulsante destro su un simbolo nella libreria e selezionate "Proprietà...".
2. Clic sul pulsante "Avanzate" per espandere la finestra di dialogo "Proprietà simbolo".
3. Attivate l'opzione "Esporta per Actionscript".
4. Digitate 'LibrarySymbol' nel campo di testo Classe.
5. Clic su OK due volte.
*/

// Se volete aggiungere un simbolo diverso dalla libreria,
// immettete un nome differente nel campo di testo Classe al punto 4 e nel codice seguente.
var fl_MyInstance:LibrarySymbol = new LibrarySymbol();
addChild(fl_MyInstance);
]]></code>
	</snippet>

	<snippet isBranch="false">
	  <title>Rimuovi istanza dallo stage</title>
	  <description>Rimuove l'istanza di simbolo specificata dallo stage.</description>
	  <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
	  </placeholders>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Remove_Instance_from_Stage</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Rimuovi istanza dallo stage
Rimuove l'istanza di simbolo specificata dallo stage.
*/

removeChild(instance_name_here);
]]></code>
	</snippet>

	<snippet isBranch="false">
	  <title>Carica testo esterno</title>
	  <description>Carica e visualizza un file di testo nel pannello Output.</description>
	  <placeholders>
		<placeholder
			type="editableText"
			text="http://www.helpexamples.com/flash/text/loremipsum.txt" />
	  </placeholders>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Load_External_Text</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Carica testo esterno
Carica un file di testo esterno e lo visualizza nel pannello Output.

Istruzioni:
1. Sostituite "http://www.helpexamples.com/flash/text/loremipsum.txt" con l'indirizzo URL del file di testo che desiderate caricare.
L'indirizzo può essere un collegamento relativo oppure un collegamento "http://".
L'indirizzo deve essere racchiuso tra virgolette ("").
*/

var fl_TextLoader:URLLoader = new URLLoader();
var fl_TextURLRequest:URLRequest = new URLRequest("http://www.helpexamples.com/flash/text/loremipsum.txt");

fl_TextLoader.addEventListener(Event.COMPLETE, fl_CompleteHandler);

function fl_CompleteHandler(event:Event):void
{
	var textData:String = new String(fl_TextLoader.data);
	trace(textData);
}

fl_TextLoader.load(fl_TextURLRequest);
]]></code>
	</snippet>

	</category>

	<category title="Audio e video"
	    isBranch="true"
	    description="Codice per eseguire operazioni con audio e video">
	<snippet isBranch="false">
      <title>Clic per riprodurre o interrompere un suono</title>
      <description>Se si fa clic sull'oggetto specificato, viene riprodotto un suono. Un secondo clic interrompe la riproduzione. </description>
	  <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
		<placeholder
			type="editableText"
			text="http://www.helpexamples.com/flash/sound/song1.mp3" />
	  </placeholders>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Click_to_Play_Stop_Sound</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Clic per riprodurre o interrompere un suono
Quando si fa clic sull'istanza di simbolo, il suono specificato viene riprodotto.
Con un secondo clic sull'istanza di simbolo, la riproduzione del suono viene interrotta.

Istruzioni:
1. Sostituite "http://www.helpexamples.com/flash/sound/song1.mp3" nel codice seguente con l'indirizzo URL desiderato corrispondente al file sonoro. Mantenete le virgolette ("").
*/

instance_name_here.addEventListener(MouseEvent.CLICK, fl_ClickToPlayStopSound);

var fl_SC:SoundChannel;

// Questa variabile memorizza se volete riprodurre o interrompere il suono
var fl_ToPlay:Boolean = true;

function fl_ClickToPlayStopSound(evt:MouseEvent):void
{
	if(fl_ToPlay)
	{
		var s:Sound = new Sound(new URLRequest("http://www.helpexamples.com/flash/sound/song1.mp3"));
		fl_SC = s.play();
	}
	else
	{
		fl_SC.stop();
	}
	fl_ToPlay = !fl_ToPlay;
}
]]></code>
	</snippet>

	<snippet isBranch="false">
	  <title>Clic per interrompere tutti i suoni</title>
	  <description>Quando si fa clic sull'oggetto, tutti i suoni in corso di riproduzione vengono interrotti.</description>
	  <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
	  </placeholders>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Click_to_Stop_All_Sounds</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Clic per interrompere tutti i suoni
Quando si fa clic sull'istanza di simbolo, tutti i suoni in corso di riproduzione vengono interrotti.
*/

instance_name_here.addEventListener(MouseEvent.CLICK, fl_ClickToStopAllSounds);

function fl_ClickToStopAllSounds(event:MouseEvent):void
{
	SoundMixer.stopAll();
}
]]></code>
	</snippet>

	<snippet isBranch="false">
	  <title>Evento onCuePoint</title>
	  <description>Assegna una funzione da eseguire ogni volta che un cue point (qualunque momento temporale significativo di un video clip) viene passato nel video selezionato.</description>
	  <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			subType="FLVPlayback"
			text="instance_name_here" />
	  </placeholders>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>On_Cue_Point_Event</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Su gestore eventi cue point
Esegue la funzione fl_CuePointHandler definita di seguito ogni volta che viene passato un cue point nell'istanza video specificata.

Istruzioni:
1. Aggiungete il vostro codice personalizzato su una nuova riga dopo la riga con il testo "// Inizio del codice personalizzato" qui di seguito.
Il codice verrà eseguito al raggiungimento dei cue point in un video in corso di riproduzione.
*/

import fl.video.MetadataEvent;

instance_name_here.addEventListener(MetadataEvent.CUE_POINT, fl_CuePointHandler);

function fl_CuePointHandler(event:MetadataEvent):void
{
	// Inizio del codice personalizzato
	// Questo snippet di codice visualizza il nome del cue point nel pannello Output
	trace(event.info.name);
	// Fine del codice personalizzato
}
]]></code>
	</snippet>

	<snippet isBranch="false">
	  <title>Clic per riprodurre un video</title>
	  <description>Quando si fa clic sull'oggetto specificato, viene riprodotto un video all'interno di un componente FLVPlayback.</description>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
		<placeholder
			type="stageInstance"
			subType="FLVPlayback"
			text="video_instance_name" />
	  </placeholders>
	  <requiresSymbol>true</requiresSymbol>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Click_to_Play_Video</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Clic per riprodurre un video (richiede un componente FLVPlayback)
Quando si fa clic sull'istanza di simbolo, viene riprodotto nell'istanza del componente FLVPlayback specificata.

Istruzioni:
1. Sostituite video_instance_name di seguito con il nome istanza del componente FLVPlayback nel quale desiderate riprodurre il video.
   Verrà riprodotta sullo stage l'istanza specificata del componente video FLVPlayback.
2. Controllate di aver assegnato un file video di origine nelle proprietà dell'istanza del componente FLVPlayback.
*/

instance_name_here.addEventListener(MouseEvent.CLICK, fl_ClickToPlayVideo);

function fl_ClickToPlayVideo(event:MouseEvent):void
{
	// Sostituite video_instance_name con il nome istanza del componente video.
	video_instance_name.play();
}
]]></code>
	</snippet>

	<snippet isBranch="false">
	  <title>Clic per mettere in pausa un video</title>
	  <description>Quando si fa clic sull'oggetto specificato, il video all'interno di un componente FLVPlayback viene messo in pausa.</description>
	  <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
		<placeholder
			type="stageInstance"
			subType="FLVPlayback"
			text="video_instance_name" />
	  </placeholders>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Click_to_Pause_Video</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Clic per mettere in pausa un video (richiede un componente FLVPlayback)
Quando si fa clic sull'istanza di simbolo, il video riprodotto nell'istanza del componente FLVPlayback specificata viene messo in pausa.

Istruzioni:
1. Sostituite video_instance_name di seguito con il nome istanza del componente FLVPlayback da mettere in pausa.
*/

instance_name_here.addEventListener(MouseEvent.CLICK, fl_ClickToPauseVideo);

function fl_ClickToPauseVideo(event:MouseEvent):void
{
	// Sostituite video_instance_name con il nome istanza del componente video.
	video_instance_name.pause();
}
]]></code>
	</snippet>

	<snippet isBranch="false">
	  <title>Clic per riavvolgere un video</title>
	  <description>Quando si fa clic sull'oggetto specificato, il video all'interno di un componente FLVPlayback viene riavvolto.</description>
	  <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
		<placeholder
			type="stageInstance"
			subType="FLVPlayback"
			text="video_instance_name" />
	  </placeholders>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Click_to_Rewind_Video</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Clic per riavvolgere un video (richiede un componente FLVPlayback)
Quando si fa clic sull'istanza di simbolo, il video riprodotto nell'istanza del componente FLVPlayback specificata viene riavvolto.

Istruzioni:
1. Sostituite video_instance_name di seguito con il nome istanza del componente FLVPlayback da riavvolgere.
*/

instance_name_here.addEventListener(MouseEvent.CLICK, fl_ClickToPauseVideo);

function fl_ClickToPauseVideo(event:MouseEvent):void
{
	// Sostituite video_instance_name con il nome istanza del componente video.
	video_instance_name.seek(0);
}
]]></code>
	</snippet>

	<snippet isBranch="false">
	  <title>Clic per impostare l'origine video</title>
	  <description>Quando si fa clic sull'oggetto specificato, il video all'interno di un componente FLVPlayback viene sostituito.</description>
	  <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
		<placeholder
			type="stageInstance"
			subType="FLVPlayback"
			text="video_instance_name" />
		<placeholder
			type="editableText"
			text="http://www.helpexamples.com/flash/video/water.flv" />
	  </placeholders>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Click_to_Set_Video_Source</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Clic per impostare l'origine video (richiede FLVPlayback)
Quando si fa clic sull'istanza di simbolo specificata, viene riprodotto un nuovo file video nell'istanza del componente FLVPlayback specificata. L'istanza specificata del componente FLVPlayback viene messa in pausa.

Istruzioni:
1. Sostituite video_instance_name di seguito con il nome istanza del componente FLVPlayback nel quale desiderate riprodurre il nuovo file video.
2. Sostituite "http://www.helpexamples.com/flash/video/water.flv" di seguito con l'URL del nuovo file video da riprodurre. Mantenete le virgolette ("").
*/

instance_name_here.addEventListener(MouseEvent.CLICK, fl_ClickToSetSource);

function fl_ClickToSetSource(event:MouseEvent):void
{
	video_instance_name.source = "http://www.helpexamples.com/flash/video/water.flv";
}
]]></code>
	</snippet>

	<snippet isBranch="false">
	  <title>Clic per cercare un cue point</title>
	  <description>Quando si fa clic sull'oggetto specificato, viene cercato un cue point del video all'interno di un componente FLVPlayback.</description>
	  <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
		<placeholder
			type="stageInstance"
			subType="FLVPlayback"
			text="video_instance_name" />
		<placeholder
			type="editableText"
			text="Cue point 1" />
	  </placeholders>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Click_to_Seek_to_Cue_Point</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Clic per cercare un cue point (richiede un componente FLVPlayback)
Quando si fa clic sull'istanza di simbolo specificata, viene cercato un cue point del video nell'istanza del componente FLVPlayback specificata.

Istruzioni:
1. Sostituite video_instance_name di seguito con il nome istanza del componente FLVPlayback in cui eseguire la ricerca.
2. Sostituite "Cue Point 1" di seguito con il nome del cue point da cercare. Mantenete le virgolette ("").
*/

instance_name_here.addEventListener(MouseEvent.CLICK, fl_ClickToSeekToCuePoint);

function fl_ClickToSeekToCuePoint(event:MouseEvent):void
{
	// Sostituite video_instance_name con il nome istanza del componente video.
	// Sostituite "Cue Point 1" di seguito con il nome del cue point da cercare.
	var cuePointInstance:Object = video_instance_name.findCuePoint("Cue point 1");
	video_instance_name.seek(cuePointInstance.time);
}
]]></code>
	</snippet>

	<snippet isBranch="false">
	  <title>Crea un video NetStream</title>
	  <description>Avvia la riproduzione di un file video senza utilizzare il componente FLVPlayback.</description>
	  <requiresSymbol>false</requiresSymbol>
	  <placeholders>
		<placeholder
			type="editableText"
			text="http://www.helpexamples.com/flash/video/water.flv" />
	  </placeholders>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Create_a_NetStream_Video</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Crea un video NetStream
Visualizza un video sullo stage senza utilizzare il componente video FLVPlayback.

Istruzioni:

1. Se vi state connettendo a un file video che si trova su un server di streaming come Adobe Flash Media Server 2, sostituite 'null' di seguito con l'indirizzo URL del file video. Racchiudete tra virgolette ("") l'indirizzo URL.
2. Se vi state connettendo a un file video locale oppure a un file video che non utilizza un server di streaming, lasciate invariato il testo 'null'.
3. Sostituite "http://www.helpexamples.com/flash/video/water.flv" con l'URL del video da riprodurre. Mantenete le virgolette ("").
*/

var fl_NC:NetConnection = new NetConnection();
fl_NC.connect(null);    // avvia una connessione; viene usato null a meno che non si utilizzi Flash Media Server

var fl_NS:NetStream = new NetStream(fl_NC);
fl_NS.client = {};

var fl_Vid:Video = new Video();
fl_Vid.attachNetStream(fl_NS);
addChild(fl_Vid);

fl_NS.play("http://www.helpexamples.com/flash/video/water.flv");
]]></code>
	</snippet>
	</category>

	<category title="Gestori di eventi"
	    isBranch="true"
	    description="Codice per gestire l'input di base del cliente">
	<snippet isBranch="false">
	  <title>Evento clic del mouse</title>
	  <description>Quando si fa clic sull'oggetto specificato, viene eseguita una funzione che contiene il vostro codice personalizzato.</description>
	  <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
	  </placeholders>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Mouse_Click_Event</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Evento clic del mouse
Quando si fa clic sull'istanza di simbolo specificata viene eseguita una funzione nella quale potete aggiungere codice personalizzato.

Istruzioni:
1. Aggiungete il vostro codice personalizzato su una nuova riga dopo la riga con il testo "// Inizio del codice personalizzato" qui di seguito.
Il codice viene eseguito quando si fa clic sull'istanza di simbolo.
*/

instance_name_here.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler);

function fl_MouseClickHandler(event:MouseEvent):void
{
	// Inizio del codice personalizzato
	// Questo esempio di codice visualizza le parole "Clic del mouse" nel pannello Output.
	trace("Clic del mouse");
	// Fine del codice personalizzato
}
]]></code>
	</snippet>

 	<snippet isBranch="false">
	  <title>Evento passaggio del mouse</title>
	  <description>Quando si passa il mouse sopra l'oggetto specificato viene eseguita una funzione che contiene il vostro codice personalizzato.</description>
	  <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
	  </placeholders>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Mouse_Over_Event</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Evento passaggio del mouse
Quando si passa il mouse sopra l'istanza di simbolo specificata viene eseguita una funzione nella quale potete aggiungere codice personalizzato.

Istruzioni:
1. Aggiungete il vostro codice personalizzato su una nuova riga dopo la riga con il testo "// Inizio del codice personalizzato" qui di seguito.
   Il codice viene eseguito quando si passa il mouse sopra l'istanza di simbolo.
*/

instance_name_here.addEventListener(MouseEvent.MOUSE_OVER, fl_MouseOverHandler);

function fl_MouseOverHandler(event:MouseEvent):void
{
	// Inizio del codice personalizzato
	// Questo esempio di codice visualizza le parole "Passaggio del mouse" nel pannello Output.
	trace("Passaggio del mouse");
	// Fine del codice personalizzato
}
]]></code>
	</snippet>

	<snippet isBranch="false">
	  <title>Evento allontanamento del mouse</title>
	  <description>Quando si allontana il mouse dall'oggetto viene eseguita una funzione che contiene il vostro codice personalizzato.</description>
	  <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
	  </placeholders>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Mouse_Out_Event</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Evento allontanamento del mouse
Quando si allontana il mouse dall'istanza di simbolo specificata viene eseguita una funzione nella quale potete aggiungere codice personalizzato.

Istruzioni:
1. Aggiungete il vostro codice personalizzato su una nuova riga dopo la riga con il testo "// Inizio del codice personalizzato" qui di seguito.
   Il codice viene eseguito quando si allontana il mouse dall'istanza di simbolo.
*/

instance_name_here.addEventListener(MouseEvent.MOUSE_OUT, fl_MouseOutHandler);

function fl_MouseOutHandler(event:MouseEvent):void
{
	// Inizio del codice personalizzato
	// Questo esempio di codice visualizza le parole "Allontanamento del mouse" nel pannello Output.
	trace("Allontanamento del mouse");
	// Fine del codice personalizzato
}
]]></code>
	</snippet>

	<snippet isBranch="false">
	  <title>Evento tasto premuto</title>
	  <description>Assegna una funzione da eseguire ogni volta che viene premuto un tasto.</description>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Key_Pressed_Event</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Evento tasto premuto
Esegue la funzione fl_KeyboardDownHandler definita di seguito ogni volta viene premuto un tasto della tastiera.

Istruzioni:
1. Aggiungete il vostro codice personalizzato su una nuova riga dopo la riga con il testo "// Inizio del codice personalizzato" qui di seguito.
   Il codice viene eseguito quando viene premuto un tasto qualunque.
*/

stage.addEventListener(KeyboardEvent.KEY_DOWN, fl_KeyboardDownHandler);

function fl_KeyboardDownHandler(event:KeyboardEvent):void
{
	// Inizio del codice personalizzato
	// Questo esempio di codice visualizza nel pannello Output le parole "Codice tasto premuto:" e il codice tasto del tasto premuto.
	trace("Codice tasto premuto: " + event.keyCode);
	// Fine del codice personalizzato
}
]]></code>
	</snippet>

	<snippet isBranch="false">
	  <title>Evento entrata nel fotogramma</title>
	  <description>Assegna una funzione da eseguire ogni volta che la testina di riproduzione si sposta in un nuovo fotogramma.</description>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Enter_Frame_Event</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Evento entrata nel fotogramma
Esegue la funzione fl_EnterFrameHandler definita di seguito ogni volta che la testina di riproduzione si sposta in un nuovo fotogramma della linea temporale.

Istruzioni:
1. Aggiungete il vostro codice personalizzato su una nuova riga dopo la riga con il testo "// Inizio del codice personalizzato" qui di seguito.
   Il codice viene eseguito quando la testina di riproduzione si sposta in un nuovo fotogramma della linea temporale.
*/

addEventListener(Event.ENTER_FRAME, fl_EnterFrameHandler);

function fl_EnterFrameHandler(event:Event):void
{
	// Iniziate il codice personalizzato
	// Questo esempio di codice visualizza le parole "Entrata nel fotogramma" nel pannello Output.
	trace("Entrata nel fotogramma");
	// Fine del codice personalizzato
}
]]></code>
	</snippet>
	</category>
	<category title="Eventi tocco dispositivi mobili"
	  	isBranch="true"
	  	expanded="false"
	  	description="Codice per gestire l'input tramite tocco nei dispositivi mobili">
    <snippet isBranch="false">
      <title>Evento tocco</title>
      <description>Quando si tocca l'oggetto specificato viene eseguita una funzione che contiene il vostro codice personalizzato.</description>
      <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
	  </placeholders>
      <minASVersion>3</minASVersion>
      <ADOBE_PIP_ID>Tap_Event</ADOBE_PIP_ID>
      <code><![CDATA[
/* Evento tocco
Quando si tocca l'istanza di simbolo specificata viene eseguita una funzione nella quale potete aggiungere codice personalizzato.

Istruzioni:
1. Aggiungete il vostro codice personalizzato su una nuova riga dopo la riga con il testo "// Inizio del codice personalizzato" qui di seguito.
Il codice viene eseguito quando l'istanza di simbolo viene toccata.
*/

Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;

instance_name_here.addEventListener(TouchEvent.TOUCH_TAP, fl_TapHandler);

function fl_TapHandler(event:TouchEvent):void
{
	// Inizio del codice personalizzato
	// Questo esempio di codice dimezza la trasparenza dell'oggetto a ogni evento tocco
	instance_name_here.alpha *= 0.5;
	// Fine del codice personalizzato
}
]]></code>
    </snippet>
    <snippet isBranch="false">
      <title>Evento tocco e trascinamento</title>
      <description>Consente di spostare l'oggetto specificato toccandolo e trascinandolo.</description>
      <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
	  </placeholders>
      <minASVersion>3</minASVersion>
      <ADOBE_PIP_ID>Touch_and_Drag_Event</ADOBE_PIP_ID>
      <code><![CDATA[
/* Evento tocco e trascinamento
Consente di spostare l'oggetto toccandolo e trascinandolo.
*/

Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;

instance_name_here.addEventListener(TouchEvent.TOUCH_BEGIN, fl_TouchBeginHandler);
instance_name_here.addEventListener(TouchEvent.TOUCH_END, fl_TouchEndHandler);

var fl_DragBounds:Rectangle = new Rectangle(0, 0, stage.stageWidth, stage.stageHeight);

function fl_TouchBeginHandler(event:TouchEvent):void
{
	event.target.startTouchDrag(event.touchPointID, false, fl_DragBounds);
}

function fl_TouchEndHandler(event:TouchEvent):void
{
	event.target.stopTouchDrag(event.touchPointID);
}
]]></code>
    </snippet>
    <snippet isBranch="false">
      <title>Evento pressione prolungata</title>
      <description>Quando si preme l'oggetto specificato per un secondo, viene eseguita una funzione che contiene il vostro codice personalizzato. Questa azione può essere utilizzata per visualizzare un menu per l'oggetto.</description>
      <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
	  </placeholders>
      <minASVersion>3</minASVersion>
      <ADOBE_PIP_ID>Long_Press_Event</ADOBE_PIP_ID>
      <code><![CDATA[
/* Pressione prolungata
Quando si preme l'oggetto per un secondo viene eseguita una funzione che contiene il vostro codice personalizzato. Potete usare questa azione per visualizzare un menu di scelta rapida per l'oggetto.

Istruzioni:
1. Aggiungete il vostro codice personalizzato su una nuova riga dopo le righe con il testo "// Inizio del codice personalizzato" qui di seguito.
*/

var fl_PressTimer:Timer = new Timer(1000);
fl_PressTimer.addEventListener(TimerEvent.TIMER, fl_PressTimerHandler);

function fl_PressTimerHandler(event:TimerEvent):void
{
	// Inizio del codice personalizzato
	// Questo esempio di codice raddoppia le dimensioni dell'oggetto
	instance_name_here.scaleX = 2;
	instance_name_here.scaleY = 2;
	// Fine del codice personalizzato
}

Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;

instance_name_here.addEventListener(TouchEvent.TOUCH_BEGIN, fl_PressBeginHandler);
instance_name_here.addEventListener(TouchEvent.TOUCH_END, fl_PressEndHandler);
instance_name_here.addEventListener(TouchEvent.TOUCH_OUT, fl_PressEndHandler);
instance_name_here.addEventListener(TouchEvent.TOUCH_ROLL_OUT, fl_PressEndHandler);

function fl_PressBeginHandler(event:TouchEvent):void
{
	fl_PressTimer.start();
}

function fl_PressEndHandler(event:TouchEvent):void
{
	fl_PressTimer.stop();
	// Inizio del codice personalizzato
	// Questo esempio di codice ripristina le dimensioni originali dell'oggetto
	instance_name_here.scaleX = 1;
	instance_name_here.scaleY = 1;
	// Fine del codice personalizzato
}
]]></code>
    </snippet>
    </category>
   	<category title="Eventi gesto dispositivi mobili"
	  	isBranch="true"
	  	expanded="false"
	  	description="Codice per gestire l'input tramite gesti nei dispositivi mobili">
	<snippet isBranch="false">
      <title>Evento tocco con due dita</title>
      <description>Quando si tocca l'oggetto con due dita viene eseguita una funzione che contiene il vostro codice personalizzato.</description>
      <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
	  </placeholders>
      <minASVersion>3</minASVersion>
      <ADOBE_PIP_ID>Two_Finger_Tap_Event</ADOBE_PIP_ID>
      <code><![CDATA[
/* Evento tocco con due dita
Quando si esegue un tocco con due dita sullo stage viene eseguita una funzione nella quale potete aggiungere codice personalizzato.

Istruzioni:
1. Aggiungete il vostro codice personalizzato su una nuova riga dopo la riga con il testo "// Inizio del codice personalizzato" qui di seguito.
Il codice viene eseguito quando lo stage viene toccato con due dita.
*/

Multitouch.inputMode = MultitouchInputMode.GESTURE;

stage.addEventListener(GestureEvent.GESTURE_TWO_FINGER_TAP, fl_TwoFingerTapHandler);

function fl_TwoFingerTapHandler(event:GestureEvent):void
{
	// Inizio del codice personalizzato
	// Questo esempio di codice esegue uno zoom in avvicinamento sull'oggetto a ogni evento tocco con due dita
	// L'oggetto deve essere uno sfondo delle dimensioni dello stage
	instance_name_here.scaleX *= 2;
	instance_name_here.scaleY *= 2;
	// Fine del codice personalizzato
}
]]></code>
    </snippet>
	<snippet isBranch="false">
      <title>Evento pizzico per zoom</title>
      <description>Quando si pizzica lo stage viene eseguito uno zoom sull'oggetto selezionato.</description>
      <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
	  </placeholders>
      <minASVersion>3</minASVersion>
      <ADOBE_PIP_ID>Pinch_to_Zoom_Event</ADOBE_PIP_ID>
      <code><![CDATA[
/* Evento pizzico per zoom
Quando si pizzica lo stage viene eseguito uno zoom sull'oggetto selezionato.

Istruzioni:
1. I punti di registrazione e trasformazione del simbolo devono trovarsi al centro.
2. Il simbolo deve essere lo sfondo dell'applicazione e le sue dimensioni devono corrispondere allo stage.
*/

Multitouch.inputMode = MultitouchInputMode.GESTURE;

stage.addEventListener(TransformGestureEvent.GESTURE_ZOOM, fl_ZoomHandler);

function fl_ZoomHandler(event:TransformGestureEvent):void
{
	instance_name_here.scaleX *= event.scaleX;
	instance_name_here.scaleY *= event.scaleY;
}
]]></code>
    </snippet>
    <snippet isBranch="false">
      <title>Evento panoramica</title>
      <description>Fa scorrere l'oggetto selezionato sullo stage. L'oggetto da fare scorrere è solitamente più grande dell'area visualizzabile.</description>
      <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
	  </placeholders>
      <minASVersion>3</minASVersion>
      <ADOBE_PIP_ID>Pan_Event</ADOBE_PIP_ID>
      <code><![CDATA[
/* Evento panoramica
Fa scorrere l'oggetto selezionato sullo stage. L'oggetto da fare scorrere è solitamente più grande dell'area visualizzabile.

Istruzioni:
1. Per fare scorrere tutti gli oggetti sullo stage, inseriteli in un unico clip filmato contenitore e applicate questo snippet al clip filmato.
*/

Multitouch.inputMode = MultitouchInputMode.GESTURE;

instance_name_here.addEventListener(TransformGestureEvent.GESTURE_PAN, fl_PanHandler);

function fl_PanHandler(event:TransformGestureEvent):void
{
	event.currentTarget.x += event.offsetX;
	event.currentTarget.y += event.offsetY;
}
]]></code>
    </snippet>
	<snippet isBranch="false">
      <title>Evento rotazione</title>
      <description>Ruota l'oggetto selezionato, solitamente spostando due dita in senso orario o antiorario.</description>
      <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
	  </placeholders>
      <minASVersion>3</minASVersion>
      <ADOBE_PIP_ID>Rotate_Event</ADOBE_PIP_ID>
      <code><![CDATA[
/* Evento rotazione
Ruota l'oggetto selezionato, solitamente spostando due dita in senso orario o antiorario.

Istruzioni:
1. I punti di trasformazione e registrazione del simbolo devono trovarsi al centro.
*/

Multitouch.inputMode = MultitouchInputMode.GESTURE;

instance_name_here.addEventListener(TransformGestureEvent.GESTURE_ROTATE, fl_RotateHandler);

function fl_RotateHandler(event:TransformGestureEvent):void
{
	event.target.rotation += event.rotation;
}
]]></code>
    </snippet>
	<snippet isBranch="false">
      <title>Evento strisciatura</title>
      <description>Quando si esegue una strisciatura sullo stage, viene eseguita una funzione che contiene il vostro codice personalizzato. Questo evento può essere utilizzato per fare scorrere un testo in un campo di testo oppure per cambiare gli stati nell'applicazione.</description>
      <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
		<placeholder
			type="hotTextNumber"
			text="20"
			min="1"
			max="100" />
	  </placeholders>
      <minASVersion>3</minASVersion>
      <ADOBE_PIP_ID>Swipe_Event</ADOBE_PIP_ID>
      <code><![CDATA[
/* Evento strisciatura
Quando si striscia sullo stage viene eseguita una funzione che contiene il vostro codice personalizzato. Potete usare questo evento per fare scorrere un testo in un campo di testo oppure per cambiare gli stati nell'applicazione.

Istruzioni:
1. Aggiungete il vostro codice personalizzato su una nuova riga dopo le righe con il testo "// Inizio del codice personalizzato" qui di seguito.
*/

Multitouch.inputMode = MultitouchInputMode.GESTURE;

stage.addEventListener (TransformGestureEvent.GESTURE_SWIPE, fl_SwipeHandler);

function fl_SwipeHandler(event:TransformGestureEvent):void
{
	switch(event.offsetX)
	{
		// strisciato a destra
		case 1:
		{
			// Inizio del codice personalizzato
			// Questo codice di esempio sposta l'oggetto selezionato di 20 pixel a destra.
			instance_name_here.x += 20;
			// Fine del codice personalizzato
			break;
		}
		// strisciato a sinistra
		case -1:
		{
			// Inizio del codice personalizzato
			// Questo codice di esempio sposta l'oggetto selezionato di 20 pixel a sinistra.
			instance_name_here.x -= 20;
			// Fine del codice personalizzato
			break;
		}
	}

	switch(event.offsetY)
	{
		// strisciato in basso
		case 1:
		{
			// Inizio del codice personalizzato
			// Questo codice di esempio sposta l'oggetto selezionato di 20 pixel in basso.
			instance_name_here.y += 20;
			// Fine del codice personalizzato
			break;
		}
		// strisciato in alto
		case -1:
		{
			// Inizio del codice personalizzato
			// Questo codice di esempio sposta l'oggetto selezionato di 20 pixel in alto.
			instance_name_here.y -= 20;
			// Fine del codice personalizzato
			break;
		}
	}
}
]]></code>
    </snippet>
  </category>
    <category title="Azioni dispositivi mobili"
    			isBranch="true"
    			expanded="false"
    			description="Codice per interazioni comuni nei dispositivi mobili">
    <snippet isBranch="false">
      <title>Strisciatura per andare al fotogramma successivo/precedente e interrompere la riproduzione</title>
      <description>Quando si esegue una strisciatura sullo stage, la testina di riproduzione si sposta sul fotogramma successivo/precedente della linea temporale e si ferma.</description>
      <requiresSymbol>false</requiresSymbol>
      <minASVersion>3</minASVersion>
      <ADOBE_PIP_ID>Swipe_to_Go_to_Next_Previous_Frame_and_Stop</ADOBE_PIP_ID>
      <code><![CDATA[
/* Strisciatura per andare al fotogramma successivo/precedente e interrompere la riproduzione
Quando si esegue una strisciatura sullo stage, la testina di riproduzione si sposta sul fotogramma successivo/precedente e il filmato viene interrotto.
*/

Multitouch.inputMode = MultitouchInputMode.GESTURE;

stage.addEventListener (TransformGestureEvent.GESTURE_SWIPE, fl_SwipeToGoToNextPreviousFrame);

function fl_SwipeToGoToNextPreviousFrame(event:TransformGestureEvent):void
{
	if(event.offsetX == 1)
	{
		// strisciato a destra
		prevFrame();
	}
	else if(event.offsetX == -1)
	{
		// strisciato a sinistra
		nextFrame();
	}
}
]]></code>
    </snippet>
    <snippet isBranch="false">
      <title>Strisciatura per andare alla scena successiva/precedente e avviare la riproduzione</title>
      <description>Quando si esegue una strisciatura sullo stage, la testina di riproduzione si sposta sulla scena successiva/precedente della linea temporale e la riproduzione riprende da quella scena.</description>
      <requiresSymbol>false</requiresSymbol>
      <minASVersion>3</minASVersion>
      <ADOBE_PIP_ID>Swipe_to_Go_to_Next_Previous_Scene_and_Play</ADOBE_PIP_ID>
      <code><![CDATA[
/* Strisciatura per andare alla scena successiva/precedente e avviare la riproduzione
Quando si esegue una strisciatura sullo stage, la testina di riproduzione si sposta sulla scena successiva/precedente della linea temporale e la riproduzione riprende da quella scena.
*/

Multitouch.inputMode = MultitouchInputMode.GESTURE;

stage.addEventListener (TransformGestureEvent.GESTURE_SWIPE, fl_SwipeToGoToNextPreviousScene);

function fl_SwipeToGoToNextPreviousScene(event:TransformGestureEvent):void
{
	if(event.offsetX == 1)
	{
		// strisciato a destra
		prevScene();
	}
	else if(event.offsetX == -1)
	{
		// strisciato a sinistra
		nextScene();
	}
}
]]></code>
    </snippet>
    <snippet isBranch="false">
      <title>Sposta con accelerometro</title>
      <description>Consente di spostare l'oggetto inclinando il dispositivo mobile.</description>
      <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
		<placeholder
			type="hotTextNumber"
			text="30"
			min="1"
			max="100" />
	  </placeholders>
      <minASVersion>3</minASVersion>
      <ADOBE_PIP_ID>Move_with_Accelerometer</ADOBE_PIP_ID>
      <code><![CDATA[
/* Sposta con accelerometro
Consente di spostare l'oggetto inclinando il dispositivo mobile.

Istruzioni:
1. Per aumentare o ridurre la quantità di movimento, sostituite il numero 30 qui sotto con il numero di pixel di cui volete che si sposti l'istanza di simbolo quando il dispositivo mobile viene inclinato.
Nota: il numero 30 appare due volte nel codice seguente.
*/

var fl_Accelerometer:Accelerometer = new Accelerometer();
fl_Accelerometer.addEventListener(AccelerometerEvent.UPDATE, fl_AccelerometerUpdateHandler);

function fl_AccelerometerUpdateHandler(event:AccelerometerEvent):void
{
	instance_name_here.x -= event.accelerationX*30;
	instance_name_here.y += event.accelerationY*30;
}
]]></code>
    </snippet>
	<snippet isBranch="false">
      <title>Disattiva/attiva evento</title>
      <description>Per risparmiare la CPU, sospendete l'applicazione in corrispondenza dell'evento Deactivate e riattivatela all'evento Activate.</description>
      <requiresSymbol>false</requiresSymbol>
      <minASVersion>3</minASVersion>
      <ADOBE_PIP_ID>Conserve_CPU_on_Deactivate_Activate</ADOBE_PIP_ID>
      <code><![CDATA[
/* Disattiva/attiva evento
Per risparmiare la CPU e la carica della batteria, sospendete i processi impegnativi, quali gli eventi ENTER_FRAME e TIMER, quando l'applicazione non ha lo stato di attivazione.

Istruzioni:
1. Avviate i timer e aggiungete i listener di eventi in "fl_Activate".
2. Fermate i timer e rimuovete i listener di eventi in "fl_Deactivate".
*/

stage.addEventListener(Event.ACTIVATE, fl_Activate);
stage.addEventListener(Event.DEACTIVATE, fl_Deactivate);

function fl_Activate(event:Event):void
{
	// Avviate i timer e aggiungete i listener di eventi qui.
}

function fl_Deactivate(event:Event):void
{
	// Fermate i timer e rimuovete i listener di eventi qui.
}
]]></code>
    </snippet>
    <snippet isBranch="false">
	  <title>Evento tasto Menu premuto</title>
	  <description>Esegue il codice quando viene premuto il tasto Menu del dispositivo.</description>
	  <minASVersion>3</minASVersion>
	  <ADOBE_PIP_ID>Menu_Key_Pressed_Event</ADOBE_PIP_ID>
	  <code><![CDATA[
/* Evento tasto Menu premuto
Esegue il codice quando viene premuto il tasto Menu del dispositivo (utile per visualizzare un menu di opzioni).
Fate riferimento all'esempio di menu Opzioni nei modelli.

Istruzioni:
1. Aggiungete il vostro codice per visualizzare un menu di opzioni dopo la riga con il testo "// Inizio del codice personalizzato" qui di seguito.
2. Rimuovete il codice di esempio che visualizza un rettangolo grigio.
*/

stage.addEventListener(KeyboardEvent.KEY_UP, fl_OptionsMenuHandler);

function fl_OptionsMenuHandler(event:KeyboardEvent):void
{
	if( (event.keyCode == 95) || (event.keyCode == Keyboard.MENU) )
	{
		// Inizio del codice personalizzato
		// Questo esempio di codice visualizza un rettangolo grigio.
		var grayRectangle:Sprite = new Sprite();
		grayRectangle.graphics.lineStyle(3, 0x888888, 0.95);
		grayRectangle.graphics.beginFill(0xececec, 0.95);
		grayRectangle.graphics.drawRect(1, stage.stageHeight - 100, stage.stageWidth-3, 100);
		grayRectangle.graphics.endFill();
		addChild(grayRectangle);
		// Fine del codice personalizzato
	}
}
]]></code>
	</snippet>
  </category>
  <category title="AIR per dispositivi mobili"
	  			isBranch="true"
	  			expanded="false"
	  			description="Codice per azioni comuni disponibili tramite AIR nei dispositivi portatili.">
  	<snippet isBranch="false">
      <title>Mostra localizzazione geografica</title>
      <description>Mostra la latitudine e la longitudine in un campo di testo.</description>
      <requiresSymbol>false</requiresSymbol>
      <minASVersion>3</minASVersion>
      <ADOBE_PIP_ID>Show_Geolocation</ADOBE_PIP_ID>
      <code><![CDATA[
/* Mostra localizzazione geografica
Mostra la latitudine e la longitudine in un campo di testo.

Istruzioni:
1. Attivate le autorizzazioni "ACCESS_FINE_LOCATION" e "ACCESS_COARSE_LOCATION" in File -> Impostazioni AIR for Android.
*/

var fl_GeolocationDisplay:TextField = new TextField();
fl_GeolocationDisplay.autoSize = TextFieldAutoSize.LEFT;
fl_GeolocationDisplay.text = "Geolocation non risponde. Verificate le impostazioni di localizzazione del dispositivo.";
addChild(fl_GeolocationDisplay);

if(!Geolocation.isSupported)
{
	fl_GeolocationDisplay.text = "Geolocation non è supportato da questo dispositivo.";
}
else
{
	var fl_Geolocation:Geolocation = new Geolocation();
	fl_Geolocation.setRequestedUpdateInterval(1000);
	fl_Geolocation.addEventListener(GeolocationEvent.UPDATE, fl_UpdateGeolocation);
}

function fl_UpdateGeolocation(event:GeolocationEvent):void
{
	fl_GeolocationDisplay.text = "latitudine: ";
	fl_GeolocationDisplay.appendText(event.latitude.toString() + "\n");
	fl_GeolocationDisplay.appendText("longitudine: ");
	fl_GeolocationDisplay.appendText(event.longitude.toString() + "\n");
	fl_GeolocationDisplay.appendText("altitudine: ");
	fl_GeolocationDisplay.appendText(event.altitude.toString() + "\n");
}
]]></code>
    </snippet>
	<snippet isBranch="false">
      <title>Ri-orienta l'oggetto quando il dispositivo viene ruotato</title>
      <description>Ri-orienta l'oggetto specificato quando il dispositivo viene ruotato.</description>
      <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
	  </placeholders>
      <minASVersion>3</minASVersion>
      <ADOBE_PIP_ID>ReOrient_Objects_on_Device_Rotation</ADOBE_PIP_ID>
      <code><![CDATA[
/* Ri-orienta gli oggetti quando il dispositivo viene ruotato
Ri-orienta gli oggetti quando il dispositivo viene ruotato.
Gli oggetti specifici possono essere orientati in modo differente rispetto al resto dell'applicazione.
Può essere utilizzato per mantenere la rotazione di un oggetto o farlo ruotare in modo indipendente rispetto all'applicazione.

Istruzioni:
1. Attivate l'opzione "Orientamento automatico" in File -> Impostazioni Android for AIR.
*/

var fl_initialRotation = instance_name_here.rotation;	// Salva il valore di rotazione iniziale

stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGE, fl_OrientationChange);

function fl_OrientationChange(event:StageOrientationEvent):void
{
	switch (stage.deviceOrientation)
	{
		case StageOrientation.DEFAULT:
		{
			// Ri-orienta gli oggetti di visualizzazione con l'orientamento predefinito (lato destro in alto).
			instance_name_here.rotation = fl_initialRotation;	// Ripristina il valore di rotazione iniziale
			break;
		}
		case StageOrientation.ROTATED_RIGHT:
		{
			// Ri-orienta gli oggetti di visualizzazione in base all'orientamento sul lato destro.
			instance_name_here.rotation += 90;
			break;
		}
		case StageOrientation.ROTATED_LEFT:
		{
			// Ri-orienta gli oggetti di visualizzazione in base all'orientamento sul lato sinistro.
			instance_name_here.rotation -= 90;
			break;
		}
		case StageOrientation.UPSIDE_DOWN:
		{
			// Ri-orienta gli oggetti di visualizzazione in base all'orientamento capovolto.
			instance_name_here.rotation += 180;
			break;
		}
	}
}
]]></code>
    </snippet>
  </category>
  <category title="AIR"
	  			isBranch="true"
	  			expanded="false"
	  			description="Codice per applicazioni AIR">
    <snippet isBranch="false">
      <title>Clic per chiudere la finestra AIR</title>
      <description>Quando si fa clic sull'oggetto specificato, l'applicazione AIR viene chiusa.</description>
      <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
	  </placeholders>
      <minASVersion>3</minASVersion>
      <ADOBE_PIP_ID>Click_to_Close_AIR_Window</ADOBE_PIP_ID>
      <code><![CDATA[
/* Clic per chiudere la finestra AIR
Quando si fa clic sull'oggetto specificato, l'applicazione AIR viene chiusa.
*/
instance_name_here.addEventListener(MouseEvent.CLICK, fl_CloseWindow);

function fl_CloseWindow(event:Event):void
{
	stage.nativeWindow.close();
}
]]></code>
    </snippet>
    <snippet isBranch="false">
      <title>Clic per ridurre a icona la finestra AIR</title>
      <description>Quando si fa clic sull'oggetto specificato, l'applicazione AIR viene ridotta a icona.</description>
      <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
	  </placeholders>
      <minASVersion>3</minASVersion>
      <ADOBE_PIP_ID>Click_to_Minimize_AIR_Window</ADOBE_PIP_ID>
      <code><![CDATA[
/* Clic per ridurre a icona la finestra AIR
Quando si fa clic sull'oggetto specificato, l'applicazione AIR viene ridotta a icona.
*/
instance_name_here.addEventListener(MouseEvent.CLICK, fl_MinimizeWindow);

function fl_MinimizeWindow(event:Event):void
{
	stage.nativeWindow.minimize();
}

]]></code>
    </snippet>
    <snippet isBranch="false">
      <title>Clic per ingrandire o ripristinare la finestra AIR</title>
      <description>Quando si fa clic sull'oggetto specificato, l'applicazione AIR viene ingrandita a tutto schermo o ripristinata alle dimensioni precedenti (se è già ingrandita).</description>
      <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
	  </placeholders>
      <minASVersion>3</minASVersion>
      <ADOBE_PIP_ID>Click_to_Maximize_or_Restore_AIR_Window</ADOBE_PIP_ID>
      <code><![CDATA[
/* Clic per ingrandire o ripristinare la finestra AIR
Quando si fa clic sull'oggetto specificato, l'applicazione AIR viene ingrandita a tutto schermo o ripristinata alle dimensioni precedenti (se è già ingrandita).
*/
instance_name_here.addEventListener(MouseEvent.MOUSE_DOWN, fl_MaximizeWindow);

function fl_MaximizeWindow(event:Event):void
{
	if(stage.nativeWindow.displayState != NativeWindowDisplayState.MAXIMIZED)
	{
		stage.nativeWindow.maximize();
	}
	else
	{
		stage.nativeWindow.restore();
	}
}

]]></code>
    </snippet>
    <snippet isBranch="false">
      <title>Trascinamento per spostare la finestra AIR</title>
      <description>Consente di spostare l'intera finestra dell'applicazione AIR facendo clic sull'oggetto specificato e trascinandolo.</description>
      <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
	  </placeholders>
      <minASVersion>3</minASVersion>
      <ADOBE_PIP_ID>Drag_to_Move_AIR_Window</ADOBE_PIP_ID>
      <code><![CDATA[
/* Trascinamento per spostare la finestra AIR
Consente di spostare l'intera finestra dell'applicazione AIR facendo clic sull'oggetto specificato e trascinandolo.

Istruzioni:
1. Il simbolo è solitamente la barra del titolo dell'applicazione.
*/
instance_name_here.addEventListener(MouseEvent.MOUSE_DOWN, fl_MoveWindow);

function fl_MoveWindow(event:Event):void
{
	stage.nativeWindow.startMove();
}
]]></code>
    </snippet>
    <snippet isBranch="false">
      <title>Clic per leggere da un file di testo</title>
      <description>Quando si fa clic sull'oggetto specificato, all'utente viene richiesto di selezionare un file da visualizzare nel pannello Output.</description>
      <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
	  </placeholders>
      <minASVersion>3</minASVersion>
      <ADOBE_PIP_ID>Click_to_Read_from_a_Text_File</ADOBE_PIP_ID>
      <code><![CDATA[
/* Clic per leggere da un file di testo
Quando si fa clic sull'istanza di simbolo specificata, all'utente viene richiesto di selezionare un file da visualizzare nel pannello Output.

Istruzioni:
1. Per utilizzare i dati letti dal file, usate la variabile fileData nella funzione fl_FileReadHandler.
*/

import flash.filesystem.File;
import flash.filesystem.FileMode;
import flash.filesystem.FileStream;

instance_name_here.addEventListener(MouseEvent.CLICK, fl_OpenFile);

var fl_OpenFileStream:FileStream = new FileStream();	// FileStream utilizzato per leggere dal file
var fl_OpenFileChooser:File = File.documentsDirectory;	// Usa come cartella predefinita la directory documenti
fl_OpenFileChooser.addEventListener(Event.SELECT, fl_FileOpenSelected);

// Funzione principale per l'apertura di un file
function fl_OpenFile(event:MouseEvent):void
{
	fl_OpenFileChooser.browseForOpen("Selezionate un file di testo.");
}

// Apre un oggetto FileStream per leggere il file
function fl_FileOpenSelected(event:Event):void
{
	fl_OpenFileChooser = event.target as File;
	fl_OpenFileStream = new FileStream();
	fl_OpenFileStream.addEventListener(Event.COMPLETE, fl_FileReadHandler);

	fl_OpenFileStream.openAsync(fl_OpenFileChooser, FileMode.READ);
}

// Scrive i dati letti dal file nel pannello Output
function fl_FileReadHandler(event:Event):void
{
	var fileData:String = fl_OpenFileStream.readMultiByte(fl_OpenFileStream.bytesAvailable, File.systemCharset);
	// I dati caricati dal file possono essere utilizzati dalla variabile fileData.
	// Questo codice di esempio visualizza i dati letti dal file nel pannello Output.
	trace(fileData);
	fl_OpenFileStream.close();
}
]]></code>
    </snippet>
    <snippet isBranch="false">
      <title>Clic per scrivere su un file di testo</title>
      <description>Quando si fa clic sull'oggetto specificato, all'utente viene richiesto di selezionare un percorso e un nome file e di salvare una stringa di testo nel file.</description>
      <requiresSymbol>true</requiresSymbol>
	  <placeholders>
		<placeholder
			type="stageInstance"
			text="instance_name_here" />
		<placeholder
			type="editableText"
			text="Testo da salvare nel file." />
	  </placeholders>
      <minASVersion>3</minASVersion>
      <ADOBE_PIP_ID>Click_to_Write_to_a_Text_File</ADOBE_PIP_ID>
      <code><![CDATA[
/* Clic per scrivere su un file di testo
Quando si fa clic sull'oggetto specificato, all'utente viene richiesto di selezionare un percorso e un nome file e di salvare una stringa di testo nel file.

Istruzioni:
1. Per specificare quali dati salvare nel file, sostituite "Testo da salvare nel file." con i dati da salvare.
*/

import flash.filesystem.File;
import flash.filesystem.FileMode;
import flash.filesystem.FileStream;

instance_name_here.addEventListener(MouseEvent.CLICK, fl_SaveFile);

var fl_FileDataToSave:String = "Testo da salvare nel file.";

var fl_SaveFileStream:FileStream = new FileStream();	// FileStream utilizzato per scrivere sul file

var fl_SaveFileChooser:File = File.documentsDirectory;	// Usa come cartella predefinita la directory documenti
fl_SaveFileChooser.addEventListener(Event.SELECT, fl_WriteFileHandler);

// Apre una finestra di dialogo Salva con nome per specificare il nome del file
function fl_SaveFile(event:MouseEvent):void
{
	fl_SaveFileChooser.browseForSave("Salva con nome:");
}

// Scrive i dati nella variabile fl_FileDataToSave
function fl_WriteFileHandler(event:Event):void
{
	fl_SaveFileChooser = event.target as File;
	fl_SaveFileStream = new FileStream();

	fl_SaveFileStream.openAsync(fl_SaveFileChooser, FileMode.WRITE);

	fl_SaveFileStream.writeMultiByte(fl_FileDataToSave, File.systemCharset);

	fl_SaveFileStream.close();
}
]]></code>
    </snippet>
	<snippet isBranch="false">
      <title>Salva e carica preferenze</title>
      <description>Salva i dati nella memoria locale e li carica al prossimo avvio.</description>
      <requiresSymbol>false</requiresSymbol>
      <minASVersion>3</minASVersion>
      <ADOBE_PIP_ID>Save_and_Load_Preferences</ADOBE_PIP_ID>
      <code><![CDATA[
/* Salva e carica preferenze
Salva i dati nella memoria locale e li carica al prossimo avvio.

La funzione "fl_SavePreference" salva le preferenze.
La funzione "fl_LoadPreference" carica le preferenze.
Le preferenze di questo esempio includono le dimensioni e la posizione della finestra dell'applicazione e la stringa di testo "Ciao a tutti".

Istruzioni:
1. Applicate questo snippet al fotogramma 1 per fare in modo che le preferenze vengano caricate.
2. Per salvare le preferenze all'uscita, inserite lo snippet di codice "Clic per chiudere la finestra AIR" e inserite "fl_SavePreferences();" dentro la funzione "fl_CloseWindow()".
3. Ulteriori valori possono essere salvati in "fl_SavePreference" utilizzando "fs.writeObject."
4. Ulteriori valori possono essere recuperati in "fl_LoadPreferences" utilizzando "fs.readObject" nello stesso ordine di "fs.writeObject".
*/

import flash.filesystem.File;
import flash.filesystem.FileMode;
import flash.filesystem.FileStream;

// Definisce il nome del file nella memoria locale in cui scrivere le preferenze
var fl_ConfigFile:File = new File("app-storage:/AppConfig.cfg");
// In Windows 7: C:\Utenti\<nomeutente>\AppData\Roaming\<Nome applicazione Air>\Local Store\AppConfig.cfg
// In Windows XP: C:\Documents and Settings\<nomeutente>\Dati applicazioni\<Nome applicazione Air>\Local Store\AppConfig.cfg
// In Mac: /Utenti/<nomeutente>/Libreria/Preferences/<Nome applicazione Air>/Local Store/AppConfig.cfg

// Crea un campo di testo per visualizzare la stringa salvata nelle preferenze
var fl_AppPreference = new TextField();
addChild(fl_AppPreference);

fl_LoadPreferences();	// Chiama per caricare le preferenze
fl_SavePreferences();	// Chiama per salvare le preferenze (spostatelo nel punto in cui volete salvare le preferenze)

// Scrive le preferenze nel file di configurazione
function fl_SavePreferences():void
{
	// Apre il file delle preferenze in scrittura
	var fs:FileStream = new FileStream();
	fs.open(fl_ConfigFile, FileMode.UPDATE);


	// Salva le dimensioni e la posizione della finestra
	fs.writeObject(stage.nativeWindow.bounds);

	// Salva la stringa "Ciao a tutti"
	fs.writeObject("Ciao a tutti");

	// Potete aggiungere qui altri valori da salvare

	fs.close();
}

// Legge le preferenze dal file di configurazione
function fl_LoadPreferences():void
{
	if (fl_ConfigFile.exists)
	{
		// Apre il file delle preferenze in lettura
		var fs:FileStream = new FileStream();
		fs.open(fl_ConfigFile, FileMode.READ);

		// Carica e ripristina le dimensioni e la posizione dello stage
		var savedBounds:Object = fs.readObject();
		stage.nativeWindow.bounds = new Rectangle(savedBounds.x, savedBounds.y, savedBounds.width, savedBounds.height);

		var dataString:String = String(fs.readObject());	// Carica la stringa di testo dal file delle preferenze
		fl_AppPreference.text = dataString;					// Visualizza il testo caricato nel campo di testo

		fs.close();
	}
}
]]></code>
    </snippet>
  </category>
</snippets>
</CodeSnippets>
