Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Daniel o rei

peguei uma função no site mais não está funcionando

Recommended Posts

Tenho um simples script onde está o problema:

import HitTest;

trace (HitTest.complexHitTestObject(sl,mclist.mc));

O package tirado de http://www.foxarc.co...article/106.htm

esse package é para detectar colisões sem colidir com a caixa delimitadora

package /*com.foxarc.display*/ { import flash.display.BitmapData; import flash.display.BlendMode; import flash.display.DisplayObject; import flash.display.Sprite; import flash.geom.ColorTransform; import flash.geom.Matrix; import flash.geom.Point; import flash.geom.Rectangle; public class HitTest { public static function complexHitTestObject( target1:DisplayObject, target2:DisplayObject, accurracy:Number = 1 ):Boolean { return complexIntersectionRectangle( target1, target2, accurracy ).width != 0; } public static function intersectionRectangle( target1:DisplayObject, target2:DisplayObject ):Rectangle { // If either of the items don't have a reference to stage, then they are not in a display list // or if a simple hitTestObject is false, they cannot be intersecting. if( !target1.root || !target2.root || !target1.hitTestObject( target2 ) ) return new Rectangle(); // Get the bounds of each DisplayObject. var bounds1:Rectangle = target1.getBounds( target1.root ); var bounds2:Rectangle = target2.getBounds( target2.root ); // Determine test area boundaries. var intersection:Rectangle = new Rectangle(); intersection.x = Math.max( bounds1.x, bounds2.x ); intersection.y = Math.max( bounds1.y, bounds2.y ); intersection.width = Math.min( ( bounds1.x + bounds1.width ) - intersection.x, ( bounds2.x + bounds2.width ) - intersection.x ); intersection.height = Math.min( ( bounds1.y + bounds1.height ) - intersection.y, ( bounds2.y + bounds2.height ) - intersection.y ); return intersection; } public static function complexIntersectionRectangle( target1:DisplayObject, target2:DisplayObject, accurracy:Number = 1 ):Rectangle { if( accurracy

 

 

O script está bagunçado pois estou com problema com esse editor de post. Para ver o package entre no site. Alguem pode tentar fazer o script funcionar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

originalmente, a função foi criado por esse cara (esse outro ai só trocou o package, espertinho)

 

eu já tive dificuldade usando ela tb, caso você esteja carregando um swf que usa ela

 

dê uma lida nos comentários do post do link, que tem algumas soluções

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu acho que trace não funciona com boleano. O OUTPUT dizia que complexHitTestObject NÃO ERA UMA FUNÇÂO. Fui enganado !!! Eu descobri essa função quando tive uma dúvida e você disse para pesquisar complex hittest as3. Na época usava as2 e não consegui usar usando as2 mas agora deu certo. Eu vi também que o cara copiou o package de outro site. Eu dei uma olhada no script e não intendi direito como funciona, mas funciona!

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.