Flash CS4, Classe drawTriangles
A API para desenhos ganhou diversos novos métodos, um deles é o drawTriangles(), ao ler o nome do método é comum deduzir que é mais um método simples como o drawCircle(), onde este novo método seria um simples meio de desenhar um triângulo, ele desenha sim triângulos, mas vai muito além disto, tendo uma pequena noção de 3D é visto que formas são compostas por vertices, o drawTriangles pode ser trabalhado para esta finalidade.
O método drawTriangles desenha através de vetores, o Flash Player 10 ganhou diversos tipos de vetores para melhorar a performance.
O primeiro parâmetro do drawTriangles deve ser um Vector do tipo Number contendo as vértices, este vetor deve possuir pelo menos 6 valores, um triângulo possui três pontos, cada ponto possui um X / Y, ou seja, 6 valores.
var mc:Shape = new Shape(); mc.graphics.beginFill(0xFF0000); mc.graphics.drawTriangles(Vector.([0, 0, 0, 100, 100, 0])); mc.graphics.endFill(); addChild(mc); mc.x = (stage.stageWidth - mc.width) / 2; mc.y = (stage.stageHeight - mc.height) / 2;
Podemos passar mais 6 valores e desenhar um outro triângulo.
var mc:Shape = new Shape(); mc.graphics.lineStyle(2, 0x000000); mc.graphics.beginFill(0xFF0000); mc.graphics.drawTriangles(Vector.<Number>([0, 0, 0, 100, 100, 0, 0, 100, 100, 100, 100, 0])); mc.graphics.endFill(); addChild(mc); mc.x = (stage.stageWidth - mc.width) / 2; mc.y = (stage.stageHeight - mc.height) / 2;
O segundo parâmetro são os índices, um Vector do tipo int, com a finalidade de reaproveitar as vértices. No vetor Vector.
O exemplo anterior usando índices fica da seguinte forma:
var mc:Shape = new Shape(); mc.graphics.lineStyle(2, 0x000000); mc.graphics.beginFill(0xFF0000); mc.graphics.drawTriangles(Vector.<Number>([0, 0, 0, 100, 100, 0, 100, 100]), Vector.<int>([0, 1, 2, 1, 3, 2]) ); mc.graphics.endFill(); addChild(mc); mc.x = (stage.stageWidth - mc.width) / 2; mc.y = (stage.stageHeight - mc.height) / 2;
O próximo parâmetro é o uvtData. Em uma imagem o ponto superior esquerdo é igual a 0, 0, o inferio 1 e o direito igual a 1. Sabendo disto o ponto inferior direito é igual a 1, 1; superior direito 0, 1; e assim por diante. O Vector do tipo Number do uvtData vai receber estes pontos para aplicar a imagem distorcida nos triângulos, este vetor deve ter o mesmo length do Vector dos vértices.
Os pontos dos índices vão de 0 a 1, você pode passar valores decimais, como .25, .3, .1, .9, etc.
var mc:Shape = new Shape(); mc.graphics.beginBitmapFill(new mummra(100, 100), null, false, true); mc.graphics.drawTriangles(Vector.<Number>([0, 0, 150, 0, 150, 150, 300, 150]), Vector.<int>([0, 1, 2, 3, 2, 1]), Vector.<Number>([0, 0, 1, 0, 0, 1, 1, 1]) ); addChild(mc); mc.x = (stage.stageWidth - mc.width) / 2; mc.y = (stage.stageHeight - mc.height) / 2;




October 21st, 2008 at 8:25
Falando em eFlash3D, desculpa comentar aqui mas, instalei a classe na pastinha certa
C:\Documents and Settings\juliano\Configurações locais\Dados de aplicativos\Adobe\Flash CS4\en\Configuration\Classes
e no Flash ele deu erro de que nao consegiu achar a classe, está no lguar certo? Sempre coloco ai
October 21st, 2008 at 9:50
Oi Juliano,
Está certo, aqui eu crio uma pasta classes na raiz e aponto em preferences>actionscript : button actionscript 3.0 e adiciono essa pasta lá.. fica mais acessível para pode atualizar, deletar.
Verifique se o script que você está usando é da mesma versão da classe, lá no google code o exemplo do cubo é para a primeira versão, vou aproveitar e tirar para não ocorrer enganos.
Qualquer coisa só dar um toque.
October 21st, 2008 at 16:48
opa,
rapz kkkkk se conhece akela pala “meu site nunca sai” kkkkkkkkkkk
entao, esse ai tivemos que lançar o q ta no ar, mas putz…. tamo ja montando outro pq esse ai ficou meio “bugado” kkkkkk
October 21st, 2008 at 17:00
Hehe, sei como é Cristiano, meu site portfolio eu já tinha desistido, mas andei animado, talvez agora eu o desenvolva.
October 23rd, 2008 at 10:51
[...] post anterior comentei sobre o drawTriangles, este update vai ajudar a reforçar como este método pode ser usado, tanto a esfera 3D quanto o [...]
November 4th, 2008 at 15:37
Beleza Erick, uma pergunta, o flash cs4 não funfa a “mc_tween2.as”, pq aqui não faz nada.
October 15th, 2009 at 13:41
Oi Ricardo, o mc_tween2 funciona apenas no AS2, para AS3 você pode usar o Tweener.
February 6th, 2011 at 17:46
Erick, valew pelo post me ajudou bastante, a entender a questão dos triangulos… grande abraço
October 3rd, 2011 at 10:19
Available world, everyone is paid in 2 coins: cash and experience. Take the experience first; the money can come later.
It’s known as a pen. It’s being a printer, hooked straight away to my brain.