1、创建 Sprite 表,请执行以下操作:

  1. 中选择一个或多个元件,或在 舞台 上选择一个或多个元件实例。所选内容还可以包含位图。
  2. 右键单击所选内容,然后选择 “生成 Sprite 表”
  3. “生成 Sprite 表” 对话框中,选择选项,然后单击 “导出”

有下列导出选项可用:

9 private function onImageLoaded(bd:BitmapData): void 10 { 11 var image:Image = new Image(); 12 image.source = new Bitmap( bd ); 13 addChild( image ); 15 this .bd = bd; 16 parse(); 17 } 19 private function parse(): void 20 { 21 // 需要两个文件同时存在才可以使用 22 if ( !xml || !bd ) return ; 24 var list:XMLList = xml.SubTexture; 25 var n:int = list.length(); 26 var item:XML; 27 for ( var i:int = 0; i < n; i++ ) 28 { 29 item = list[i]; 30 // <SubTexture name="image 216.png" x="0" y="0" width="80" height="70" pivotX="0" pivotY="0"/> 31 var x:int = int( item.@x ); 32 var y:int = int( item.@y ); 33 var w:int = int( item.@width ); 34 var h:int = int( item.@height ); 36 var destRect:Rectangle = new Rectangle(x,y,w,h); 37 var destPoint:Point = new Point(0,0 ); 39 var newBD:BitmapData = new BitmapData(w,h); 41 // 复制Sprite表里面需要到的位图 42 newBD.copyPixels( bd, destRect, destPoint ); 44 // 检查是否复制成功 45 /* var img:Image = new Image(); 46 addChild( img ); 47 img.source = new Bitmap( newBD ) ; 48 img.x = x; 49 img.y = y; 50 img.filters = [new GlowFilter()]; */ 51 }

如果是air程序

 1 /**
 2              * 把小图数据存到桌面assets目录下面
 3              */
 4             private function saveBD(bd:BitmapData, name:String):void
 6                 var ba:ByteArray = pngEnc.encode(bd);
 8                 var file:File =  File.desktopDirectory.resolvePath("assets/" + name );
 9                 var fs:FileStream = new FileStream();
10                 fs.open( file, FileMode.WRITE );
11                 fs.writeBytes(ba);
12                 fs.close();
   

在air程序里可以实现拖拽功能

* 拖拽功能,得到拖放进来的文件 protected
function nativeDragDropHandler(arr:Array):void trace(File(arr[0]).nativePath); var name:String = File(arr[0]).nativePath; // C:\Users\dzq\Desktop\test.xml name = name.substring(0, name.indexOf(".") ); trace(name); //置空,防止下次拖拽文件时,使用之前的.xml或.png文件 xml = null; bd = null; LoaderHelper.loadXML( name + ".xml", onXMLLoaded ); LoaderHelper.loadImage( name + ".png", onImageLoaded );
 1     public class NativeDragHelper
 4         /**
 5          * NativeDragHelper.init(this, nativeDragDropHandler );
 7          * protected function nativeDragDropHandler(arr:Array):void
10                 trace(File(arr[0]).nativePath);
11             }
12          * 
13          */
14         public static function init( target:InteractiveObject, nativeDragDropHandler:Function ):void
15         {
16             target.addEventListener(NativeDragEvent.NATIVE_DRAG_ENTER, function(event:NativeDragEvent):void{
17                 NativeDragManager.acceptDragDrop( target );
18             });
19             target.addEventListener(NativeDragEvent.NATIVE_DRAG_DROP, function(event:NativeDragEvent):void{
20                 var arr:Array = event.clipboard.getData(ClipboardFormats.FILE_LIST_FORMAT) as Array;
21                 nativeDragDropHandler(arr);
22             });
23         }
                                    免责声明:本博客的所有原创文章,均有time_anime精心写作,供学习交流使用,切勿进行商业传播。同时,转载请不要移除本声明!
最近在学习cocos2d for iPhone,终于摸清了点头绪。有一个概念和工具我感觉特别的喜欢,就是SpriteSheet和TexturePacker。
大家可以先看看这个视频和视频下面的文章,对精灵单的剖析很到位,值得学习。视频估计要翻墙才能看。这个视频
                                    项目中有引用到外部图片资源的功能(由用户选择),而且当用户下次打开这个项目的时候也要显示用户上次使用过的图片,这就涉及到了一个图片数据的可持久化存储问题。由于项目中的其他数据是保存到XML文件中的,所以本博客仅此记录Unity实现在Xml文件中图片资源的序列化与反序列化问题的过程,并给出Demo验证。通过本博客,你将学习到如果计算图片文件的md5,以及如何将图片保存到xml文件中。
                                    Spritesheet(精灵单),可以把它看作是一张巨大的图片,里面放着许许多多的Sprite(图片)。与spritesheet对应的,还有一个plist文件,这个文件指定了每个独立的sprite在这张“大图”里面的位置和大小,当代码需要使用这个sprite的时候,就可以很方面地使用plist文件中的这些信息来获取sprite。
这种处理方式的主要目的在于提高处理效率?因为cocos2d对它进
                                    使用CSS Sprite而不是较小的单个图像的集合,可以提高网页的性能并使内容更井井有条。 让我们看一下精灵制作工作流程的一些最佳实践和有用的工具。 
 精灵名称可能会让您想起游戏精灵; 如今的复古游戏机游戏,甚至是基于浏览器的游戏: 
 用CSS术语来说,精灵角色扮演的角色大致相同。 Sprite是一个大文件,其中包含网站的多个图像,从而节省了加载时间和网站空间。 
 下一个网站的...
                                    有时候我们使用的图片不是单张的,是多个图片放在了一张图片,比如下面的微信版飞机大战的素材: 
我们可以通过PhotoShop一张一张的取出来,但是比较麻烦。Unity自带的Slicing Sprite Sheets可以很好的帮助我们解决此问题。此功能不仅将一张多纹理的图片切割成多个Sprite,并且这些Sprite保存在同一个图片文件中,不仅提高了Sprite动画的创建效率,而且省去了手动切图的
                                    Sprite(精灵)全解
精灵是游戏中十分重要的组成部分,随处可见,如:游戏背景、NPC、人物、道具等。在cocos2d-x引擎中,只要是用图片展示的,基本上需要使用精灵类。
1. 首先来了解一下跟精灵相关的几个类:
(1) Texture2D
可以把它看成一个纹理,它是cocos2d-x渲染图形的重要参数,用来贴图,因为cocos2d-x使用openglES绘制2d图形的,它
                                    在Photoshop生成Sprite图的脚本插件
在unity开发或其他项目中,往往希望把帧动画的每一帧、或者是同一场景中用到的素材,存在同一张Sprite图中,避免引擎反复读取素材而降低效率。但是Photoshop并不原生支持生成素材图,其他的软件例如TexturePacker也不是免费的。为了减轻美工的工作量,找到了两个自定义的photoshop脚本,在此记录一下使用方法。
Sprite Sheet Generator 0.6.0
Layer2SpriteSheet
将插件下载后
                                    本节旨在为开发人员提供详细的解决方案,了解如何通过 C#、VB.NET 中的 .NET Excel 组件 Spire.XLS 将特定的工作单元格转换为图像。这个 Excel 库帮助我们快速将某些 Excel 单元格转换为不同的图像格式,例如 jpeg、png、bmp、tiff、gif、ico、emf、exif 等。
Spire.XLS for .NET下载
当我们将工作转换为图像时,Spire.XLS for .NET为我们提供了一个方法:Spire.Xls.Worksheet.SaveToImag
图所示为网页的请求原理图,当用户访问一个网站时,需要向服务器发送请求,网页上的每张图像都要经过一次请求才能展现给用户。
然而,一个网页中往往会应用很多小的背景图像作为修饰,当网页中的图像过多时,服务器就会频繁地接受和发送请求,这将大大降低页面的加载速度。
为了有效地减少服务器接受和发送请求的次数,提高页面的加载速度,出现了CSS精灵技术(也称CSS Sprites、CSS雪碧)。
精灵技术本质
简单地说,CSS精灵是一种处理网页背景图像的方式。它将一个页面涉及到的所有零星背