Как объединить классы Объединение классов – очень важный процесс, особенно для AS3, вот как Вы можете это сделать: На панели свойств movie: Пишете as3circle в поле классов документа, что установит as3circle.as как главный классификационный файл. На панели свойств circle object: Пишете circle в поле классов, это создаст классификационный файл для объекта circle . Теперь ваш .fla файл и три файла .as должны находиться в одной ветви.
Данная кодировка применительна для всех файлов…Думаю, нет необходимости
комментировать еще что-либо, ведь это делалось уже много раз…но если
Вам все-таки нужны пояснения, спрашивайте…as3circle.as file: ACTIONSCRIPT: package {
import flash.display .Sprite ;
import flash.events .Event ;
public class as3circle extends Sprite {
public var keyboard_input:keys;
public var circle_hero = new circle;
public function as3circle( ) {
addChild( circle_hero) ;
circle_hero.init ( ) ;
var keyboard_sprite = new Sprite( ) ;
addChild( keyboard_sprite) ;
keyboard_input = new keys( keyboard_sprite) ;
stage .addEventListener ( Event.ENTER_FRAME ,on_enter_frame) ;
}
public function on_enter_frame( event:Event) {
if ( keyboard_input.is_left ( ) ) {
circle_hero.apply_force ( -1 ,0 ) ;
}
if ( keyboard_input.is_right ( ) ) {
circle_hero.apply_force ( 1 ,0 ) ;
}
if ( keyboard_input.is_up ( ) ) {
circle_hero.apply_force ( 0 ,-1 ) ;
}
if ( keyboard_input.is_down ( ) ) {
circle_hero.apply_force ( 0 ,1 ) ;
}
}
}
}
circle.as file: ACTIONSCRIPT: package {
import flash.display .Sprite ;
import flash.events .Event ;
public class circle extends Sprite {
private var x_speed:Number ;
private var y_speed:Number ;
private var power:Number ;
private var friction:Number ;
private var gravity:Number ;
public function circle( ) {
addEventListener( Event.ENTER_FRAME , movement) ;
}
private function movement( e :Event) {
x+=x_speed;
y+=y_speed;
rotation += x_speed;
y_speed += gravity;
x_speed *= friction;
y_speed *= friction;
if ( x>500 || x<0 || y>400 || y<0 ) {
init( ) ;
}
}
public function apply_force( x_force,y_force) {
x_speed += ( x_force*power) ;
y_speed += ( y_force*power) ;
}
public function init( ) {
gravity = 0 .1 ;
power = 0 .66 ;
friction = 0 .99 ;
x_speed = 0 ;
y_speed = 0 ;
x = 250 ;
y = 200 ;
}
}
}
keys.as file ACTIONSCRIPT: package {
import flash.events .KeyboardEvent ;
public class keys {
private var press_left = false ;
private var press_right = false ;
private var press_up = false ;
private var press_down = false ;
private var press_space = false ;
public function keys( movieclip ) {
movieclip .stage .addEventListener ( KeyboardEvent.KEY_DOWN , key_down) ;
movieclip .stage .addEventListener ( KeyboardEvent.KEY_UP , key_up) ;
}
public function is_left( ) {
return press_left;
}
public function is_right( ) {
return press_right;
}
public function is_up( ) {
return press_up;
}
public function is_down( ) {
return press_down;
}
public function is_space( ) {
return press_space;
}
private function key_down( event:KeyboardEvent) {
if ( event.keyCode == 32 ) {
press_space = true ;
}
if ( event.keyCode == 37 ) {
press_left = true ;
}
if ( event.keyCode == 38 ) {
press_up = true ;
}
if ( event.keyCode == 39 ) {
press_right = true ;
}
if ( event.keyCode == 40 ) {
press_down = true ;
}
}
private function key_up( event:KeyboardEvent) {
if ( event.keyCode == 32 ) {
press_space = false ;
}
if ( event.keyCode == 37 ) {
press_left = false ;
}
if ( event.keyCode == 38 ) {
press_up = false ;
}
if ( event.keyCode == 39 ) {
press_right = false ;
}
if ( event.keyCode == 40 ) {
press_down = false ;
}
}
}
}
Теперь старая игра запущена с классами AS3.
скачайте исходник и попробуйте.