Actionscript 3 将形状添加到stage as3
我不确定我是否已经或正在考虑这个问题,但是我有这个场景。我希望能够使用多个类(目前)在页面中添加一个三角形。第一个是将actionscript添加到flash中的帧中,第二个是实际的类。现在,我能做这个吗?还是我愚蠢地认为我可以?我希望这样做,这样我就可以创建一个动态创建的背景区域,在这个区域中,我可以与一个类进行交互 镜框上Actionscript 3 将形状添加到stage as3,actionscript-3,flash,Actionscript 3,Flash,我不确定我是否已经或正在考虑这个问题,但是我有这个场景。我希望能够使用多个类(目前)在页面中添加一个三角形。第一个是将actionscript添加到flash中的帧中,第二个是实际的类。现在,我能做这个吗?还是我愚蠢地认为我可以?我希望这样做,这样我就可以创建一个动态创建的背景区域,在这个区域中,我可以与一个类进行交互 镜框上 import flash.display.Stage; var sides:Sides=new Sides(); stage.addChild(sides); this
import flash.display.Stage;
var sides:Sides=new Sides();
stage.addChild(sides);
this.addChild(sides);
上课
package {
import flash.display.Shape;
public class Sides extends Shape {
public function Sides() {
var triangleHeight:uint = 100;
var triangle:Shape = new Shape();
// red triangle, starting at point 0, 0
triangle.graphics.beginFill(0xFF0000);
triangle.graphics.moveTo(triangleHeight / 2, 0);
triangle.graphics.lineTo(triangleHeight, triangleHeight);
triangle.graphics.lineTo(0, triangleHeight);
triangle.graphics.lineTo(triangleHeight / 2, 0);
triangle.graphics.endFill();
trace("Into construct");
}
}
}
我的问题是,实际的三角形没有出现在屏幕上,它是空白的。我知道构造函数是运行的,但是我没有得到实际的输出
我希望我说清楚了。如果有人能提出更好的解决方案,我很乐意听到。我的设想是这样的。
我希望创造一个其他电影剪辑可以互动的世界。我将创建线来表示它们。现在最好是动态生成,还是有一种方法可以让所有其他基类都运行在允许随机宽度的地方。希望这是清楚的。您在边构造函数中创建了一个形状的实例,在该实例中绘制三角形,但该形状从未添加到显示列表中,而是将边实例(其本身未绘制任何图形)添加到显示列表中 因为您的Sides类是扩展形状的,所以您不需要另一个形状实例,您的Sides实例本身就是一个形状,您可以像这样直接绘制到它:
package {
import flash.display.Shape;
public class Sides extends Shape {
public function Sides() {
var triangleHeight:uint = 100;
// red triangle, starting at point 0, 0
this.graphics.beginFill(0xFF0000);
this.graphics.moveTo(triangleHeight / 2, 0);
this.graphics.lineTo(triangleHeight, triangleHeight);
this.graphics.lineTo(0, triangleHeight);
this.graphics.lineTo(triangleHeight / 2, 0);
this.graphics.endFill();
trace("Into construct");
}
}
}
谢谢,成功了。我是否应该使用
stage.addChild(侧面)代码>或此.addChild(侧面)代码>有没有更好的方法来实现我的最终目标的想法?我不确定我是否100%理解了您最初的问题,但是您定义的任何类如果扩展了带有显示列表的任何内容(即DisplayObjectContainer、DisplayObject、Shape、Sprite、MovieClip),都可以将您的三角形添加到其中,类似于var blob:mypriteextendingclass=newmypriteextendingclass();blob.addChild(新边())代码>我是说,例如。我希望创建具有随机x长度的多条线。在固定地点或随机地点。如果这有道理的话?@milks这是不正确的。只有扩展了DisplayObjectContainer
的对象才能添加子对象DisplayObject
,并且只有选定的类才能访问Graphics
类(这意味着它不是由DisplayObject
本身实现的,而是由它的子对象实现的)。