VideoCorsi® Flash CS4, Flash CS5, Flash Catalyst, Flex, Air Videocorsi and more!

Il mistero su addFrameScript

Dopo la centesima email che ho ricevuto sull’argomento ho deciso di creare un post che spieghi questa istruzione misteriosa (addFrameScript) non documentata nel sito della Adobe.

Sicuramente l’avrai vista non appena hai cercato di decompilare un file swf per “sbirciarne il codice” ed evitare quindi di comprare applicazioni con codice “spazzatura” dai diversi siti che offrono script a poco prezzo.

E’ l’istruzione addFrameScript(numerofotogramma-1,funzione1,numerofotogramma-1,funzione2, etc….)

Ebbene a cosa serve e perchè viene creata da questi software di decompilazione?

Ogni qualvolta viene trovato del codice actionscript spalmato sulla linea temporale, grazie a addFrameScript è possibile racchiudere in modo elegante tutte le istruzioni sul primo fotogramma, in modo che queste risultino appartenere alla stessa classe principale o sottoclasse.

Sinceramente non ho mai trovato la necessità di usarla e forse questo è il motivo per cui non è inserita nell’Help Online della Adobe. Presumo sia una precisa volonta’ della Adobe di disicentivare l’uso del codice sparso nella linea temporale,  ma se esiste significa che potrebbe avere qualche utilizzo pratico.

Mi sforzo quindi di pensare ad un esempio possibile utilizzo. Come avrai notato è possibile specificare diversi parametri in coppia NumeroFotogramma-1, Funzionedalanciare.

Questo potrebbe far venire in mente: se volessi eseguire una certa funzione in corrispondenza al raggiungimento del fotogramma 10 della linea temporale , come posso fare?

Semplice potresti scrivere una semplice classe documento del tipo:

package
{
import flash.display.*;
public class TestaddFrameScript extends MovieClip
{
public function TestaddFrameScript()
{
addFrameScript(9,mostroMsg);
return;
}
function mostroMsg():void {
stop();
}
}
}

In sostanza non appena viene chiamata la classe viene aggiunta l’istruzione di stop al fotogramma 10 della linea temporale. Così facendo se testassi il tutto inserendo all’interno del mio file flash una qualsiasi animazione costituita da più di 10 fotogrammi, vedrei che al fotogramma 10 si blocca tutto.

Riassumento: un metodo elegante per eliminare del tutto pezzi di codice sparsi sulla linea temporale è usare addFrameScript, oppure pianificare prima lo sviluppo del tuo progetto in modo che non ci siano pezzi sparsi qua e la’, cosa che per chi inizia ad usare ActionScript 3.0 potrebbe risultare a volte complesso.

Le vostre Ultime 10 richieste approvate!

marianna

Ciao Davide a me interessa: load movie

Inviaci la tua richiesta di Video o Articoli

La tua richiesta