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 [email protected]
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
-~----------~----~----~----~------~----~------~--~---