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
--~--~---------~--~----~------------~-------~--~----~
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