我是AS3的新手所以请原谅我提出一些可能很容易解决的问题。
我正在尝试使用外部AS3类将图像加载到舞台上。我不确定这是否是最好的方法,但我从一个教程开始,所以跟着它。
我的对象(movieclip)有“Mountain”类,被称为“Mountain_mc”。
我的外部AS3类文件被称为'Mountain',这是代码(它存储在与Flash文件相同的项目文件夹级别,我试图将图像加载到舞台上) -
package
{
import flash.display.MovieClip;
import flash.display.Stage;
public class Mountain extends MovieClip
{
public function Mountain()
{
var myMountain:Mountain = new Mountain();
stage.addChild(myMountain);
myMountain.x = stage.stageWidth/2;
myMountain.y = stage.stageHeight/2;
trace ("I am a mountain");
}
}
}
我没有得到任何错误,但是跟踪命令也不起作用,我的图像没有出现在舞台上。非常感谢任何帮助。我花了很长时间试图解决这个问题而且我无处可去。
谢谢!
答案 0 :(得分:5)
对于初学者,你应该尝试阅读更多关于课程的内容。你的代码中有几个错误:
你实际上是在堆栈溢出。这很有趣,因为这个网站的名称。 :)
您以递归方式定义与父级相同类型的变量。 当你创建第一个myMountain时,它将调用它的构造函数。在其中,它将创建一个变量myMountain,它也将调用它的构造函数。等等。
因此,var myMountain:Mountain = new Mountain();
以下的代码行不会出现。如果需要,您可以尝试在该行之前移动trace
。如果你编译它,你会得到无数的“我是一座山”。
stage
。考虑到你有一个空的电影,有一个名为“mountain_mc”的库符号,它指向一个名为Mountain的类,你必须在电影的文件夹中有一个外部文件Mountain.as。然后,您有两种类型的代码
在电影的第一帧上,打开“动作”面板,然后编写:
var myMountain:Mountain = new Mountain();
this.addChild(myMountain);
myMountain.x = stage.stageWidth/2;
myMountain.y = stage.stageHeight/2;
在您的外部文件Mountain.as中,您有:
package {
import flash.display.MovieClip;
import flash.display.Stage;
public class Mountain extends MovieClip
{
public function Mountain()
{
trace ("I am a mountain");
// do something else
}
}
}