<?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>Mon, 23 Jan 2012 18:11:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<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 [...]]]></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>
<pre lang="actionscript">
private var _cfg:CFGManager;

public function Main(){
//costruttore
_cfg = new CFGManager(this);
_cfg.loadCFG();

}public function continuaMainClass(){}</pre>
<p>classe richiamata dalla document class</p>
<pre lang="actionscript">
private var _main:Main; //riferimento alla classe chiamante
public function CFGManager(m:Main){//costruttore
_main=m;//qui vado a memorizzare i riferimenti al main
}

public function loadCFG(){
//qui carico il mio xml di configurazione
//appioppo l'event listener per il caricamento
//e poi passo il tutto a parseCFG
}
private function parseCFG(e:Event){
//qui parso l'xml da e.target.data
//e poi faccio continuare l'esecuzione del main
_main.continuaMainClass();
}</pre>
<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' /> </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' /> </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, [...]]]></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>
]]></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 [...]]]></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' /> </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>
<pre lang="actionscript">
Stage.scaleMode = "noScale";
Stage.align = "TL";
var myListener:Object = new Object();
myListener.onResize = onScreenResize;
Stage.addListener(myListener);

function onScreenResize():Void
{
	trace(Stage.width);
	trace(Stage.height);
}</pre>
<p><strong>Actionscript 3:</strong></p>
<pre lang="actionscript">
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.*;

stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
//assegno la funzione al gestore evento
stage.addEventListener(Event.RESIZE,onScreenResize);
//funzione per gestire il resize
//(e=null di default per evitare errori a runtime)
function onScreenResize(e:Event=null):void
{
	trace(stage.stageWidth);
	trace(stage.stageHeight);
}</pre>
<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>
<pre lang="css">
html {
	height: 100%;
	overflow: hidden;
}
#flashdiv {
	height: 100%;
}
body {
	height: 100%;
	margin: 0;
	padding: 0;
	background-color: #FFFFFF;
}</pre>
<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' /> </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>1</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;). [...]]]></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>
<pre lang="actionscript">
myClip.attachMovie("movieclipinlibreria","nome",myClip.getDepth()-1);
</pre>
<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></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: var myInstance:MyClass = new MyClass(); 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 [...]]]></description>
			<content:encoded><![CDATA[<p>Anche un newbie di actionscript sa cosa significa questa riga di codice:</p>
<pre lang="actionscript">
var myInstance:MyClass = new MyClass();
myInstance.myVar = 1;</pre>
<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>
<pre lang="actionscript">
class MyClass{
public var myVar:Number;
}</pre>
<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>
<pre lang="actionscript">
var myInstance:MyClass = new MyClass();

myInstance.myVar = "ciao";</pre>
<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>
<pre lang="actionscript">
//Void AS2 | void AS3
private var _myVar:Number;
public function set myVar (n:Number):void{
_myVar = n;
}
public function get myVar ():Number{
return _myVar ;
}</pre>
<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>
<pre lang="actionscript">
var myInstance:MyClass = new MyClass();
myInstance.myVar = 1;</pre>
<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;</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 [...]]]></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>
<pre lang="actionscript">
public class Human
{
	public var sex :String;
	public var name : String;
	public var age : Number;
	public var height : Number;
	public var weight : Number;

	public function Human(strName:String, strSex:String)
	{ /* nascita + assegna nome + setta age=0 + assegna sesso (costruttore)*/ }

	public function compleanno() : void
	{ /* invecchia (age++) */  }

	public function morte() : void
	{ /* morte */  }

	public function respira() : void
	{ /* respira continuamente */ }
}</pre>
<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>
<pre lang="actionscript">
public class Man extends Human
{
	public function Man(strName:String)
	{ super(strName,"M"); }
}

public class Woman extends Human
{
	public function Woman(strName:String)
	{ super(strName,"F"); }

	public function parto():void
	{ /* crea un nuovo human */ }
}</pre>
<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>
<pre lang="actionscript">
override public function respira() : void
{ /* cambia frequenza di respirazione */ }</pre>
<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>
<pre lang="actionscript">
public interface IHuman
{
	function compleanno() : void
	function morte() : void
	function respira() : void
}</pre>
<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>
<pre lang="actionscript">
public class Man implements IHuman
{
	private const sex :String = "M";
	private var age : Number;

	public function compleanno() : void
	{ /* invecchia (age++) */  }

	public function morte() : void
	{ /* morte */  }

	public function respira() : void
	{ /* respira continuamente */ }
}</pre>
<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.</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>
<pre lang="html">
<script src="swfobject/swfobject.js" type="text/javascript"></script>
<script src="swfaddress/swfaddress.js" type="text/javascript"></script></pre>
<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>
<pre lang="actionscript">SWFAddress.setValue('/nomesezione/');</pre>
<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>
<pre lang="actionscript">SWFAddress.onChange</pre>
<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.</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>1</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 [...]]]></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>
<pre line="1" lang="actionscript">
//gestore del press

internal function onPress(e:MouseEvent):void

{

 trace("press");

}//gestore del release

internal function onRelease(e:MouseEvent):void

{

 trace("release");

}

//gestore del FAMIGERATO release outside

internal function onReleaseOutside(e:MouseEvent):void

{

 trace("release outside");

}

//gestore del rollout

internal function onRollOut(e:MouseEvent):void

{

 trace("rollout");

 if(e.buttonDown){

//QUI AGGIUNGO L'EVENTO PER GESTIRE IL RELEASE OUTSIDE

 	e.target.stage.addEventListener(MouseEvent.MOUSE_UP, onReleaseOutside);

 }

}

//gestore del rollover

internal function onRollOver(e:MouseEvent):void

{

 trace("rollover");

//al rollover del mouse sul pulsante elimino il releaseoutside

 e.target.stage.removeEventListener(MouseEvent.MOUSE_UP, onReleaseOutside);

}</pre>
<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.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flashfuck.it/2007/07/17/gestire-onreleaseoutside-con-actionscript-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

