ActionScript 3 - 在外部类中使用 MovieClip

Posted

技术标签:

【中文标题】ActionScript 3 - 在外部类中使用 MovieClip【英文标题】:ActionScript 3 - Using MovieClip in external Class 【发布时间】: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

【问题讨论】:

【参考方案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);

以上是关于ActionScript 3 - 在外部类中使用 MovieClip的主要内容,如果未能解决你的问题,请参考以下文章

如何在外部类上加载@ConfigurationProperties?

如何在外部类中的事件后更新 SwiftUI 按钮?

内部类中的私有构造函数在外部类中初始化

局部内部类详解

---内部类-----

内部类包修饰符代码块