![]() |
|
||||||||||
|
|||||
|
Регистрация: Jun 2014
Сообщений: 558
|
помогите, никак не могу найти причину проблемы, пишет что
TypeError: Error #1009: Cannot access a property or method of a null object reference. at package_cl::gl_ship_cl/fn_stage_x_y_ship() at package_cl::gl_ship_cl/fn_control_ship() если из класс main удалить, то всё control_bullet = new Control_bullet_cl (gl_ship) нормально, а если оставить, то кораблик перестаёт двигаться и лезет эта ошибка package { import flash.events.KeyboardEvent; import flash.ui.Keyboard; import flash.events.Event; import flash.display.MovieClip; import package_cl.str_daub_cl; import package_cl.gl_ship_cl; import package_cl.bullet_cl; import package_cl.vector_bullet_cl; import package_cl.Control_bullet_cl; public class main extends MovieClip { public var str_daub: str_daub_cl = new str_daub_cl(); private var gl_ship: gl_ship_cl; public var bullet: bullet_cl = new bullet_cl(); public var vector_bullet: vector_bullet_cl = new vector_bullet_cl(); private var control_bullet: Control_bullet_cl; public function main() { this.addChild(str_daub); str_daub.str_daub_Array[3].addEventListener(MouseEvent.CLICK, fn_click_btn); } public function fn_click_btn(e: MouseEvent): void { str_daub.str_daub_Array[3].removeEventListener(MouseEvent.CLICK, fn_click_btn); this.removeChild(str_daub); gl_ship = new gl_ship_cl(); this.addChild(gl_ship); control_bullet = new Control_bullet_cl (gl_ship); //вот от этой строки проблемы stage.focus = stage; } } } package package_cl { import flash.events.KeyboardEvent; import package_cl.gl_ship_cl; import package_cl.vector_bullet_cl; import flash.display.Sprite; public class Control_bullet_cl extends Sprite{ private var vr_bullet: vector_bullet_cl = new vector_bullet_cl(); private var gl_ship: gl_ship_cl = new gl_ship_cl(); public function Control_bullet_cl(gl_ship) { // constructor code stage.addEventListener(KeyboardEvent.KEY_DOWN, fn_fire_down); stage.addEventListener(KeyboardEvent.KEY_UP, fn_fire_up); } private function fn_fire_down(): void { } private function fn_fire_up(): void { } } } package package_cl { import flash.display.Sprite; import flash.events.KeyboardEvent; import flash.ui.Keyboard; import flash.events.Event; import flash.geom.Point; import package_cl.global_variable_cl; import package_cl.vector_bullet_cl; import package_cl.bullet_cl; public class gl_ship_cl extends gl_ship_mc { private var upPressed: Boolean = false; private var leftPressed: Boolean = false; private var rightPressed: Boolean = false; private var gl_variable: global_variable_cl; private var ver_bullet: vector_bullet_cl; /////////////////////////////// public function gl_ship_cl() { gl_variable = new global_variable_cl(); ver_bullet = new vector_bullet_cl(); x = 800; y = 525; this.addEventListener(Event.ENTER_FRAME, fn_control_ship); private function fn_control_ship(e: Event): void { if (rightPressed) { rotation += gl_variable.rotation_ship; } if (leftPressed) { rotation -= gl_variable.rotation_ship; } if (upPressed) { if (gl_variable.jump_ship <= gl_variable.jump_ship_max) { gl_variable.jump_ship += gl_variable.factor_jump_ship; } vector_Vx_ship = gl_variable.factor_speed_ship * gl_variable.jump_ship * Math.cos(rotation * Math.PI / 180); vector_Vy_ship = gl_variable.factor_speed_ship * gl_variable.jump_ship * Math.sin(rotation * Math.PI / 180); x -= vector_Vx_ship; y -= vector_Vy_ship; } else { if (gl_variable.jump_ship >= 0.2) { vector_Vx_ship = vector_Vx_ship * gl_variable.braking_ship; vector_Vy_ship = vector_Vy_ship * gl_variable.braking_ship; x -= vector_Vx_ship; y -= vector_Vy_ship; gl_variable.jump_ship -= 0.15; } } fn_stage_x_y_ship(); } private function fn_stage_x_y_ship(): void { if (x > stage.stageWidth - 30) { x = 30; } if (x < 30) { x = stage.stageWidth - 30; } if (y > stage.stageHeight - 30) { y = 180; } if (y < 180) { y = stage.stageHeight - 30; } } } } тут немного больше переменных, код не полный, боюсь если начну сильнее править, допущу ошибку |
![]() |
Часовой пояс GMT +4, время: 00:05. |
|
|
« Предыдущая тема | Следующая тема » |
|
|