【问题标题】:ActionScript 3 - Using MovieClip in external ClassActionScript 3 - 在外部类中使用 MovieClip
【发布时间】:2015-03-12 19:29:50
【问题描述】:

在 ActionScript 中编码 我发现了一个我无法解决的错误。我有一个带有库的 Flash 文件,其中有一个名为“SpriteGraphic”的 MovieClip 对象(它是链接的,它的类名也是“SpriteGraphic”)

现在我有一个外部类,我想在其中拥有该对象的一个​​实例:

    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 为空。 如何使用库中的 MovieClip,并在外部类中拥有该类型的变量?

非常感谢!

没有人吗?真的吗? :c

【问题讨论】:

    标签: flash actionscript movieclip


    【解决方案1】:

    我假设 Object 是一个保留字。尝试为您的班级使用不同的名称。

    另外,你的构造函数不应该有返回类型。尽管编译器不会警告您,但将其键入为 void 从技术上讲是错误的。

    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);
              }
    

    【讨论】:

    • 我改了名字。原始类不叫 Object,MovieClip 也不叫 SpriteGraphic。
    • stageObj 的父级是否已添加到舞台上?在此之前,DisplayObject 的舞台属性为空。
    • 这就是我创建新“MyObject”的方式。来自主场景。 var myObject:MyObject = new MyObject(character.position, Distance, angle,stage);
    猜你喜欢
    • 2013-10-19
    • 2011-09-14
    • 2014-08-02
    • 1970-01-01
    • 1970-01-01
    • 2010-10-22
    • 1970-01-01
    • 2010-12-17
    • 2012-04-12
    相关资源
    最近更新 更多