`
china34420
  • 浏览: 136430 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

拖动弹跳效果

阅读更多
拖动弹跳效果:
package 
{
	import flash.display.Sprite;
	import flash.events.MouseEvent;
	import flash.events.Event;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	
	/**
	 * ...
	 * @author zkl
	 */
	public class dragAndMove1 extends Sprite
	{
		private var ball:Ball;
		private var vx:Number = 0;
		private var vy:Number = 0;
		private var bounce:Number = -0.7;
		private var gravity:Number = 0.5;
		
		private var oldX:Number;
		private var oldY:Number;
		
		public function dragAndMove1():void
		{
			init();
		}
		
		private function init():void
		{
			stage.align = StageAlign.LEFT;
			stage.scaleMode = StageScaleMode.NO_SCALE;
			ball = new Ball;
			addChild(ball);
			ball.x = stage.stageWidth / 2;
			ball.y = stage.stageHeight / 2;
			vx = Math.random() * 10 - 5;
			vy = -10;
			addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
			addEventListener(Event.ENTER_FRAME, onEnterFrame);
		}
		
		private function onEnterFrame(e:Event):void
		{
			vy += gravity;
			ball.x += vx;
			ball.y += vy;
			var left:Number = 0;
			var right:Number = stage.stageWidth;
			var top:Number = 0;
			var bottom:Number = stage.stageHeight;
			if (ball.x + ball.radius > right) {
				ball.x = right - ball.radius;
				vx *= bounce;
			}else if (ball.x - ball.radius < left) {
				ball.x = left + ball.radius;
				vx *= bounce;
			}
			if (ball.y + ball.radius > bottom) {
				ball.y = bottom - ball.radius;
				vy *= bounce;
			}else if(ball.y - ball.radius < top) {
				ball.y = top + ball.radius;
				vy *= bounce;
			}
		}
		
		private function onMouseDown(e:MouseEvent):void
		{
			oldX = ball.x;
			oldY = ball.y;
			
		    stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
			ball.startDrag();
			removeEventListener(Event.ENTER_FRAME, onEnterFrame);
			
			addEventListener(Event.ENTER_FRAME, trackVelocity);
		}
		
		private function trackVelocity(e:Event):void
		{
			vx = ball.x - oldX;
			vy = ball.y - oldY;
			oldX = ball.x;
			oldY = ball.y;
		}
		
		private function onMouseUp(e:MouseEvent):void
		{
		    stage.removeEventListener(MouseEvent.MOUSE_UP, onMouseUp);
			ball.stopDrag();
			addEventListener(Event.ENTER_FRAME, onEnterFrame);
			
			removeEventListener(Event.ENTER_FRAME, trackVelocity);
		}
		
	}
	
}
分享到:
评论

相关推荐

    delphi 图片拖动和弹跳

    在Delphi编程环境中,实现图片拖动和弹跳效果是一项常见的需求,特别是在开发用户界面时。这个主题主要涉及两个核心概念:鼠标事件处理和动画效果的实现。下面将详细讲解如何在Delphi中创建这样的功能。 首先,我们...

    弹性小球弹跳效果制作PPT教程.rar

    在本教程中,我们将深入探讨如何使用Microsoft PowerPoint创建一个具有逼真弹性小球弹跳效果的演示文稿。这个教程适合初学者,旨在帮助那些希望提升PPT制作技能的用户,让他们能够为自己的演示文稿增添生动有趣的...

    swift-JQStickersView:仿摩拜单车我的贴纸摩拜单车贴纸弹跳效果

    "swift-JQStickersView:仿摩拜单车我的贴纸摩拜单车贴纸弹跳效果"是一个开源项目,旨在模仿摩拜单车应用中的个性化贴纸功能,特别是其独特的贴纸弹跳动画。这个项目,即JQStickersView,是专门为iOS开发者设计的,它...

    Javascript实现重力弹跳拖拽运动效果示例

    在探讨Javascript实现的重力弹跳拖拽运动效果示例中,我们将详细介绍这个效果如何通过JavaScript来实现。重力弹跳拖拽效果是指在网页上创建一个元素,它可以像在现实中具有重力和弹性一样,当用户拖拽后释放时,该...

    Unity仿QQ未读消息气泡拖拽黏连效果

    在“黏连效果”中,粒子系统可能被用来创建拖拽时气泡尾部的动态效果,使拖动看起来更自然。 3. **脚本编程**:C#是Unity的主要编程语言,编写脚本是控制游戏对象行为的关键。在本案例中,你需要编写脚本来处理用户...

    少儿scratch编程项目源代码文件案例素材-弹跳游戏.zip

    而弹跳效果可能通过“碰到边缘就反弹”实现,这是碰撞检测的一种应用。 4. **条件语句**:游戏中的逻辑判断非常重要,例如,“如果角色碰到障碍物,则游戏结束”。 5. **计时器和循环**:游戏的进程可能由计时器...

    仿抖音个人中心,下拉放大缩小效果

    `Scroller`可以提供基于物理特性的滚动动画,而`SpringForce`是AndroidX动画库中的一个新工具,它可以模拟弹簧的弹跳效果,使动画更具真实感。根据项目需求,可以选择适合的工具来实现弹性回弹的动画效果。 为了...

    HTML5 Canvas鼠标拖动方块弹性动画特效

    这款"HTML5 Canvas鼠标拖动方块弹性动画特效"利用了Canvas的API,结合鼠标事件,实现了用户可以交互地拖动方块,并观察到方块在释放后有如糖果或果冻般的弹跳效果。 首先,我们要理解Canvas的基本结构。在HTML中,`...

    android撒花效果、类微信下落效果

    6. **触控事件**:为了提高用户体验,可以添加触摸事件监听器,让用户可以拖动气泡查看完整内容,或者长按删除。 三、物品下落动画 物品下落动画通常涉及一个物体从屏幕上方掉落到下方,可以应用于各种场景,如游戏...

    弹出层的9中酷酷的效果

    7. **弹跳效果**:弹出层在出现时具有轻微的弹跳感,这需要CSS的`animation`属性配合关键帧(@keyframes)来定义动画过程。 8. **平移效果**:弹出层从页面的一个位置移动到另一个位置,可以使用CSS的`translate3d...

    android-Overscroll-ListView:适用于android的具有'Bounce'效果的'Overscrollable'ListView! 弹跳效果可以关闭

    适用于android的具有'Bounce'效果的'Overscrollable'ListView! 用法: 可以使用listview.setBounce(true / false)打开/关闭反弹效果。 动画延迟可以通过延迟变量(以毫秒为单位)进行设置。 默认值=10。值越大...

    可以拖动的弹性小球

    例如,可以使用`ObjectAnimator.ofFloat()`方法创建一个基于属性的动画,动画的目标是小球的位置和缩放比例,以模拟弹跳效果。同时,还可以通过设置动画的时间插值器,如`BounceInterpolator`,来增加动画的真实感。...

    jQuery10种不同的水球效果

    结合`.animate()`和物理运动规律,可以制作出逼真的弹跳效果。 6. **涟漪扩散**:当水球被触碰时,可以创建一圈圈向外扩散的涟漪。这可以通过改变元素的半径和透明度来实现,结合时间函数,使得涟漪逐渐消失。 7. ...

    贝塞尔曲线动画效果

    控制点可以调整小球的初始速度、弹跳高度以及缓震效果,使得动画既符合物理规律又具有趣味性。 在"CustomizeView-master"这个压缩包中,很可能包含了实现这些效果的相关代码和示例。开发者可以通过研究这些代码,...

    弹跳球音乐版1v2-少儿编程scratch项目源代码文件案例素材.zip

    Scratch是由麻省理工学院(MIT)的“终身幼儿园团队”开发的一款面向儿童的编程工具,旨在通过拖拽积木式的编程语块,让孩子们在玩耍中学习编程概念。 在这个项目中,"弹跳球音乐版1v2.sb2"是核心文件,它包含了...

    可拖拽、弹性缓冲的弹出窗口代码,妙味课堂出品.rar

    妙味课堂弹性跳动的JS弹出窗口代码,用来显示网站公告、广告相当好的选择,另外我认为弹出窗口做的也挺不错,特别是弹跳缓冲效果很流畅。研究一下吧,可以从代码中了解到物体运动速度的计算,最大速度的获得,初始化...

    可拖拽View,仿墨迹天气城市管理.zip

    还可以通过添加动画来提升用户体验,例如拖动时的平滑过渡和放置时的弹跳效果。 在实际开发中,考虑到性能和用户体验,我们需要优化拖放操作,避免不必要的重绘和计算。例如,只在必要的时候更新UI,或者使用...

    多种JS弹窗效果

    7. **关闭按钮和拖拽功能(Close Button & Draggable)**:为了方便用户,弹窗通常包含一个关闭按钮,并且可以添加拖拽功能,让用户自由调整弹窗位置。这需要监听鼠标事件并处理相应逻辑。 8. **自定义事件触发...

    jquery插件库-jquery弹出层 三种弹出效果.zip

    - **弹跳效果**:这种效果更富动态感,弹出层在出现或消失时有轻微的弹跳动作。这可能涉及到自定义动画函数,调整元素的大小和位置,模拟物理世界的弹性运动。例如,使用`animate()`方法并配合 easing 函数(如`...

Global site tag (gtag.js) - Google Analytics