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的主要内容,如果未能解决你的问题,请参考以下文章