1

我在使用类时遇到问题。我在网上使用了这个教程:
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
    {   
    }
}
4

1 回答 1

0

在快速查看视频 1 of 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”文件)

于 2012-11-13T11:04:55.063 回答