- 浏览: 727066 次
- 性别:
- 来自: 深圳
-
文章分类
- 全部博客 (389)
- flex (150)
- java (55)
- flex_sharedObject (4)
- iphone/android (7)
- red5 (4)
- blazeds (19)
- ajax (3)
- flex&java (9)
- 聊天室 (2)
- flex的问题 (1)
- game (8)
- flex_xml (1)
- flex组件学习 (2)
- JGroups (1)
- 中转站 (2)
- ruby (7)
- flex_js (5)
- C/C++ (14)
- perl (2)
- db (13)
- air (10)
- hibernate (8)
- flash_flex_as_3d (2)
- struts (4)
- dwr (8)
- freemarker (2)
- AS (22)
- 工具 (6)
- js_jquery_ext_yui (4)
- .net (1)
- C# (1)
- 前端 (1)
最新评论
-
136900923:
您好,您的代码我不是很懂,我想跟您交流一下,我的qq邮箱:13 ...
hibernate做无限极菜单树如此简单 -
fykyx521:
两个同一个功能
flex_flush_Socket 安全沙箱解决 -
ustb:
你上下两个代码类之间没关系
flex_flush_Socket 安全沙箱解决 -
u010656335:
...
flex发送QQ表情 -
u010656335:
flex发送QQ表情
flex builder中新建一个ActionScript工程,代码如下
package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.events.*; import flash.geom.*; import flash.text.*; import mx.core.SpriteAsset; [SWF(width="80",height="100",frameRate="24")] public class action extends SpriteAsset { var player:Player=new Player; public function action() { this.addChild(player); } public function startGo(){ player.startGo(); } public function stopWalk(){ player.stopWalk(); } //根据整数调整角度 public function setDirection(derection:int){ player.setDirect=derection; } //计算出角度再调整角度 public function walkAndle(radians:Number){ player.setDirection(radians); } public function moveToNextFrame(currentFrame:int,direction:int){ player.setCurrentFrame=currentFrame; player.setDirect=direction; player.moveToNextFrame(); } public function setDisdata(simpleBitmapdata:BitmapData){ player.simpleBitmapdata=simpleBitmapdata; } public function setAlpha(bitmap:Bitmap){ player.simpleBitmap=bitmap; } } }
package { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.net.*; public class Player extends Sprite { [Embed(source="image/h1.png")] private var role:Class; private var playerBit:Bitmap;//整张图的 private var playerBitData:BitmapData;//整张图的data private var simpleBit:Bitmap;//单个动作的bitmap private var simpleBitData:BitmapData;//单个动作的data; private var simpleWidth:int=80;// 人物的宽度 private var simpleHeight:int=91;//人物的高单 private var simpleRect:Rectangle;//单张图片的矩形范围 private var simplePoint:Point=new Point(0,0);//截图开始点 private var woffset:int=simpleWidth/2; //宽度 偏移 private var hoffset:int=simpleHeight-10;//高度偏移 private var direction:int;//行走方向 private var speed:int=12;//行走速度 private var xSpeed:int=0;//x轴行走速度 private var ySpeed:int=0; private var radians:Number;//目标点与原点的角度 private var distance:Number;//当前点与目标点的剩余距离 private var currentFrame:int=2;//当前行走动画针 private var frameCountInWalk:int=8;//该方向上最后一针 public function Player() { super(); init(); } private function init(){ initAll(new role as Bitmap); initSimpleBit(); } private function initAll(bit:Bitmap):void{ this.playerBit=bit; this.playerBitData=playerBit.bitmapData; } private function initSimpleBit():void{ this.simpleBitData=new BitmapData(this.simpleWidth,this.simpleHeight); this.simpleBit=new Bitmap(this.simpleBitData); this.simpleRect=new Rectangle(0,0,this.simpleWidth,this.simpleHeight); this.simpleBitData.copyPixels(this.playerBitData,this.simpleRect,this.simplePoint); //角色注册点在人物脚下,如果不在游戏中用就去掉 // this.simpleBit.x=this.simpleBit.x-this.woffset; // this.simpleBit.y=this.simpleBit.y-this.hoffset; this.addChild(this.simpleBit); this.addEventListener(Event.ENTER_FRAME,onStart); } public function stopWalk(){ this.removeEventListener(Event.ENTER_FRAME,onStart); } private function onStart(event:Event){ this.moveToNextFrame(); } public function startGo():void{ this.addEventListener(Event.ENTER_FRAME,onStart); this.dispatchEvent(new Event(Event.ENTER_FRAME)); } /** * 移动到下一个frame */ public function moveToNextFrame():void { //取当前帧 if (this.currentFrame == this.frameCountInWalk) //该方向上最后一帧,回到开始 { this.currentFrame = -1; } this.currentFrame = this.currentFrame + 1; //根据frame和方向取动作图片 this.simpleRect.x = this.currentFrame * this.simpleWidth; //在原图片中的像素位置 this.simpleRect.y = this.direction * this.simpleHeight; //在原图片中的像素位置 //拷贝该frame的图片 this.simpleBitData.copyPixels(this.playerBitData, this.simpleRect, this.simplePoint); } /** * 取得行走方向,水平向右为0,顺时针旋转 * (注意:在tile的宽=2*高时,右下 左下 左上 右上并非是45度) * 0 -- 右 0度 * 1 -- 右下 45度 * 2 -- 下 90度 * 3 -- 左下 135度 * 4 -- 左 180度 * 5 -- 左上 -135度 * 6 -- 上 -90度 * 7 -- 右上 -45度 */ public function setDirection(radians:Number):void { /** 角度(degrees)和弧度(radians)之间的转换关系式是: radians = (Math.PI / 180) * degrees **/ var degrees:Number = radians * 180 / Math.PI; //角度 //八方向 360/8=45,左上角为元点,右向为横轴,逆时针角度为负,顺时针为正 // 也可用弧度直接算 this.direction = Math.round( degrees / 45 ); // this.direction=2; if (degrees < 0) //角度为负 { this.direction = Math.abs(this.direction + 8); } //转成跟图片一致的 switch (this.direction) { case 0: this.direction = 2; break; case 1: this.direction = 5; break; case 2: this.direction = 0; break; case 3: this.direction = 4; break; case 4: this.direction = 1; break; case 5: this.direction = 6; break; case 6: this.direction = 3; break; case 7: this.direction = 7; break; } } public function getSimpleBit():Bitmap{ return this.simpleBit; } public function set setDirect(direct:int){ this.direction=direct; } public function set setCurrentFrame(cf:int){ this.currentFrame=cf; } public function set simpleBitmapdata(bitdata:BitmapData){ this.simpleBitData=bitdata; } public function set simpleBitmap(bitmap:Bitmap){ this.simpleBit=bitmap; } } }
运行上边action.as,生成一个action.swf,可以看见一个人物一直在动。
flex--->新建一个flex project,代码如下
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="testLoaderLeverType(),loa()"> <mx:Script> <![CDATA[ import mx.controls.Alert private var content:Object;//为了方便,不再用action类型,这样就不用把原来的action,和player类拷贝到这个工程下。 private function loa(){ // // Alert.show(hello.content is action);//输出true content=Object(hello.content); } var loader:Loader=new Loader; private function testLoaderLeverType(){ loader.load(new URLRequest("action.swf")); loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete); } private function onComplete(event:Event){ Alert.show(((loader.content) is action)+""); //输出true; //把上边两个类拷过来测试一下,是否为true } ]]> </mx:Script> <mx:VBox> <mx:SWFLoader x="50" y="60" source="action.swf" width="80" height="91" id="hello"> </mx:SWFLoader> <mx:HBox> <mx:Button click="content.stopWalk()" label="停止"> </mx:Button> <mx:Button click="content.startGo()" label="行走"> </mx:Button> <mx:Button click="content.setDirection(0)" label="向下"> </mx:Button> <mx:Button click="content.setDirection(1)" label="向左"> </mx:Button> <mx:Button click="content.setDirection(2)" label="向右"> </mx:Button> <mx:Button click="content.setDirection(3)" label="向上"> </mx:Button> <mx:Button click="content.setDirection(4)" label="左下角"> </mx:Button> <mx:Button click="content.setDirection(5)" label="右下角"> </mx:Button> <mx:Button click="content.setDirection(6)" label="左上"> </mx:Button> <mx:Button click="content.setDirection(7)" label="右下"> </mx:Button> </mx:HBox> </mx:VBox> </mx:Application>
- action.zip (524.1 KB)
- 下载次数: 258
- mxml.zip (2.6 MB)
- 下载次数: 297
发表评论
-
转深入理解Flash的沙箱 – Security Domains
2014-01-22 09:35 888一篇很经典的进阶文章,国外牛人的分享,清晰明了,图文并茂,适 ... -
flex 很有用的东东!
2010-06-17 23:50 1282网上找了好久,原来API中就有! -
flex出现的一些问题
2010-04-08 12:19 16891.kingnarestyle.swf和flexlib 的Su ... -
flex 样式工作原理【转】
2010-04-08 12:09 1346http://hi.baidu.com/ls_mcx/blog ... -
在FlexBuilder3中使用Actionscript3进行元编程
2010-03-11 19:15 1061http://flash.9ria.com/thread-46 ... -
Error: No class registered for interface mx
2010-02-01 09:36 1265http://www.gold98.net/blog/arti ... -
Flash 视频(FLV)编码,转换,录制,播放方案一网打尽
2010-01-16 18:34 2039http://www.htmlit.com.cn/post/8 ... -
FLEX中使用FLVPlayback控件.
2010-01-16 18:29 1426http://www.cnblogs.com/xxcainia ... -
flex 继承Application及xml命名空间
2009-12-30 18:43 1541<?xml version="1.0" ... -
flex Repeater effert加效果
2009-12-15 17:25 1564package cn.ishion.component { ... -
学习自定义组件---ConstomButton
2009-12-14 15:06 1865效果只是让Button动了下, 上传了flash源文件 p ... -
flex编译生成的As代码
2009-12-09 18:30 1337new flexProject ->起名叫 test ... -
flex自定义preloader
2009-12-09 17:43 1935package cn.ishion.component { ... -
flex自定义程序 preloader 加载多个资源
2009-12-09 02:05 2311package cn.ishion.component { ... -
Flex Builder编译错误An internal build error has occurred的解决方法
2009-12-05 16:44 3230原文:http://as3blog.com/resources ... -
flex uicomponent.addChild(Button) Button不显示
2009-12-04 19:23 2168设置下Button的宽度和高度就行了 var ui:U ... -
as3 xls导出excel乱码问题解决办法
2009-12-04 11:37 3440http://blog.csdn.net/Baijinwen/ ... -
FlashDevelop配置Flex4(gumbo)环境
2009-12-04 10:27 3071http://www.flexrain.cn/fl ... -
flex gooogle code as3xls导出数据到excel
2009-12-03 19:16 2390var ex:ExcelFile=new ExcelFile ... -
Flex坐标系统及转换
2009-12-02 22:10 3125http://flash.9ria.com/thread-40 ...
相关推荐
例如,要调用SWF中的公共函数,我们可以这样写: ```actionscript swfPlayer.content.myPublicFunction(); ``` 3. **控制播放**: `MovieClip`类提供了一些内置的方法来控制SWF的播放状态,如: - `play()`:...
一旦定义了接口,你就可以在加载的SWF对象上调用这些方法,传递参数,实现交互。 此外,为了确保安全性和性能,Flex和SWF之间的通信可能会受到沙箱限制。通常,加载的SWF文件会位于不同的安全域中,这可能会影响...
在提供的案例文件“Flex控制外部SWF播放案例”中,可能包含了一个具体的实现示例,你可以通过研究这个案例来学习如何在实践中操作。通常,这样的案例会演示如何建立通信机制,调用外部SWF的API,或者使用`Timer`类来...
当我们需要在应用程序中重用或集成这些SWF资源时,就需要知道如何调用SWF中导出的类、按钮、MovieClips(MC)和图片。以下将详细介绍这一过程。 首先,要调用SWF中的导出类,我们需要确保该类在SWF文件中被正确导出...
1. **嵌入Flash内容到Flex项目**:Flex项目可以嵌入SWF格式的Flash内容,这允许开发者在Flex应用中利用已有的Flash资源。通过使用`mx.controls.MovieClip`或`mx.controls.VideoDisplay`组件,可以轻松地在Flex界面中...
例如,拼图的每个部分可能是一个MovieClip,而移动和旋转操作则是通过ActionScript函数实现的。 6. **学习路径**:对于初学者,可以先通过阅读源码理解整体架构,然后逐个研究ActionScript函数,理解它们的功能和...
通过ActionScript,我们可以操控显示列表(Display List)中的对象,如Sprite或MovieClip,来实现3D旋转效果。 `.actionScriptProperties` 文件是Eclipse或Flash Builder等IDE的工作空间配置文件,它存储了关于...
在Flash开发领域,Flash Builder 4.7是一个重要的集成开发环境(IDE),它主要用于构建基于Adobe Flex和ActionScript的应用程序,包括SWF文件。SWF是Adobe Flash Player用于展示交互式内容、动画以及应用程序的标准...
在Flex开发中,Loader类是用于加载各种类型资源的核心组件,包括图像、视频、SWF文件等。Loader类是ActionScript 3中的一个关键部分,它使得动态加载内容成为可能,提高了应用程序的灵活性和响应性。下面我们将深入...
通过以上心得分享,我们可以看出Flash与Flex3的结合使用需要理解两者之间的兼容性和接口调用方式,同时充分利用Adobe提供的工具类来优化代码和提高开发效率。在实际项目中,灵活运用这些技巧和工具,能够更好地实现...
- 使用`Bitmap`而非`Vector`图形,减少GPU负载。 - 合理管理游戏对象的生命周期,避免不必要的对象创建和销毁。 - 利用`SpriteBatch`技术批量渲染多个对象,减少绘图调用次数。 - 实施细节层次(LOD)策略,根据视距...
1. **嵌入资源**:使用`[Embed]`元标签可以将图像、声音等资源嵌入到SWF中。例如: ```actionscript [Embed(source="assets/player.png")] private var PlayerClass:Class; ``` 这样,`PlayerClass`就可以作为...
在Flex应用启动时,它的根对象是SystemManager,这是一个特殊的MovieClip,负责管理整个应用的生命周期。SystemManager有两个帧:preloader和Application。preloader帧用于显示应用程序的加载进度,一旦加载完成,...
【Flash转盘抽奖程序】是基于ActionScript 3(AS3)开发的一种...解压后,开发者可以研究源代码,了解具体实现细节,或者根据需要进行定制和修改。此外,如果包含SWF文件,可以直接在支持Flash的环境中运行查看效果。
AS3TweenLite还支持链式调用,可以方便地创建复杂的动画序列,并提供了大量的内置缓动函数供选择,如easeInOut、easeInQuad等,以创建不同风格的运动效果。 总的来说,AS3TweenLite是一个强大的AS3动画工具,对于...
使用ActionScript创建MovieClip对象 加载外部SWF文件 影片剪辑示例:RuntimeAssetsExplorer 第章:使用补间动画 补间动画基础知识 在Flash中复制补间动画脚本 合并补间动画脚本 描述动画 添加滤镜 将补间动画与其显示...
在ActionScript3 (AS3) 中,开发Flash应用程序或Flex应用时,我们经常需要引用各种组件,如Button、Label等,这些组件使得用户界面的构建变得更加便捷和灵活。本篇文章将详细探讨如何在AS3中引用这些组件,以及与之...
创建进度条时,我们通常会创建一个自定义类,该类继承自`Sprite`或`MovieClip`,这两个都是内置的显示对象类。 1. **初始化进度条** - 创建一个新的类,如`ProgressBar`,继承自`Sprite`。 - 在类中定义进度条的...