动态加载影片剪辑AS3

时间:2013-12-05 14:18:01

标签: actionscript-3 flash

我正在尝试动态地向舞台添加影片剪辑。在主.fla的库中,我有一个名为“menuBar”的影片剪辑。我有一个名为menuBar.as的类,其代码如下:

package
{

    import flash.display.MovieClip;


    public class menuBar extends MovieClip
    {


        public function menuBar()
        {
            var menuBar:MovieClip = new MovieClip  ;
            stage.addChild(menuBar);
            menuBar.x = 319.9;
            menuBar.y = 10.4;
        }
    }

}

类路径设置正确,但此时我已经陷入困境。我不知道如何将电影剪辑放到舞台上。提前感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

你应该做另一种方式。您正在尝试将menuBar类添加到舞台上,但舞台仅为Main所知,而不是menuBar。您应该在Main类,时间轴或其他地方声明一个变量,然后将其添加到舞台上。

// timeline code. Put this in Main
var menubar:menuBar=new menuBar(); // declare
menubar.x=320;
menubar.y=10;  // position
addChild(menubar);  // add

menuBar构造函数应保持为空,因为您显然是在Flash CSx编辑器中设计菜单栏。

另请注意,您可能不需要将菜单栏添加到舞台,您可以轻松地将其添加到主要课程addChild(menubar)而不是stage.addChild(menubar)

答案 1 :(得分:0)

在库中你必须转到剪辑menuBar的属性并将其导出为actionscript,只需检查相应的大小写,在类名字段中输入MenuBar作为例子。也检查第1帧中的导出选项。之后,在代码中的任何位置,您都可以使用以下代码创建一个MenuBar:

var myMenuBar:MenuBar = new MenuBar();
addChild( myMenuBar );

如果您输入类名MyOtherItem,则可以使用以下代码创建它:

var myItem:MyOtherItem = new MyOtherItem();
addChild( myItem );

希望这有帮助

PS:尝试使用大写字母作为类名的第一个字母,使用小写字母作为变量的名字,这对每个人来说都更清楚。 (例如:MyClassName,myVarName)