Добрый день.
Немогу никак получить доступ к BitmapData объекта типа Sprite для отслеживания столкновений метода hitTest класса BitmapData.
Приведу пример:
Class Assets

Код AS3:
package
{
public class Assets
{
[Embed(source="../assets/objects/ship.png")]
public static const SHIP:Class;
[Embed(source="../assets/stalagmites.png")]
public static const STALAGMITES:Class;
}
}
Class Ship

Код AS3:
package
{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.DisplayObject;
import flash.display.Sprite;
public class Ship extends Character
{
private var _shipBitmapData:BitmapData;
private var _shipBitmap:Bitmap;
private var _ship:DisplayObject;
public function Ship()
{
_ship = new Assets.SHIP();
_shipBitmapData = new BitmapData(_ship.width, _ship.height, true, 0);
_shipBitmapData.draw(_ship);
_shipBitmap = new Bitmap(_shipBitmapData);
_sprite = new Sprite();
_sprite.addChild(_shipBitmap); // Спрайт по иерархии наследования затем добавляется в класс World
}
}
}
Class World

Код AS3:
package
{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.DisplayObject;
import flash.display.Sprite;
public class World extends Sprite
{
private var _stalagmites:DisplayObject;
private var _stalagmitesBitmap:Bitmap;
private var _stalagmitesBitmapData:BitmapData;
private var _stalagmitesPoint:Point;
private var _stalagmitesSprite:Sprite;
public function World()
{
makeStalagmites();
addEventListener(Event.ENTER_FRAME, update);
}
private function makeStalagmites():void
{
_stalagmites = new Assets.STALAGMITES();
_stalagmitesBitmapData = new BitmapData(_stalagmites.width, _stalagmites.height, true, 0);
_stalagmitesBitmapData.draw(_stalagmites);
_stalagmitesBitmap = new Bitmap(_stalagmitesBitmapData);
_stalagmitesBitmap.y = App.SCREEN_HEIGHT - _stalagmitesBitmap.height;
_stalagmitesSprite = new Sprite();
_stalagmitesSprite.addChild(_stalagmitesBitmap);
addChild(_stalagmitesSprite);
}
private function update(event:Event):void
{
_shipPoint = new Point(_ship.x, _ship.y);
_stalagmitesPoint = new Point(_stalagmitesSprite.x, _stalagmitesSprite.y);
// Должно быть так, но вот обратиться к объекту BitmapData класса Ship немогу
if (_shipBitmapData.hitTest(_shipPoint, 255, _stalagmitesBitmapData, _stalagmitesPoint, 255))
{
_stalagmitesBitmap.filters = [new GlowFilter()];
}
else
{
_stalagmitesBitmap.filters = [];
}
}
}
}