Rise的自留地

记录生活中的点滴,分享编程技术和游戏开发经验。

0%

Genome2D是一个高效的2D引擎,现在支持Flash(stage3d)和HTML5,因为只有作者一个人在维护,就没开源代码。

最近和作者沟通了下,已经开源啦。

flashdevelop没有直接支持生成swc的工程,但flashdevelop生成swc也比较方便,不用任何插件。

swc库是由 flexsdk的compc.exe生成的,其实我们通过这个命令行也可以直接生成swc。但还是直接在flashdevelop里F8一下,编译+生成来得方便。

在使用vs2013编译boost-1.55.0之前,先要给boost做下修改:

boost_1_55_0\boost\intrusive\detail\has_member_function_callable_with.hpp line:222

template<class U>

static BOOST_PP_CAT(zeroarg_checker_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)

       <U> Test(BOOST_PP_CAT(zeroarg_checker_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)<U>*);

替换成以下内容:

#ifdef BOOST_MSVC

     template<class U>

     static decltype(boost::move_detail::declval<Fun>().BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME()

           , boost_intrusive_has_member_function_callable_with::yes_type())

           Test(Fun*);

#else

     template<class U>

     static BOOST_PP_CAT(zeroarg_checker_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)

           <U> Test(BOOST_PP_CAT(zeroarg_checker_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)<U>*);

#endif

 

flex4.5和4.6在textField.getCharBoundaries()这个方法的返回结果上是不一样的。
getCharBoundaries()方法只会返回被渲染出来的文字的边框信息,也就是说,如果文本框大小比真正的文本大小要小,那么你想要打印出没有显示的文字的边框信息是不可能的!
在4.5中,打印出的边框信息是相对于textfield的textHeight属性,而4.6打印出的边框信息是相对于textfield的height属性。这就造成了richtextfield表情显示上的混乱!

解决方法:

private function renderSprite(sprite:DisplayObject, index:int):void
                   
            var rect:Rectangle = textRenderer.getCharBoundaries(index);    
            if (rect != null)
            {
                sprite.x = (rect.x + (rect.width - sprite.width) * 0.5 + 0.5) >> 0;
                var y:Number = (rect.height - sprite.height) * 0.5;
                var lineMetrics:TextLineMetrics = textRenderer.getLineMetrics(textRenderer.getLineIndexOfChar(index));
                //make sure the sprite's y is not smaller than the ascent of line metrics
                if (y + sprite.height < lineMetrics.ascent) y = lineMetrics.ascent - sprite.height;
                sprite.y = (rect.y + y + 0.5) >> 0;
                //flex sdk 4.6添加,否则有显示bug
                sprite.y += -_spriteContainer.y;

                _spriteContainer.addChild(sprite);
            }
        }

IrfanView 4.36 简体中文便携版 小而快的图片浏览器
仅仅不到2M的小软件,功能却能与体积大到几十M的ACDSee相媲美!这个软件就是IrfanView。图片、音频、视频浏览,图片批量格式转换、批量重命名,JPE图片无损旋转等只是IrfanView最基本的功能。IrfanView是世界第一个支持多页Gif动画的Windows图像查看器,另外强大的插件外挂功能、自定义皮肤功能以及多种热键支持让你可以定制一个完全属于自己的IrfanView!功能过多,不再一一介绍,喜欢小巧而又免费的强大图片浏览器那就马上体验一下IrfanView吧!

http://115.com/lb/5lbeuosjhgm#
iview436.zip
115网盘礼包码:5lbeuosjhgm

再送一个注册码生成器(.net2.0),不过这个软件是完全免费的,有心有力的话,还是支持下作者吧!

 1 package  

 2 {

 3     import flash.utils.ByteArray;

 4     /**

 5      * 输出ByteArray为16进制

 6      * @author Rise

 7      */

 8     public class Byte2Hex 

 9     {

10         public static function Trace(bytes:ByteArray):void 

11         {

12             if (bytes == null) 

13             {

14                 trace("bytes is null");

15                 return;

16             }

17             var length:int = getHexLen(bytes.length);

18             length = length > 4 ? length : 4;

19             trace(getTitle(length));

20             bytes.position = 0;

21             for (var j:int = 0; bytes.bytesAvailable > 0; j += 16) 

22             {

23                 var line:String = fillHexLen(j, length) + " ";

24                 var str:String = "";

25                 for (var i:int = 0; i < 16; i++) 

26                 {

27                     if (bytes.bytesAvailable > 0) 

28                     {

29                         var char:int = bytes.readByte() & 0xFF;

30                         line += fillHexLen(char, 2) + " ";

31                         str += String.fromCharCode(char);

32                     }

33                     else

34                     {

35                         line += ".. ";

36                     }

37                 }

38                 trace(line, "\t", str);

39             }

40         }

41         

42         private static function fillHexLen(num:int, length:int):String 

43         {

44             var str:String = num.toString(16);

45             var zeros:String = "";

46             for (var i:int = 0; i < length - str.length; i++) 

47             {

48                 zeros += "0";

49             }

50             

51             return zeros + str;

52         }

53         

54         private static function getHexLen(length:int):int

55         {

56             var bit:int = 0x0F;

57             for (var i:int = 1; i <= 8; i++) 

58             {

59                 bit = bit << i | bit;

60                 if (bit > length) 

61                 {

62                     return i;

63                 }

64             }

65             return 8;

66         }

67         

68         private static function getTitle(length:int):String 

69         {

70             var title:String = "";

71             for (var i:int = 0; i < length; i++) 

72             {

73                 title += " ";

74             }

75             return(title + " 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15");

76         }

77     }

78 }

代码很烂,高手勿喷。

本文转自:http://cowboy-bebop.iteye.com/blog/1035550,仅做稍微整理,转载请注明出处。

1. IDEA内存优化

因机器本身的配置而配置:

\IntelliJ IDEA 8\bin\idea.exe.vmoptions 
----------------------------------------- 
-Xms64m 
-Xmx256m 
-XX:MaxPermSize=92m 
-ea 
-server 
-Dsun.awt.keepWorkingSetOnMinimize=true

2. 查询快捷键

CTRL+N   查找类
CTRL+SHIFT+N  查找文件
CTRL+SHIFT+ALT+N 查找类中的方法或变量
CIRL+B   找变量的来源
CTRL+ALT+B  找所有的子类
CTRL+SHIFT+B  找变量的类
CTRL+G   定位行
CTRL+F   在当前窗口查找文本
CTRL+SHIFT+F  在指定窗口查找文本
CTRL+R   在 当前窗口替换文本
CTRL+SHIFT+R  在指定窗口替换文本
ALT+SHIFT+C  查找修改的文件
CTRL+E   最近打开的文件
F3   向下查找关键字出现位置
SHIFT+F3  向上一个关键字出现位置
F4   查找变量来源
CTRL+ALT+F7  选中的字符查找工程出现的地方
CTRL+SHIFT+O  弹出显示查找内容

vmware安装的一个大坑,最近在开发上需要用到centos 6.4,由于我本身的系统是win8所以决定使用虚拟机,选择了vmware,并且从网上下载的虚拟机的映像文件.中间安装了vmware8,安装完成后vmware tools始终提示无法安装,提示信息是: