hello,
I am trying to replace a movie clip image with a bitmap image and now the code to fire the image(missile) doesn’t work. I get these errors:
1119: Access of possibly undefined property dx through a reference with static type flash.display:Bitmap.
1119: Access of possibly undefined property dy through a reference with static type flash.display:Bitmap.
anyone know why it’s not working? Thanks
package {
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.display.Bitmap;
import flash.display.BitmapData;
public class PlayerMissiles extends MovieClip
{
static const shipRadius:Number = 20;
static const missileSpeed:Number = .48;
public static var missiles:Array;
private var _angle:Number;
private var _shotFired:Boolean;
private var _stage:uint;
private var dx:Number;
private var dy:Number;
static var _player:Bitmap;
public var _playerX:Number;
public var _playerY:Number;
public var imageBitmapData:BitmapData;
public static var missile:Bitmap;
public function PlayerMissiles()
{
addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
}
private function onAddedToStage(event:Event):void
{
//Initialize properties
missiles = new Array();
_angle = 0;
_shotFired = false;
dx = 0;
dy = 0;
_player = PlayerShip.Player;
//Add event listenters
stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
addEventListener(Event.REMOVED_FROM_STAGE, onRemovedFromStage);
}
private function onRemovedFromStage(event:Event):void
{
removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
removeEventListener(Event.REMOVED_FROM_STAGE, onRemovedFromStage)
}
private function onMouseDown(event:MouseEvent):void
{
if (! _shotFired)
{
shootMissile();
_shotFired = true;
}
}
private function onMouseUp(event:MouseEvent):void
{
_shotFired = false;
}
public function frameEvents(){
moveMissiles();
}
private function shootMissile(){
_playerX = _player.x + 31.5;
_playerY = _player.y + 26.5;
imageBitmapData = new Bullet(27, 24);
missile = new Bitmap(imageBitmapData);
_angle = Math.atan2(_playerY - stage.mouseY, _playerX - stage.mouseX);
missile.dx = Math.cos(_angle) * -10;
missile.dy = Math.sin(_angle) * -10;
var radius:int = -50;
var missile_StartX:Number = _playerX + radius * Math.cos(_angle);
var missile_StartY:Number = _playerY + radius * Math.sin(_angle);
missile.x = missile_StartX;
missile.y = missile_StartY;
addChild(missile);
missiles.push(missile);
// animate missiles
}
public function moveMissiles(){
for(var o:int=missiles.length-1;o>=0;o--) {
// move
missiles[o].x += missiles[o].dx * missileSpeed;
missiles[o].y += missiles[o].dy * missileSpeed;
// moved off screen
if ((missiles[o].x < 0) || (missiles[o].x > 650) || (missiles[o].y < 0) || (missiles[o].y > 600)) {
removeChild(missiles[o]);
delete missiles[o];
missiles.splice(o,1);
}
}
}
public static function get Missiles():Array
{
return missiles;
}
}
}