2015-01-14 3 views
0

Кодирование в ActionScript Я нашел ошибку, которую я не мог решить. У меня есть файл Flash с библиотекой, в которой у меня есть объект MovieClip под названием «SpriteGraphic» (он связан, и это имя класса также «SpriteGraphic»)ActionScript 3 - Использование MovieClip во внешнем классе

Теперь у меня есть внешний класс, в котором я хочу иметь экземпляр этого объекта:

package { 

     import flash.display.Stage; 
     import flash.geom.Point; 
     import flash.display.MovieClip; 

     public class Object 
     {   
      var spriteGraphic:SpriteGraphic; 
      var velY:Number; 
      var velX:Number; 
      var IA:Number; 
      public function Object(posInit:Point, vel:Number , parAngle:Number, stageObj:Stage):void 
      { 
       spriteGraphic = new SpriteGraphic();    
       spriteGraphic.x = posInit.x; 
       spriteGraphic.y = posInit.y;   
       trace(spriteGraphic.x); 
       IA = parAngle;    
       velX = -vel * Math.cos(IA); 
       velY = vel * Math.sin(IA); 
       stageObj.addChild(spriteGraphic); 
      } 
... 

При выполнении вывода говорит, что spriteGraphic имеет значение NULL. Как я могу использовать MovieClip из библиотеки и иметь переменную этого типа во внешнем классе?

Большое спасибо!

Никто? В самом деле? : c

ответ

0

Я предполагаю, что объект является зарезервированным словом. Попробуйте использовать другое имя для своего класса.

Также, ваш конструктор не должен иметь тип возврата. Хотя компилятор не предупредит вас, технически ошибка заключается в том, чтобы ввести его в пустоту.

package { 

     import flash.display.Stage; 
     import flash.geom.Point; 
     import flash.display.MovieClip; 

     public class MyObject 
     {   
      var spriteGraphic:SpriteGraphic; 
      var velY:Number; 
      var velX:Number; 
      var IA:Number; 
      public function MyObject(posInit:Point, vel:Number , parAngle:Number, stageObj:Stage) 
      { 
       spriteGraphic = new SpriteGraphic();    
       spriteGraphic.x = posInit.x; 
       spriteGraphic.y = posInit.y;   
       trace(spriteGraphic.x); 
       IA = parAngle;    
       velX = -vel * Math.cos(IA); 
       velY = vel * Math.sin(IA); 
       stageObj.addChild(spriteGraphic); 
      } 
+0

Я изменил имена. Первоначальный класс не называется Object, а MovieClip не называется SpriteGraphic. – Ronan

+0

Был ли добавлен родитель stageObj на сцену? Свойство свойства DisplayObject равно null до тех пор. – phasma

+0

Вот как я создаю новый «MyObject». Это с главной сцены. var myObject: MyObject = new MyObject (character.position, Distance, angle, stage); – Ronan

Смежные вопросы