dynamic public class ColorMatrixManipulation extends Array {

http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/Array.html

 
Gabriela Trindade Perry - http://www.gabriela.trindade.nom.br



> Date: Tue, 7 Oct 2008 06:39:49 -0700
> Subject: [flexdev] Re: Duvida sobre Array... classes que extendem.
> From: [EMAIL PROTECTED]
> To: flexdev@googlegroups.com
> 
> 
> Primeiramente, muito obrigado por sua atenção O_M3_.
> Creio que o valor da minha constante LENGTH esteja correto, pois ela
> está definida no início da classe da seguinte maneira:
> 
>               private static var IDENTITY_MATRIX:Array = [
>                       1,0,0,0,0,
>                       0,1,0,0,0,
>                       0,0,1,0,0,
>                       0,0,0,1,0,
>                       0,0,0,0,1
>               ]
>               private static var LENGTH:Number = IDENTITY_MATRIX.length;
> 
> O problema ocorre quando a aplicação executa a função copyMatrix,
> exatamente na instrução:
> this[i] = p_matrix[i];
> 
> A aplicação apresenta um erro informando que não consegue acessar a
> posição 0 (zero) da "variável" this, ou seja da instancia.
> Eu acredito que, mesmo minha classe extendendo a classe array, ela
> ainda não está inicializada. E se eu a inicializo como:
> var cmm:ColorMatrixManipulation = new ColorMatrixManipulation([0]);
> 
> Dá o mesmo erro. Como seria o procedimento para inicializar essa minha
> classe que extende Array, de forma que eu possa utilizar o THIS
> corretamente? Eu tentei, no construtor, colocar: this.push(parametro);
> e também tentei this = new Array(LENGTH); (mas isso tá errado, foi só
> uma tentativa mesmo).
> 
> Alguém poderia me ajudar por favor? É que não sei o que eu estou
> fazendo de errado.
> 
> Muito obrigado novamente pessoal...
> 
> Abraços!
> 
> 
> On 7 out, 02:59, O_M3_ <[EMAIL PROTECTED]> wrote:
> > na funçao copyMatrix eu colocaria um output pra ver o que retorna na
> > constante LENGTH...Talvez esteja em 0 e seu for nao avança sendo i < l
> >
> > On 6 out, 19:19, juniorgarcon <[EMAIL PROTECTED]> wrote:
> >
> > > Olá pessoal do Grupo, tudo bem aí como todo mundo?
> > > Eu estou com uma dúvida aqui e estou apanhando dela a algum tempo já..
> > > rs..
> > > Eu estou criando uma aplicação de manipulação de imagem (brilho e
> > > contraste).
> > > Eu criei uma classe que extende a classe "Array" do flex, cujo
> > > construtor pode receber um Array como parâmetro.
> >
> > > public class ColorMatrixManipulation extends Array {
> > >                 public function ColorMatrixManipulation(matrix:Array) {
> > >                         matrix = fixMatrix(matrix);
> > >                         copyMatrix(((matrix.length == LENGTH) ? matrix : 
> > > IDENTITY_MATRIX));
> > >                 }
> >
> > > }
> >
> > > Eu acabei encontrando essas funções (brilho e contraste) já
> > > implementada por "Grant Skinner", onde todos os créditos sobre esta
> > > classe devem ir para ele.
> >
> > > o meu método copyMatrix é o seguinte:
> >
> > >         private function copyMatrix(p_matrix:Array):Void {
> > >                 var l:Number = LENGTH;
> > >                 for (var i:Number=0;i<l;i++) {
> > >                         this[i] = p_matrix[i];
> > >                 }
> > >         }
> >
> > > Um código bem simples, cujo objetivo é popular o "array" da classe
> > > "ColorMatrixManipulation". Estou instanciando minha variável da
> > > seguinte maneira, na minha aplicação:
> >
> > > var cmm:ColorMatrixManipulation = new ColorMatrixManipulation([0]);
> >
> > > Só que isso dá erro, justamente quando ele chama a função copyMatrix.
> > > O erro apresentado diz que ele não consegue acessar a posição 0 para o
> > > comando this[i]. Tenho a impressão de que o "array" da classe
> > > ColorMatrixManipulation não está criado. É como se a classe estivesse
> > > instanciada, mais o Array correspondente ao "this", não
> >
> > > Alguém saberia me dizer o que eu estou fazendo de errado?! Estou com
> > > esse problema a um tempinho e não sei como fazer para "instanciar" o
> > > array do "this".
> >
> > > Cheguei a modificar o construtor para:
> >
> > > public function ColorMatrixManipulation(matrix:Array=null) {
> > >                         this.push(matrix);
> > >                         matrix = fixMatrix(matrix);
> > >                         copyMatrix(((matrix.length == LENGTH) ? matrix : 
> > > IDENTITY_MATRIX));
> > >                 }
> >
> > > e tentei instaciar de duas formas minha variável:
> > > var cmm:ColorMatrixManipulation = new ColorMatrixManipulation([0]);
> > > e
> > > var cmm:ColorMatrixManipulation = new ColorMatrixManipulation();
> >
> > > mais de nada adiantou.
> >
> > > Desculpem a falta de experiência pessoal, mais estou começando a mexer
> > > no flex e essa está sendo minha primeira aplicação.
> >
> > > Muito obrigado desde já. Obrigado mesmo pela atenção de todos.
> >
> > > Tenha uma ótima noite...
> >
> > > Atenciosamente,
> >
> > > Júnior
> > 

_________________________________________________________________
Discover the new Windows Vista
http://search.msn.com/results.aspx?q=windows+vista&mkt=en-US&form=QBRE
--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para [EMAIL PROTECTED]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---

Responder a