- 浏览: 100544 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
chensong215:
无法获取到ProgressEvent中的bytesTotal
自定义DownloadProgressBar -
qq2464785999:
非常感谢。
测试后,发现要用相对路径的话,好像要这么写
va ...
Flex写XML文件
.
分类: Flex2010-08-29 21:221063人阅读评论(1)收藏举报
1. 总结目的
在地图中,通过鼠标或者由程序自动运行,让一个人物自动从地图的一点走到另一点。需要计算两点之间的最优路线,要实现这样的寻路算法。最常规和最简单的方法,使用A*算法。本篇总结不具体讲解A*算法的实现以及原理,主要告诉怎么用。后面的总结中我会陆续把A*算法进行详细分析,希望大家学习。
2. 开发流程
2.1. 地图加载
1)在寻路过程中,地图是被分为若干个小格子,当然,根据格子数量的不同,路线长度的不同,计算寻路的时间也就不同。
上面是有一个由20*20的地图拼起来的地图,每一个地图块是有20像素*20像素元件做成。
每一个地图块是2帧构成,地图帧是人物可以行走的路线,第二帧是障碍物(桌子)。上面的地图是路线和障碍物8比2的概率生成,参考代码:
Block 是地图块元件类。用Flash cs3 已经做好。
this.mass_x_count 是指地图X轴上板块数量
this.mass_y_count 是指地图Y轴上板块数量
distancex 是指地图X轴离边界Left的距离
distancey 是指地图Y轴离边界Top的距离
aNodeMap 是一个2维数组,记录着每一个地图块当前的状态,是障碍物还是路线。
地图初始化中,根据两个For循环嵌套,生成一个表格状的地图。这里我不在详细介绍,详细会AS3的一定可以看的懂。
2.2. 地图上移动人物加载
1)路线寻路肯定要有一个元件在地图上移动,才可以正确的显示出寻路的过程。无论是一个人物移动或多个人物移动,基本做法相同,下面我们就来加载一个人物物件到地图上来。
Waiter 是一个移动的任务元件。在这里我们叫“服务员元件”
Timer 是为服务员增加一个timer事件,主要目的是为了服务员从一个地图块移动到另一个地图块,不是跳过去的,而是慢慢的移动过去的。
此方法主要在加载完地图后调用,指定人物加载的X,Y坐标,进行加载。
2.3. 选择移动目的地
1)地图和服务员加载完成后,我们需要选择服务员移动的目的地,选择的方式有很多。举个例子,人人餐厅中客人进来就餐,首先进门后,程序会自动寻找有空位的X,Y坐标,然后计算路线,客人就会沿着路线走进去。同样服务员也会根据客人进来餐厅的循序,以及客人所做的座椅的坐标进行计算路线,然后走过去服务。
2)由于我们只是一个例子,所以就有我们鼠标确定目的地。
this.addEventListener(MouseEvent.CLICK,clickWay);
这个事件通过,用户鼠标点击地图上路线进行调用。
2.4. 路线寻找,人物移动
1)在地图增加完后我们增加一个A*算法实例
AStar是A*算法的一个封装类。我们需要把我们地图上路线和障碍物二维数组传递给算法。
这个是在地图加载后完成
2)确定移动目的地后计算路线
上面代码是在选择目的地后补充的代码
设置A*(asrar)算法的其实点和目的地。起始点和目的地封装成ANode对象给算法的。
ANode 是一个算法计算中节点的保存,记录着节点的位置X,Y,节点ID,以及使用曼哈顿方法计算F = G + H F、G、H值的保存。从而做为路线计算中开启列表进行存储。
最后会调用DoSearch 判断路线的获取是否成功。获取的路线调用astar.aPath 方法进行获取。
启动timer 进行服务员移动操作。
3)服务员移动
在移动服务之前,我们确定,我们寻找到路线,此服务员的上一个路线已经完成。
代码如下:
这个方法是在寻找到路线后,timer启动执行的。bMove 表示是否移动服务员。
player 代表当前移动中的服务员对象,他是在创建服务员的时候保存在全局变量中。
http://blog.csdn.net/liujia9234/article/details/5848325
分类: Flex2010-08-29 21:221063人阅读评论(1)收藏举报
1. 总结目的
在地图中,通过鼠标或者由程序自动运行,让一个人物自动从地图的一点走到另一点。需要计算两点之间的最优路线,要实现这样的寻路算法。最常规和最简单的方法,使用A*算法。本篇总结不具体讲解A*算法的实现以及原理,主要告诉怎么用。后面的总结中我会陆续把A*算法进行详细分析,希望大家学习。
2. 开发流程
2.1. 地图加载
1)在寻路过程中,地图是被分为若干个小格子,当然,根据格子数量的不同,路线长度的不同,计算寻路的时间也就不同。
上面是有一个由20*20的地图拼起来的地图,每一个地图块是有20像素*20像素元件做成。
每一个地图块是2帧构成,地图帧是人物可以行走的路线,第二帧是障碍物(桌子)。上面的地图是路线和障碍物8比2的概率生成,参考代码:
Block 是地图块元件类。用Flash cs3 已经做好。
this.mass_x_count 是指地图X轴上板块数量
this.mass_y_count 是指地图Y轴上板块数量
distancex 是指地图X轴离边界Left的距离
distancey 是指地图Y轴离边界Top的距离
aNodeMap 是一个2维数组,记录着每一个地图块当前的状态,是障碍物还是路线。
地图初始化中,根据两个For循环嵌套,生成一个表格状的地图。这里我不在详细介绍,详细会AS3的一定可以看的懂。
2.2. 地图上移动人物加载
1)路线寻路肯定要有一个元件在地图上移动,才可以正确的显示出寻路的过程。无论是一个人物移动或多个人物移动,基本做法相同,下面我们就来加载一个人物物件到地图上来。
Waiter 是一个移动的任务元件。在这里我们叫“服务员元件”
Timer 是为服务员增加一个timer事件,主要目的是为了服务员从一个地图块移动到另一个地图块,不是跳过去的,而是慢慢的移动过去的。
此方法主要在加载完地图后调用,指定人物加载的X,Y坐标,进行加载。
2.3. 选择移动目的地
1)地图和服务员加载完成后,我们需要选择服务员移动的目的地,选择的方式有很多。举个例子,人人餐厅中客人进来就餐,首先进门后,程序会自动寻找有空位的X,Y坐标,然后计算路线,客人就会沿着路线走进去。同样服务员也会根据客人进来餐厅的循序,以及客人所做的座椅的坐标进行计算路线,然后走过去服务。
2)由于我们只是一个例子,所以就有我们鼠标确定目的地。
this.addEventListener(MouseEvent.CLICK,clickWay);
这个事件通过,用户鼠标点击地图上路线进行调用。
2.4. 路线寻找,人物移动
1)在地图增加完后我们增加一个A*算法实例
AStar是A*算法的一个封装类。我们需要把我们地图上路线和障碍物二维数组传递给算法。
这个是在地图加载后完成
2)确定移动目的地后计算路线
上面代码是在选择目的地后补充的代码
设置A*(asrar)算法的其实点和目的地。起始点和目的地封装成ANode对象给算法的。
ANode 是一个算法计算中节点的保存,记录着节点的位置X,Y,节点ID,以及使用曼哈顿方法计算F = G + H F、G、H值的保存。从而做为路线计算中开启列表进行存储。
最后会调用DoSearch 判断路线的获取是否成功。获取的路线调用astar.aPath 方法进行获取。
启动timer 进行服务员移动操作。
3)服务员移动
在移动服务之前,我们确定,我们寻找到路线,此服务员的上一个路线已经完成。
代码如下:
这个方法是在寻找到路线后,timer启动执行的。bMove 表示是否移动服务员。
player 代表当前移动中的服务员对象,他是在创建服务员的时候保存在全局变量中。
http://blog.csdn.net/liujia9234/article/details/5848325
发表评论
-
flex 自定义多个命名空间以及标签名
2013-01-22 15:21 1337flex 自定义多个命名空 ... -
FLEX中使用AS动态创建DataGrid
2013-01-09 16:24 920FLEX中使用AS动态创建DataGrid 2010年2月6日 ... -
flex与flash之间相互调用
2012-12-12 12:39 630http://www.cnblogs.com/kaixuan/ ... -
Flex与Flex创建的swf通信
2012-12-12 10:16 734加载子SWF的Flex程序代码 <?xml vers ... -
[AS3]加载视频(FLV)文件
2012-12-06 15:11 865[AS3]加载视频(FLV)文件 分类: FLEX/CS3-- ... -
通过FileReference打开本地图片崩溃的解决方法
2012-12-06 14:02 720通过FileReference打开本地图片崩溃的解决方法 最近 ... -
使用FileReference的load()方法加载本地图片
2012-12-06 13:56 9381、要想使用FileReference的load()方法和da ... -
[AS3]Bitmap序列化(将BitmapData保存为原生Binary/ByteArray)
2012-12-06 13:48 762[AS3]Bitmap序列化(将BitmapData保存为原生 ... -
as3 画五角星算法
2012-12-05 16:49 2633as3 画五角星算法 阅读:10次 时间:2012-03- ... -
flex嵌入完整html
2012-11-29 11:18 815有时候我们需要在Flex应用中嵌入HTML代码,根据嵌入HTM ... -
flex4 textArea的htmlText属性
2012-11-29 11:13 3119它现在包含Text布局框架(Text Layout Frame ... -
Tooltip应用
2012-11-29 11:11 733创建ToolTip: var errorToolTip:To ... -
数据绑定显示问题
2012-10-27 12:11 683数据绑定实时变化。 XMLListCollection 可以变 ... -
待解决问题
2012-09-18 23:48 7251.仪表盘 2.渐变填充的使用 3.发光效果的完美运用 能在一 ... -
as3加载外部图片的两种方式
2012-09-09 11:46 1049package net.burchin.loading { ... -
公式as3
2012-09-06 18:13 0as3 1人收藏此文章, 我要收藏 发表于1年前(2011-0 ... -
Flex中多线程的实现
2012-09-06 10:49 3524破阵子_如是我闻 如是我闻。一时佛在舍卫国,祗树给孤独园.. ... -
自定义column renderer
2012-08-09 15:07 966<?xml version="1.0" ... -
drowshadowFilter
2012-08-09 15:05 679DropShadowFilter 类,在Flash中为各种对象 ... -
123123
2012-08-08 17:16 0http://www.oschina.net/code/sni ...
相关推荐
Flex是一种基于开放源代码的、用于构建富互联网应用(RIA)的开发框架,而AS3是Flash平台上广泛使用的编程语言,尤其适合创建互动性和图形丰富的Web内容。 1. **地图加载**:地图是游戏的基础,地图加载涉及将地图...
在本实例中,"Flex3实现的谷歌地图实例" 是一个利用Flex3框架来展示谷歌地图的应用。开发者通过学习并实践网上的GoogleMap教程,创建了这个项目,以便于理解和掌握如何在Flex环境中集成和操作谷歌地图API。 首先,...
在这个"flex 百度地图 实例下载"项目中,我们可以通过提供的压缩包文件"BaiduMap"来学习和实践如何在Flex中集成和使用百度地图API。以下是一些核心知识点: 1. **Flex基础知识**:首先,你需要了解Flex的基本架构,...
在给定的标题“hww.rar_flash_flash as3_flash小游戏_flex_game as3”中,我们可以看出这个压缩包包含了与Flash AS3相关的资源,特别是关于一个小游戏的源代码。ActionScript 3.0是Flash Player支持的编程版本,它...
Flash AS 3,即ActionScript 3,是Adobe Flash Professional用于创建动态内容的主要编程语言,而这个项目显然利用了AS 3来实现3D视觉效果。 Flash 3D翻转是一种通过编程实现的动画效果,它允许用户从不同角度查看二...
在IT领域,FLEX、AS3(ActionScript 3.0)和FLASH是构建富互联网应用程序(RIA,Rich Internet Applications)的重要技术。本主题主要关注如何在FLEX项目中使用AS3来与FLASH动画进行交互。 FLEX是一个开源的开发...
在Flex AS3开发中,创建虚线效果是常见的需求,特别是在UI设计中,虚线常用于表示分隔、选中状态或非连续路径等。本文将深入探讨如何在Flex AS3环境中实现虚线效果。 首先,我们需要理解AS3(ActionScript 3)是...
### Flex4.6与AS3知识点详解 #### 一、Flex4.6简介与特性 **Flex4.6**作为一款强大的开源框架,主要用于构建跨平台的企业级应用程序、网页游戏、桌面应用及移动应用等。它基于ActionScript 3 (AS3) 开发,为开发者...
flex flash game 游戏 demo 45度游戏demo flex flash game 游戏 demo 45度游戏demo flex flash game 游戏 demo 45度游戏demo
在Flex AS3应用程序开发中,遮罩(Masking)是一种重要的图形处理技术,它允许开发者隐藏或显示特定的显示对象区域。遮罩可以用于创建复杂的交互式用户界面元素,如弹出窗口、动画效果和自定义组件。在这个“flex as...
AS3.0是Adobe Flex和Flash Player的主要编程语言,它基于ECMAScript,提供了强大的面向对象特性。在AS3.0中实现A星寻路工程,你需要理解以下几个核心概念: 1. **节点网格**:首先,你需要将地图抽象为二维网格,每...
在开发Flex RPG(角色扮演游戏)网页游戏时,寻路算法是一项关键的技术,它决定了游戏中的非玩家角色(NPCs)和玩家如何智能地在游戏世界中移动。在AS(ActionScript)环境中,寻路算法是构建游戏逻辑的重要部分。...
根据提供的文件信息,我们可以归纳出以下几个关键知识点,这些知识点主要围绕Flash AS3(ActionScript 3)技术文档展开,涉及到了基本的对象操作、事件监听器的添加与使用、以及对象属性的变化等方面。 ### 1. 创建...
Flex Component Kit for Flash CS3 是一个专门为Adobe Flash CS3设计的插件,它极大地扩展了Flash开发工具的功能,使得开发者可以更加便捷地在Flex项目中重用和集成由Flash创建的组件。Flex是一种开放源代码的框架,...
3. 创建AGSLayer对象:根据天地图的WMS或WMTS服务URL创建AGSLayer实例。 4. 添加图层:将AGSLayer对象添加到Map对象中。 5. 设置图层属性:可选地,调整图层的透明度、可见性等属性。 6. 监听地图事件:注册事件监听...
flex as3 园 线flex as3 园 线flex as3 园 线flex as3 园 线flex as3 园 线flex as3 园 线flex as3 园 线flex as3 园 线flex as3 园 线flex as3 园 线flex as3 园 线flex as3 园 线flex as3 园 线flex as3 园 线
在Flash AS3开发中,有时我们需要对音量进行精细控制,特别是在制作交互式的课件或者游戏时。本实例主要讲解如何通过ActionScript实现音量的控制。以下是对该代码实例的详细解读: 首先,我们导入了必要的类: ```...
标题中的“Flash Flex AS3反编译工具”指的是用于解析和逆向工程Adobe Flex应用程序的软件工具。在AS3(ActionScript 3)时代,Flex是开发富互联网应用(RIA)的一个流行框架,它允许开发者使用MXML和AS3代码创建...
Flex教程系列之(一) AS3语法——编程基础 http://download.csdn.net/source/1161756 Flex教程系列之(二) AS3语法——流程控制语句 http://download.csdn.net/source/1161804 Flex教程系列之(三) AS3语法——控制...