我通过使用类遇到问题。我在线使用本教程:
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
{
}
}
答案 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'文件)