IRAPUAN MARTINEZ (45 pts)

ZECA BALA (45 pts)

FÁBIO DUARTE (79 pts)

MARLOS ALVES CARMO (90 pts)

BÁRBARA TOSTES (64 pts)

RICARDO TEIXEIRA (40 pts)

RICARDO TAKAHASHI (180 pts)

EDUARDO CARREGA (150 pts)

JOÃO NETO (78 pts)

KEN AWAMURA (130 pts)

NETO LEAL (116 pts)

GUILHERME SCHEIBE (49 pts)
Treinamento PontoFlash de Flash e ActionScript

Como adicionar um site aos favoritos num botão do Flash?

Como fazer um cronômetro disparado por um botão no flash MX?

Tem como colocar botões “próximo texto” e “texto anterior” quando abro com load variables?

Preciso de uma action para retroceder ou reverter uma animação.

Criação de classes no Actionscript 2.

Quero fazer alguns layouts diferentes para o mesmo site e cada vez que o usuário entrar veja um deles.

Como criar rótulos para um botão criados dinamicamente, sem precisar declarar um a um?

Tem como posicionar uma imagem aberta com Load Movie (jpg)?

Como importar um texto no Flash com as tags de negrito do HTML?

Não entendo como funciona os formulário em ASP.

Como faço para detectar a passagem de 1 minuto no meu filme?

Eu fiz um som e queria que ele só tocasse quando a pessoa passasse o mouse por cima dele.

É possível carregar swfs (load movie) sempre em níveis superiores ao aberto anteriormente?

Tenho vários objetos e queria fazê-los aleatoriamente mudar a propriedade alpha.
A história do Flash.

Tornando movieclips arrastáveis (drag movieclip)

ListBox no FlashMX.

Máscaras no Fireworks MX, o mistério!

Componente ComboBox.

Transparência no Flash.

Texto difuso

GetMySQLData para Flash5 (segunda parte)

Objeto XML - introdução.

Envio de um arquivo SWF por e-mail

Time Delay

Simulando botões d'água no PhotoShop.
Drag txt

Troca cor de fundo

Preloadtotal

Texto com scroll

Mapa - Países com C

Menu abre pasta

Trocar cor de fundo

Combobox com interação em ASP

Toca fita

Grafico de percentagens

Book of pages

ComboBox duplo
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