DENIS CARAVALHO (85 pts)

GUILHERME SCHEIBE (49 pts)

PEDRO CLAUDIO (50 pts)

BÁRBARA TOSTES (64 pts)

DEMIS BUCCI (50 pts)

RICARDO TAKAHASHI (180 pts)

NILTON BICALHO (61 pts)

GABRIEL SPORCH (53 pts)

ILVA RUDEV (90 pts)

LUIZ AVANCI (51 pts)

JOÃO NETO (78 pts)

IRAPUAN MARTINEZ (45 pts)
Treinamento PontoFlash de Flash e ActionScript

Como fazer um ponteiro de um relógio girar sem parar?

Como é que faz para aparecer aquela animação de Carregando e a porcentagem?

Tem como alinhar objetos em frames diferentes de uma vez só?

Tem como encontrar um determinado texto numa string?

Como transformar uma animação da timeline em um movie clip?

Quero fazer um texto com scroll (barra de rolagem) contínua.

Quero que quando terminar a animação de um movieclip, comece outro e assim sucessivamente.

Quero montar um gráfico de barras que ao rodar o filme, fossem crescendo.

Como eu faço para carregar, com load movie, um swf, num ponto específico e com um tamanho específico?

Como fazer um menu que se move na horizontal e diminui no mouse over?

Tem como fazer uma barra de rolagem (scroll bar) colorida?

Como usar o objeto LoadVars para carregar variáveis de um arquivo externo?

Como eu faço para que duas ações não sejam realizadas ao mesmo tempo?

Como criar rótulos para um botão criados dinamicamente, sem precisar declarar um a um?
Quando usar vetor ou bitmap?

Simulando 3D.

Shapes arredondados no PhotoShop.

A história do Flash.

Calendário dinâmico

Line Draw.

Flash Turbine (integração Flash com PHP ou ASP)

Máscara

Shared object.

Objeto Movieclip - introdução

Primeiros passos - apresentação

HTML no Flash 5 - A solução para formatação de textos longos.
Transição

Placar

Frameload

Flash Banner

Contador continuo

Texto com degrade

BarrasCrescentes

Widgets

Spiral

Dottextsimple

Sashacircle 5

Starshiner
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