如何使实例移动

时间:2016-07-03 08:08:04

标签: actionscript-3 flash

我得到了以下代码,并且flash事件都已正确加载。 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.1.6/Chart.min.js"></script> <div> <canvas id="LineWithLine" width="600" height="400"></canvas> </div>是一个影片剪辑,并被分配了一个类。

ball

但现在实例var speedx: Number=5; var speedy: Number=3; var myball = new ball(); addChild(myball); addEventListener(Event:ENTER_FRAME,ballmove); function ballmove(e:Event):void{ myball.x+=speedx; myball.y+=speedy; } 不会移动,它只会停留在myball位置。请帮助我,并建议如何让这个myball沿着星际线移动..

如果我从库中拖放了实例,那么

0,0

工作得很好,但在myball.x+=speedx; myball.y+=speedy; 给出后无效。

1 个答案:

答案 0 :(得分:1)

在您的代码中,您错误地使用Event:ENTER_FRAME时应该:Event.ENTER_FRAME。我想知道是否存在“无声”错误?测试影片时,使用Ctrl + Shift + Enter运行调试器(提供有关问题/错误的更好反馈)。

var myball = new ball();没有任何意义。您可以使用以下逻辑声明实例:
var 名称数据类型 = ,In您的代码只是说明了 var 名称 = 。令人惊讶的是它有效,但我想知道如果对此感到满意可能会导致更大的未来项目出现问题?

实例名称仅影响Stage上已有的对象。如果您要按代码添加(来自库),请确保使用链接名称创建对象的新实例。

解决方案:
在库中,右键单击“球”对象并选择“属性”,确保“name”ball并勾选“导出ActionScript “(您应该看到”“成为Class: ball)。好的。

现在,在您的代码中,您可以通过以下方式创建新实例:var myball: ball = new ball(); ...

您的代码应该是

var speedx: Number=5;
var speedy: Number=3;
var myball: ball = new ball();

addChild(myball);
addEventListener(Event.ENTER_FRAME, ballmove);

function ballmove(e:Event):void
{
    myball.x += speedx; 
    myball.y += speedy;
}