我是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");
}
}
}
Run Code Online (Sandbox Code Playgroud)
我没有得到任何错误,但跟踪命令也不起作用,我的图像没有出现在舞台上.非常感谢任何帮助.我花了很长时间试图解决这个问题而且我无处可去.
谢谢!
对于初学者,你应该尝试阅读更多关于课程的内容.您的代码中有几个错误:
你实际上是在堆栈溢出.这很有趣,因为这个网站的名称.:)
您以递归方式定义与父级相同类型的变量.当你创建第一个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;
Run Code Online (Sandbox Code Playgroud)
在您的外部文件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
}
}
}
Run Code Online (Sandbox Code Playgroud)