home *** CD-ROM | disk | FTP | other *** search
- class CollisionDetection
- {
- function CollisionDetection()
- {
- }
- static function checkForCollision(p_clip1, p_clip2, p_alphaTolerance)
- {
- if(p_alphaTolerance == undefined)
- {
- p_alphaTolerance = 255;
- }
- _root.localToGlobal();
- var _loc4_ = p_clip1.getBounds(_root);
- var _loc3_ = p_clip2.getBounds(_root);
- if(_loc4_.xMax < _loc3_.xMin || _loc3_.xMax < _loc4_.xMin || (_loc4_.yMax < _loc3_.yMin || _loc3_.yMax < _loc4_.yMin))
- {
- return null;
- }
- var _loc2_ = {};
- _loc2_.xMin = Math.max(_loc4_.xMin,_loc3_.xMin);
- _loc2_.xMax = Math.min(_loc4_.xMax,_loc3_.xMax);
- _loc2_.yMin = Math.max(_loc4_.yMin,_loc3_.yMin);
- _loc2_.yMax = Math.min(_loc4_.yMax,_loc3_.yMax);
- var _loc7_ = new flash.display.BitmapData(_loc2_.xMax - _loc2_.xMin,_loc2_.yMax - _loc2_.yMin,false);
- var _loc5_ = p_clip1.transform.concatenatedMatrix;
- _loc5_.tx -= _loc2_.xMin;
- _loc5_.ty -= _loc2_.yMin;
- _loc7_.draw(p_clip1,_loc5_,new flash.geom.ColorTransform(1,1,1,1,255,-255,-255,p_alphaTolerance));
- _loc5_ = p_clip2.transform.concatenatedMatrix;
- _loc5_.tx -= _loc2_.xMin;
- _loc5_.ty -= _loc2_.yMin;
- _loc7_.draw(p_clip2,_loc5_,new flash.geom.ColorTransform(1,1,1,1,255,255,255,p_alphaTolerance),"difference");
- var _loc6_ = _loc7_.getColorBoundsRect(4294967295,4278255615);
- if(_loc6_.width == 0)
- {
- return null;
- }
- _loc6_.x += _loc2_.xMin;
- _loc6_.y += _loc2_.yMin;
- return _loc6_;
- }
- }
-