我到处搜索,找不到这个问题的答案,我会尽我所能解释它。AS3 Flash-在一个类中添加多个不同的影片剪辑到舞台
我在我的图书馆里有两个动画片段,'Bluknife'和'cat'(这是一款RPG游戏)。这两个movieclip都链接到相同名称的as3类。
我知道我可以这两个项目的阶段通过在文档类下面的代码可以添加:
var knife:BluKnife = new BluKnife();
stage.addChild(knife);
knife.x = stage.stageWidth/2;
knife.y = stage.stageHeight/2;
var ct:cat = new cat();
stage.addChild(ct);
ct.x = stage.stageWidth/2;
ct.y = stage.stageHeight/2;
但是我不希望所有这些东西是在文档类,所以我做了,我想用所有的这些东西打电话到舞台另一个类并将其命名为callitems
:
package
{
import flash.display.MovieClip;
import flash.display.MovieClip;
import flash.display.Stage;
public class callitems extends MovieClip
{
public function callitems()
{
var knife:BluKnife = new BluKnife();
stage.addChild(knife);
knife.x = stage.stageWidth/2;
knife.y = stage.stageHeight/2;
var ct:cat = new cat();
stage.addChild(ct);
ct.x = stage.stageWidth/2;
ct.y = stage.stageHeight/2;
}
}
}
我只是想知道我怎么会去从我的文档类调用callitems
类?我已经尝试了一些东西,比如创建一个callitems
的实例,并将其添加到文档类的阶段(我并不感到惊讶并没有奏效)。这里的功能:
public function Engine()
{
var calling:callitems = new callitems();
stage.addChild(calling);
}
我得到了以下错误: 类型错误:错误#1009:无法访问空对象引用的属性或方法。 在callitems() 在引擎()
我的文档类的名称是Engine
我不能将电影剪辑放在舞台上的原因是添加的电影剪辑各不相同。它们根据存储在变量中的值添加。 我想我开始明白你的答案的后半部分。你是说'callItems'应该加入自己而不是阶段?你能给出一个小代码例子艾米? 谢谢 -Mark – 2013-05-09 03:25:17
PS。感谢您的帮助到目前为止,非常感谢 – 2013-05-09 03:39:26
只要您使用新的操作符,那里的某个人就必须具有对该类的引用,并且它将被编译到您的主类中,因为它知道所有它知道正在使用的类,因此它是否在变量中并不重要。要添加项目到'Calling',用'this'替换'stage'。 – 2013-05-10 02:57:27