如何在flash中创建一个简单的鼠标单击旋转对象

时间:2013-11-21 20:10:48

标签: actionscript-3 flash

这个问题可能会被低估或无法回答,因为它不是最大和最令人难以置信的愚蠢,但无论如何,

本学期我正在UNI参加一个介绍级别的Webanimation课程,我知道他们对我们从未接受过的动手项目的期望是什么。

基本上,老师教我们东西到遮蔽/补间的程度,以及很少的鼠标事件和基本功能代码。

现在她期待我们做一个该死的整个管道游戏。有一堆旋转管道的那个,你必须在计时器用完之前将它们旋转到位,然后水流过它们。

对于这个项目,我必须以某种方式弄清楚以下内容(尽管她没有教过任何这个):

- 生成一个可旋转管道的网格(我假设一次鼠标点击将对象进行90度经典补间旋转)

- 生成某种逻辑命中框价值链,使管道决定何时填充水(例如,一旦它们连接到另一个充满水的管道,它们就会充满水(也就是将蓝色内部作为动画)

- 生成多个级别和菜单屏幕

- 添加了一首音乐曲目。

现在我知道这个网站仅供特定帮助,你基本上不能在整个项目上寻求帮助,所以现在如果有人可以帮我解决以下问题:

如何在鼠标点击上创建旋转管道?

所以我创建了我的管道动画片段并准备好了我的鼠标事件代码,但我对如何在管道中创建补间并将其连接到代码以使其在鼠标点击时旋转感到最微弱。

所以到目前为止,让我们说其中一个管道,实例pipe_1,我想这样做:

pipe_1.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler);

function fl_MouseClickHandler(event:MouseEvent):void
{
    trace("Mouse clicked");
}

我还在管道实例中创建了简单的旋转补间,但不知道如何将它连接到代码。

我应该弄清楚该功能的内容,但老实说我没有任何线索。几个小时的谷歌搜索都没有提供任何东西,除了一个12美元可购买的源代码更复杂的管道游戏。

我希望有人至少可以帮助一下,谢谢。

2 个答案:

答案 0 :(得分:1)

旋转剪辑的方法是通过它的rotation属性。它默认为0。

如果您将瓷砖的rotation属性设置为90,则可以将管道瓷砖旋转90度。

例如:

pipe_1.rotation += 90;

补间是一种随时间更改给定DisplayObject的属性的方法。所以你想做的是将你的旋转属性随时间推移90度。

以下是补间教程 - http://www.republicofcode.com/tutorials/flash/as3tweenclass/

我认为花些时间来学习它比让我只写几行代码来解决你的问题更有益。

StackOverflow是一个可以提出问题的地方,在您尝试过某些问题之后可以提出问题。

我为您提供了您需要做的基本概念,如果您花时间了解补间,您将能够相当简单地实现目标。

还有补间库,如TweenLite和TweenMax,可以简化补间。不确定您的班级是否允许您使用它们,但值得为自己的利益查看。

你可以在这里找到TweenLite: http://www.greensock.com/tweenlite/

答案 1 :(得分:0)

你是在谈论逐帧补间吗?或补间代码?

逐帧补间,您可以尝试这样做:

pipe_1.addEventListener(MouseEvent.CLICK, f1_MouseClickHandler);
function f1_MouseClickHandler(e:MouseEvent) {
   pipe_1.gotoAndPlay(2); //if the tween starts at frame 2
}

对于代码补间,只需调用该处理函数内的补间函数