我怎样才能使用不在舞台上的对象?

时间:2012-11-13 10:46:57

标签: actionscript-3 flash oop

我通过使用类遇到问题。我在线使用本教程:
http://www.youtube.com/watch?v=ALqGYMsRWxw

我的问题是在本教程中他在舞台上使用对象。我想要做的是从代码中添加对象并使用完全相同的代码。这样舞台是空的,当你运行项目时,它会添加你可以拖动的对象。

Game.as(这是导入我的课程的地方)

package
{
    import flash.display.MovieClip;

    import classes.tools.Tools;
    import classes.tools.ToolType1;

    public class Game extends MovieClip
    {       
        var tool1:classes.tools.ToolType1 = new classes.tools.ToolType1();

        public function Game()
        {           
            addChild(tool1);

        }
    }
}

Tools(这是教程中名为DraggableShirt的内容)

package classes.tools
{
    import flash.display.MovieClip;
    import flash.events.MouseEvent;
    import flash.geom.Point;

    public class Tools extends MovieClip
    {           
        var originalPosition:Point;

        public function Tools()
        {           
            originalPosition = new Point(x,y);
            buttonMode = true;
            parent.addChild(this);

            this.addEventListener(MouseEvent.MOUSE_DOWN, drag);

        }
        // als je de muis indrukt dan pak je een voorwerp op
        function drag(evnt:MouseEvent):void
        {       
            stage.addEventListener(MouseEvent.MOUSE_UP, drop);
            this.startDrag();
            //scaling
            this.scaleY = 1.5;
            this.scaleX = 1.5;
        }
        // als je de muis loslaat laat je het voorwerp los
        function drop(e:MouseEvent):void
        {
            //positioning van de tools
            //Delete knop

            //bewerk knop
            stage.removeEventListener(MouseEvent.MOUSE_UP, drop);
            stopDrag()  

            if(dropTarget)
            {
                if(dropTarget.parent.name == "trash")
                {

                }
                else
                {
                    returnToOriginalPosition();
                }
            }
            else
            {
                returnToOriginalPosition();
            }           
        }
        function returnToOriginalPosition():void
        {
            x = originalPosition.x;
            y = originalPosition.y;
            this.scaleX = 1;
            this.scaleY = 1;
        }
    }
}

ToolType1(这就是教程中所谓的WhiteShirt / BlackShirt)

package classes.tools
{
    public class ToolType1 extends Tools
    {   
    }
}

1 个答案:

答案 0 :(得分:0)

快速浏览一下3中的视频后,我会说你已经明白了。 他只是将他的东西放在舞台上以便于测试/展示。

您正在寻找的是代码;

var WhiteShirt:Class = getDefinitionByName('WhiteShirt') as Class;
var myShirt:WhiteShirt = new WhiteShirt();
myShirt.x = 100;
myShirt.y = 200;
addChild(myShirt);

我不确定你是否需要第一行,它是我前一段时间使用的东西,当我使用带有字符串的类我在swfs之间来回发送时,尝试查看它是否有效,否则只需保留它。 (请注意,此代码应该放在fla文件中,或者更好的是附加到fla文件的'Main.as'文件)