![]() |
|
||||||||||
|
|||||
|
Регистрация: Jun 2010
Сообщений: 120
|
Добрый день.
Немогу никак получить доступ к BitmapData объекта типа Sprite для отслеживания столкновений метода hitTest класса BitmapData. Приведу пример: Class Assets 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 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 } } } 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 = []; } } } } Последний раз редактировалось goldlider; 17.07.2012 в 20:25. |
![]() |
Часовой пояс GMT +4, время: 15:15. |
|
|
« Предыдущая тема | Следующая тема » |
|
|