文档类
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
/**
* ...
* @author zkl
*/
public class Rotate extends Sprite {
private var balls:Array;
private var numBalls:Number = 10;
private var radius:Number = 100;
private var colors:Array=[0xFF0000,0x00FF00,0x0000FF,0x33CC00,0x9900FF,0xCC6600]
public function Rotate(){
init();
}
private function init():void {
//弧度(360 / numBalls * Math.PI / 180)
var an:Number = 2 / numBalls * Math.PI;
balls = new Array;
for (var i:int = 0; i < numBalls; i++){
var ball:Ball = new Ball(20,colors[int(Math.random()*numBalls)]);
balls.push(ball);
addChild(ball);
//以中心为圆心,排列
ball.x = Math.cos(an * i) * radius + stage.stageWidth / 2;
ball.y = Math.sin(an * i) * radius + stage.stageHeight / 2;
ball.addEventListener(MouseEvent.MOUSE_OVER, mouseHandler);
}
addEventListener(Event.ENTER_FRAME, enterFrame);
}
private function enterFrame(e:Event):void {
var angle:Number = (mouseX - stage.stageWidth / 2) * .001;
var cos:Number = Math.cos(angle);
var sin:Number = Math.sin(angle);
for (var i:int = 0; i < numBalls; i++){
var ball:Ball = balls[i];
var x1:Number = ball.x - stage.stageWidth / 2;
var y1:Number = ball.y - stage.stageHeight / 2;
var x2:Number = cos * x1 - sin * y1;
var y2:Number = cos * y1 + sin * x1;
ball.x = stage.stageWidth / 2 + x2;
ball.y = stage.stageHeight / 2 + y2;
}
}
private function mouseHandler(e:MouseEvent):void {
switch (e.type){
case MouseEvent.MOUSE_OVER:
removeEventListener(Event.ENTER_FRAME, enterFrame);
e.target.addEventListener(MouseEvent.MOUSE_OUT, mouseHandler);
break;
case MouseEvent.MOUSE_OUT:
addEventListener(Event.ENTER_FRAME, enterFrame);
e.target.removeEventListener(MouseEvent.MOUSE_OUT, mouseHandler);
break;
}
}
}
}
分享到:
相关推荐
1 草图大师动态组件之:
本教程将基于提供的“Unity鼠标,触屏控制物体旋转缩放(鼠标和触屏通用).zip”资源,详细解释如何通过鼠标和触屏实现这一功能,并探讨ChinarSmoothUi3DCamera.cs脚本的关键知识点。 首先,ChinarSmoothUi3DCamera...
学习virtools,鼠标控制物体旋转一个案例,分不多,可以看看
**多物体旋转** 若要使多个物体同时旋转,我们需要为每个物体创建独立的 RotateTransform 对象,并在Timer事件中更新各自的角度。可以通过数组或集合来管理这些对象,然后在事件处理程序中迭代它们,逐个更新角度。 ...
总的来说,"unity3d5.1物体椭圆旋转选择界面实现"涉及到Unity3D的物体旋转、用户输入处理、几何计算、缓动函数的应用以及UI交互等多个知识点。通过熟练掌握这些技术,开发者能够创建出更富有交互性和吸引力的游戏或...
Unity3D教程:物体旋转和缩放的简单demo1 这篇教程主要讲解了Unity3D中物体旋转和缩放的简单实现方法,通过使用RotateAround函数和Input.GetAxis函数来实现手势控制物体的旋转,并使用localScale和摄像机的缩放来...
在源码中,可能会有多个glRotatef()调用来实现对不同物体的独立旋转。茶壶在OpenGL中是一个经典的测试对象,通常被用来验证渲染环境是否设置正确。茶壶的模型可能已经预定义为一系列顶点和面,然后在渲染循环中被...
在实现物体旋转和平移时,我们通常会用到一系列的矩阵操作。OpenGL提供了如glRotatef()和glTranslatef()这样的函数,它们允许我们应用旋转和翻译变换。glRotatef()接受四个参数:旋转角度、绕X轴的旋转因子、绕Y轴的...
5. **代码结构**:项目中的代码可能包含一个或多个C#脚本,每个脚本负责特定的功能,如手势识别、物体旋转和缩放逻辑。良好的代码组织可以提高可读性和可维护性。 6. **移动优化**:在移动平台上,性能优化尤为重要...
Unity3D实现物体旋转缩放移动效果 Unity3D是一个功能强大且广泛使用的游戏引擎,它提供了大量的功能和工具来帮助开发者实现游戏和交互式应用程序。 Unity3D实现物体旋转缩放移动效果是Unity3D中一个重要的功能,它...
在Unity3D游戏开发中,物体的旋转和缩放是两个基本且重要的操作,它们能够为游戏场景增加交互性和动态性。这篇教程将探讨如何使用Unity3D的脚本来实现这两种功能。 首先,我们来看物体的旋转。Unity3D提供了多种...
在这个项目中,我们将探讨如何使用OpenGL在Visual Studio 2008环境下实现三维物体的旋转和缩放功能,同时读取存储在TXT文件中的点云数据。 首先,我们需要设置开发环境。在Visual Studio 2008中,创建一个新的MFC...
在本文中,我们将深入探讨如何使用Qt界面软件来控制Unity中的物体旋转和移动。这个过程涉及到两个主要技术:Qt和Unity,以及它们之间的TCP网络通信。首先,让我们逐一解析这些关键概念。 **Qt** 是一个跨平台的应用...
unity C#以物体为中心旋转相机 c#代码
本主题将深入探讨如何使用CSS3实现三个物体同时旋转,并且在旋转过程中还能保持各自的自转效果。 首先,我们需要理解CSS3中的3D变换基础。3D变换主要通过`transform`属性来实现,它包含了一系列子属性,如`rotateX`...
通过学习和分析这些代码,你可以更深入地理解Qt 3D中物体旋转的工作原理,以及如何通过QML来控制它们。 在实际开发中,你还可以利用`Animation`组件来创建动态旋转效果,例如让物体以特定速度持续旋转。这可以通过...
在Unity引擎中,实现按住鼠标左键拖动来旋转Camera观察物体是一项常见的交互功能,尤其在3D游戏和应用中。这个功能让玩家或用户能够自由调整视角,更好地观察和操控场景。以下是对该功能的详细解释: 一、Camera...
在这个项目中,我们将探讨如何使用OpenGL和C++来实现带有光照效果的三维物体,并允许用户通过键盘进行旋转交互。 首先,我们要理解OpenGL中的光照模型。OpenGL提供了几种内置光源类型,包括点光源、方向光和聚光灯...
在Unity3D游戏引擎中,实现“点击物体飞出”并使用鼠标进行“放大缩小、任意角度旋转”的功能,涉及到多个关键知识点。首先,我们需要理解Unity的基础操作,如场景构建、对象交互以及脚本编程。以下是对这些知识点的...
综上所述,实现“OpenGL实现鼠标点选并旋转物体”涉及多个步骤,包括鼠标事件处理、坐标转换、物体选择、轨迹球算法以及矩阵操作。通过理解和实践这些概念,可以创建具有高度交互性的3D图形应用程序。