KEN AWAMURA (130 pts)

JONAS GALVEZ (521 pts)

ÉMERSON ROCHA (85 pts)

RICARDO TEIXEIRA (40 pts)

ZECA BALA (45 pts)

RICARDO TAKAHASHI (180 pts)

ALEXANDRE PORTO (1281 pts)

MARCOS JOSÉ PINTO (44 pts)

MUZAK (45 pts)

ZEBEDIAH (35 pts)

MAURO ROCHA TAVARES (40 pts)

FLASHGURU (155 pts)
Treinamento PontoFlash de Flash e ActionScript

Como fazer para que um filme carregue, por load movie, outro dependendo da hora do dia?

Como faço para inserir um contador em uma cena do flash?

Quero fazer um movieclip seguir o movimento de um outro na vertical.

Dá pra fazer um menu popup usando a propriedade _currentFrame?

É possível criar uma variável de outra variável?

Como fazer um mouse trail seguir o mouse, mas com efeito elástico?

Como o Fireworks exporta PNG para o Flash?

Preciso de um programa para criar fontes.

Como validar várias senhas e logins cadastradas no Flash?

Alguém poderia me informar como eu faço para criar um formulário no flash.

Como faço um olho ficar apontando para o ponteiro sem se deslocar?

Como fazer um executável no Flash com autorun?

Como, num tweeningMotion, fazer o filme parar num frame com uma label?

Poderia me explicar um pouco mais sobre o arrays dentro de objetos?
Funções : localToglobal() e globalToLocal()

Botão avançar e recuar.

Funções SetInterval e clearInterval no FlashMX.

Load Movie into target (movieclip).

Dicas para otimizar seu SWF (revisado e atualizado).

Objetos e classes

Utilizando o ScrollPane no Flash MX.

Interpolação de movimento

Primeiros passos - desenhando e animando

Motion Blur.

3D Wireframe - segunda parte

Funções de actionscripts
Swap Movieclips

Rolagem dinâmica

Bola_balance

Marquee

Texto com scroll

Cubos vivos

Tension

Menu cortina

3d rotation2

Balls 3f

Maluko

Typetext
HOME | TRUQUES E DICAS
Como criar membros (*propriedades e métodos) PRIVADOS de classes (OOP)?
por Jonas Galvez


Os trechos com o asterico são pequenas notas que eu fiz para facilitar a compreensão. O código é avançado e provavelmente só será compreendido por programadores mais experientes. No entanto, estou à disposição para responder eventuais dúvidas dos curiosos de plantão (eu adoro esses curiosos).

Após ter gasto mais ou menos 1 hora tentando descobrir como criar membros (*propriedades e métodos) PRIVADOS de classes (*ou seja, que podem ser acessado apenas por métodos da classe, e não externamente), eu finalmente encontrei uma "solução":

Class = function() { // definição da classe
this._private = {$property:"some data"};
ASSetPropFlags(this, "_private", 7);
};
// cria uma propriedade get/set
// uma propriedade get/set chama uma função
// quando um valor é atribuído à ela
// ou quando seu valor é requerido
Class.prototype.addProperty("property",
function() { // função que retornará o valor da propriedade
if(arguments.caller.hasAccess) {
return this._private.$property;
} else return undefined;
},
function(v) { // função que definirá o valor da propriedade
if(arguments.caller.hasAccess)
this._private.$property = v;
}
);
Class.prototype.someMethod = function() {
return this.property;
};
Class.prototype.someMethod.hasAccess = true;

// teste
myInstance = new Class();
trace(myInstance.someMethod()); // mostra "some data'
trace(myInstance.property); // mostra "undefined"

Então eu decidi postar meu código para a lista Flashcoders (*Uma PontoFlash lá nos EUA) para que o pessoal brilhante de lá pudessem me dar suas opiniões, e eles me surprenderam como sempre. Eu descobri que "propriedades" (ou "métodos") criados com a declaração VAR se tornam privados, já que eles não podem ser acessados diretamente por uma instância de uma classe. O Casper Schuirink mostrou um ótimo exemplo:

setup_myClass = function() {
var _private = {$property:"some data"};
myClass = function() {};
myClass.prototype.getPrivate = function(prop){
return _private[prop];
};
}
setup_myClass();
myObj = new myClass();
trace(myObj.getPrivate("$property")); // mostra "some data"

Jonas Galvez

0 comentário