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);