Actionscript/ AS 3.0/ Dicas

#3 Performance em AS3.0 [Funções em pacotes]

O que são funções em pacotes? São exatamente funções que são de ambito e uso em geral do pacote da classe sem estar preso ou associado a classe em questão.

Mais eu consigo isso usando static functions e métodos à partir da instancia de um objeto.

A diferença significativa é apenas no nível de acesso e na flexibilidade que isso pode me trazer. Por exemplo o SDK do Flex usa o pacote global do Flash Player que tem muito disso entre outras classes.

E qual é sintaxe disso?

Veja o exemplo abaixo:

1
2
3
4
5
6
7
package com.igorcosta.performancetips
 
{
		public function DividirPorDois(a:int):int {
			return a*.5;
		}
}

Uso da técnica:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package com.igorcosta.performancetips
{
	import com.igorcosta.performancetips.createSnapShot;
 
	public class Teste
	{
		public function Teste()
		{
 
			DividirPorDois(5);
		}
 
 
 
	}
}

Detalhe que esse tipo de técnica é usada dentro de outras classes, caso você tente usar no MXML principal você não consegue. Como também se preocupar em não usar o this para esses tipos de implementações, tente torna-los o mais genérico possível.

Fonte: http://www.jibbering.com/faq/faq_notes/closures.html
http://www.ericfeminella.com/blog/2008/05/06/package-level-function-closures-in-actionscript/