- 浏览: 1095675 次
- 性别:
- 来自: 杭州
-
文章分类
- 全部博客 (695)
- 心情日记 (14)
- AS开发工具 (12)
- 文章转载 (99)
- AIR (5)
- 问题总结 (46)
- SWF格式 (7)
- 测试总结 (10)
- 外文资料 (9)
- 算法技术 (33)
- AS3常用开源库 (43)
- 源码范例 (102)
- FLEX (72)
- FLASH 优化 (33)
- 游戏开发 (49)
- 开发技术 (11)
- 工作应用 (34)
- AS3收集 (140)
- WebBase (0)
- 开发构想 (4)
- 设计模式 (2)
- 框架和框架范例 (19)
- RED5 (3)
- java开发 (3)
- JAVA (1)
- FLASH-3D (23)
- 3D (6)
- 书籍 (10)
- 业界信息资料 (3)
- C# (1)
- JavaScript (12)
- HTML5 (6)
- Flixel (1)
- D5Power RPG网页游戏引擎 (0)
- ColorMatrixFilter - 获得相应颜色的色调 函数 (0)
- Starling (0)
最新评论
-
老顽童203:
字体
水果忍者鼠标跟随特效制作[转载] -
hairball00:
[转] 放出超多的Flash组件源代码 -
he74552775:
flash AS3 RegExp简单功能用法(转) -
hanshuai1232000:
第四点,有利也有弊,等你做了大型的aprg,你就知道了
[转]位图数据内存优化 -
yangfantao:
太感谢
[转] 放出超多的Flash组件源代码
不久之前,我介绍了通过ACTIVATE和DEACTIVATE事件侦测焦点暂停Flash游戏或动画。
在使用Timer事件来驱动Flash游戏或者动画时,这个方法出现了意料之外的问题。
尽管你会认为,我只想需要停止和重新启动timer计时,然后重置内部计时器就可以了。
假如有一个timer事件每秒钟触发一次,如果暂停游戏,然后在小于1秒的时间内容恢复又暂停游戏,那么这个timer事件将无法再次被触发。
解决方法可以这样做,首先记录timer事件上一次触发到Flash暂停之间的时间差lapTime,用户恢复timer事件时,将timer的delay设置为普通计时器的delay与这个时间差lapTime之间的差值。
下面的代码可以说明“普通计时器”与“精确计时器”的差别:
在使用Timer事件来驱动Flash游戏或者动画时,这个方法出现了意料之外的问题。
尽管你会认为,我只想需要停止和重新启动timer计时,然后重置内部计时器就可以了。
假如有一个timer事件每秒钟触发一次,如果暂停游戏,然后在小于1秒的时间内容恢复又暂停游戏,那么这个timer事件将无法再次被触发。
解决方法可以这样做,首先记录timer事件上一次触发到Flash暂停之间的时间差lapTime,用户恢复timer事件时,将timer的delay设置为普通计时器的delay与这个时间差lapTime之间的差值。
下面的代码可以说明“普通计时器”与“精确计时器”的差别:
package { import flash.display.Sprite; import flash.utils.Timer; import flash.utils.getTimer; import flash.events.TimerEvent; import flash.text.TextField; import flash.text.TextFormat; import flash.events.Event; import flash.text.TextFieldAutoSize; public class pauseTimer extends Sprite { // the interval between two ticks, in milliseconds private var interval:int=1000; // the "normal" timer private var normalTimer:Timer; // the "smart" timer private var smartTimer:Timer; // just some text field related variables private var normalTimerText:TextField = new TextField(); private var smartTimerText:TextField = new TextField(); private var normalTextFormat:TextFormat = new TextFormat(); private var smartTextFormat:TextFormat = new TextFormat(); // the "movie paused" screen private var pausedScreen:pausedMc=new pausedMc(); // variables used to handle the smart timer private var lapTime:Number=0; private var currentTimer:Number=0; public function pauseTimer() { // nothing interesting, only some layout settings normalTextFormat.size=24; normalTextFormat.color=0xA90000; smartTextFormat.size=24; smartTextFormat.color=0x00A900; addChild(normalTimerText); normalTimerText.autoSize=TextFieldAutoSize.LEFT; addChild(smartTimerText); smartTimerText.autoSize=TextFieldAutoSize.LEFT; addChild(pausedScreen); smartTimerText.y=50; // timer initialization normalTimer=new Timer(interval); smartTimer=new Timer(interval); // timer listeners normalTimer.addEventListener(TimerEvent.TIMER, showNormalTime); smartTimer.addEventListener(TimerEvent.TIMER, showSmartTime); // activate/deactivate listeners addEventListener(Event.ACTIVATE,onActivate); addEventListener(Event.DEACTIVATE,onDeactivate); } private function showNormalTime(e:TimerEvent):void { // just showing the number of ticks normalTimerText.text="Normal counter: "+normalTimer.currentCount+" ticks counted"; normalTimerText.setTextFormat(normalTextFormat); } private function showSmartTime(e:TimerEvent):void { // set the delay to "interval" value if it has a different value (it will happen) if (smartTimer.delay!=interval) { smartTimer.delay=interval; } // saving the current timer currentTimer=getTimer(); smartTimerText.text="Smart counter: "+smartTimer.currentCount+" ticks counted"; smartTimerText.setTextFormat(smartTextFormat); } private function onActivate(e:Event):void { pausedScreen.visible=false; // smart timer delay management if (smartTimer.delay-lapTime>0) { smartTimer.delay=smartTimer.delay-lapTime; } // saving the curren time currentTimer=getTimer(); // starting the timers normalTimer.start(); smartTimer.start(); } private function onDeactivate(e:Event):void { pausedScreen.visible=true; // stopping the timers normalTimer.stop(); smartTimer.stop(); // determining how much time has passed since the last tick lapTime=(getTimer()-currentTimer); smartTimerText.text="Smart counter: "+smartTimer.currentCount+" ticks counted and "+(smartTimer.delay-lapTime)+"ms to next tick"; smartTimerText.setTextFormat(smartTextFormat); } } }
发表评论
-
HttpStatusConfig --一个HTTP 协议返回的 解析说明类
2012-04-18 16:40 0package guwanyuan.qicool.game ... -
水果忍者鼠标跟随特效制作[转载]
2012-03-01 16:06 2481实现这效果其实比较简单,主要是思路~! package ... -
江湖情缘游戏里的跳的类
2012-02-08 23:55 0package com.app.role.montions ... -
ColorMatrixFilter - 获得相应颜色的色调 函数
2012-02-08 23:03 0/**获得相应颜色的色调的滤镜**/ public sta ... -
ARPG游戏引擎设计思路
2011-12-31 00:48 00.整体结构 下载 (32.92 KB ... -
五子棋算法详解
2011-10-31 04:14 0五子棋算法详解五子棋算法详解五子棋算法详解 -
[原创]围绕任意一个中心点旋转
2011-10-23 13:46 0package guwanyuan.qicool.game.c ... -
珍宝探索 AS3-过关类小游戏
2011-10-13 02:15 0珍宝探索 AS3-过关类小游戏 -
(RepeaterOverTimeLine能将一个for循环执行的工作类似异步地平摊到多个帧上)RepeaterOverTimeLine
2011-09-30 02:26 0(RepeaterOverTimeLine能将一个for循环执 ... -
box2dttest(台球demo,使用了box2d)
2011-09-21 01:49 0box2dttest(台球demo,使用了box2d) -
贪吃蛇游戏
2011-09-16 02:40 0package com { /** ... -
打豆豆
2011-09-08 00:34 0打豆豆打豆豆 -
经典代码-空战.zip (513.2 KB)
2011-09-02 02:24 0经典代码-空战.zip (513.2 KB) -
基于TextField的图文混编的组件
2011-09-01 23:04 0基于TextField的图文混编的组件 -
泡泡龙
2011-08-29 22:36 0泡泡龙泡泡龙泡泡龙 -
井字棋算法
2011-08-18 15:04 0井字棋算法井字棋算法 -
_超级玛丽游戏_flash_game_demo
2011-08-18 00:01 0_超级玛丽游戏_flash_game_demo.zip -
吴万江-TD_demo
2011-08-15 15:35 0吴万江-TD_demo -
S_eVent系列教程
2011-08-13 05:01 0S_eVent系列教程S_eVent系列教程 -
[转][翻译]LoaderMax使用指导(一)
2011-08-10 19:51 1924http://hi.baidu.com/mr_ziqiang/ ...
相关推荐
总的来说,通过分析这个"蜗牛赛跑"的源码,我们可以学习到ActionScript 3.0的基本语法、事件处理、游戏逻辑设计、图形动画、状态管理和音频处理等多个方面的知识,这对于想要深入理解Flash游戏开发的初学者来说是一...
通过深入研究这份《Flash制作的坦克大战源码》,开发者不仅可以学习到ActionScript的基本语法和面向对象编程的概念,还能了解到游戏开发中的逻辑设计、事件驱动编程、图形绘制和动画制作等多个方面的知识。...
在《别踩黑块》游戏中,开发者利用AS3.0的事件驱动编程模型,实现了对用户输入的实时响应,确保游戏的流畅性。 游戏的核心逻辑主要涉及以下几个方面: 1. **图形渲染**:Flash CS6提供了强大的图形绘制API,开发者...
7. **状态管理**:为了实现游戏逻辑,如生命值、分数、游戏状态(如开始、暂停、结束),开发者通常会使用状态机模式,定义不同的游戏状态,并根据事件来切换状态。 8. **用户输入处理**:除了鼠标控制外,游戏可能...
在AS3中,我们可以使用事件驱动模型来处理用户的输入和游戏的更新。例如,当僵尸触碰到植物时,会触发一个碰撞事件,进而执行相应的游戏逻辑,如减少生命值或消灭僵尸。 在模拟PVZ的植物系统时,我们需要定义各种...
在IT行业中,Flash是一款曾经广泛应用于网页动画和交互设计的软件,它的编程语言ActionScript是其核心组成部分。本文将深入探讨“Flash倒计时器”的源码,包括两个不同的版本,以及如何根据需求进行定制。 首先,让...
Flash提供了丰富的动画和交互性,VB可以通过调用Flash控件的方法来控制动画播放、暂停、停止等。 5. **界面设计**:在VB中,良好的界面设计包括选择合适的控件(如按钮、文本框、图片框等)、布局管理(如使用...
MFС支持通过消息机制来驱动动画,开发者可以通过定时器类(如Ctimer)来设置周期性事件,进而更新动画的状态。此外,MFС也支持事件驱动的编程模型,这意味着用户交互,如点击按钮,可以触发特定的动画序列。 关于...
在Flex中,可以使用Timer或ENTER_FRAME事件来驱动游戏循环。 - **碰撞检测**:检测游戏对象间的碰撞是游戏逻辑的重要部分。可以使用矩形碰撞检测、像素级碰撞检测等方法。 - **物理引擎**:对于复杂的运动模拟,...
在这个案例中,我们将利用VB创建一个简单的Flash动画播放器,该播放器具备播放、暂停、调整播放质量、改变画面大小等功能。 **一、准备工作** 在制作Flash动画播放器之前,我们需要确保系统中安装了Flash的相关控件...
在Delphi中实现图片Flash功能,主要是通过编程技术来创建一个动态展示图片的程序,让图片按照特定的方式进行动画播放,类似于我们常见的Flash动画效果。这个过程涉及到的主要知识点包括图像处理、时间控制、用户界面...
通过学习和实践这个Flash ActionScript图片播放器1的实例,开发者不仅可以掌握基本的图片处理技巧,还能深入了解ActionScript的事件驱动模型和面向对象编程思想,对提升Flash应用的开发能力大有裨益。同时,对于AS ...
2. **倒计时**:在在线考试、拍卖网站或计时器应用中,倒计时功能由定时器驱动。 3. **游戏循环**:游戏中的每一帧更新、计分系统或角色移动都可能依赖于定时器。 4. **数据同步**:后台服务可能会用定时器来定期...
这种结合使得内容更新变得极其简单,因为XML文件可以独立于Flash动画进行编辑,无需每次更新内容时都重新编译整个Flash项目。 在“Flash+XML滚动新闻代码”中,通常的流程如下: 1. **XML文件结构**:首先,我们...
总之,AS3.0滚动菜单是Flash开发中一个实用且有趣的案例,它结合了面向对象编程、事件驱动和动画技术,展示了如何在Flash平台上创建互动性强、用户体验良好的界面元素。对于希望提升Flash开发技能或了解AS3.0的人来...
1. **Timeline控制**:Flash的时间轴可以用来控制动画的播放,通过ActionScript可以暂停、播放、跳转到特定帧。 2. **文本字段**:ActionScript提供了TextField类,用于在舞台上创建和操作文本。开发者可能用它来...
首先,我们需要了解ActionScript,它是一种面向对象的编程语言,主要用于Adobe Flash平台,广泛应用于网页动画和游戏开发。AS的优点在于其强大的图形处理能力和与Flash Player的紧密集成,这使得它在创建交互式内容...
例如,可以监听`Timer`事件来控制滚动速度,或者监听`MouseEvent`来暂停或改变滚动方向。 7. **代码实现**: 创建一个`Timer`对象来定期更新文本,每次更新时移动文本的起始位置,使旧文本消失,新文本出现。例如...
ActionScript 3.0 是Adobe Flash Platform的主要编程语言,用于创建交互式内容、游戏和动画。在本文中,我们将深入探讨如何使用ActionScript 3.0来实现一个本地播放器。 1. **ActionScript 3.0基础** 在开始开发...
- 对于实时性要求极高的场景,可能需要用到消息队列(MQ)或者事件驱动架构来确保及时性。 8. **压缩包文件分析**: - 给定的压缩包文件名为“倒计时”,可能包含的是一个用于实现倒计时功能的代码示例、模板或者...