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