Actionscript 3 我如何使用类来处理不在舞台上的对象?

Actionscript 3 我如何使用类来处理不在舞台上的对象?,actionscript-3,flash,oop,Actionscript 3,Flash,Oop,我在使用类时遇到了问题。我在线使用了此教程: 我的问题是在本教程中,他在舞台上使用对象。我想做的是从代码外添加对象,并使用完全相同的代码。因此,阶段是空的,当您运行项目时,它将添加您可以拖动的对象 Game.as(这是导入我的类的地方) 工具(本教程称之为Dragableshirt) ToolType1(本教程称之为白衬衫/黑衬衫) 在快速看了3个视频中的第1个之后,我想你已经明白了。 他只是把他的东西放在舞台上,以便测试/展示 你要找的是一系列的代码 var WhiteShirt:Class

我在使用类时遇到了问题。我在线使用了此教程:

我的问题是在本教程中,他在舞台上使用对象。我想做的是从代码外添加对象,并使用完全相同的代码。因此,阶段是空的,当您运行项目时,它将添加您可以拖动的对象

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

工具
(本教程称之为Dragableshirt)

ToolType1
(本教程称之为白衬衫/黑衬衫)


在快速看了3个视频中的第1个之后,我想你已经明白了。 他只是把他的东西放在舞台上,以便测试/展示

你要找的是一系列的代码

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

我不确定你是否需要第一行,这是我不久前在使用带有字符串的类时使用的,我在SWF之间来回发送字符串,试试看它在没有字符串的情况下是否有效,否则就保留它。(请注意,此代码应该放在fla文件中,或者最好是附加到fla文件的“Main.as”文件)

我尝试将其与addChild一起添加到另一个名为Game.as的类中,在该类中导入Tools.as(在教程中称为DragableShirt)(我试图在我的问题中添加代码,但不知怎么的,代码按钮不起作用……我应该像在教程中那样使用链接还是给它一个像WhiteShirt这样的名称?当我以这种方式使用getDefinitionByName将它放在我的游戏类中时,我会得到错误:1180和1046
var ToolType1:class=getDefinitionByName(“classes.tools.ToolType1”)as类;var myTool:MovieClip=newtooltype1()作为MovieClip;
这就是我过去处理错误的方法,但现在它引用了我的工具类中的问题,就像添加类的普通addChild方法一样,因为如果没有在stage上添加对象,该类就没有要响应的对象。我修复了工具类中的问题,我必须删除parent.addChild并将其添加到我的游戏类中,现在它可以工作了it’很好,谢谢你的帮助,我没有回复,有几天我都没联系上,很高兴听到你用任何一种方法解决了这个问题!!:)
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;
        }
    }
}
package classes.tools
{
    public class ToolType1 extends Tools
    {   
    }
}
var WhiteShirt:Class = getDefinitionByName('WhiteShirt') as Class;
var myShirt:WhiteShirt = new WhiteShirt();
myShirt.x = 100;
myShirt.y = 200;
addChild(myShirt);