转发——叁十六虚岁初始变化的古板(干了那碗鸡汤再写代码保证没有bug)美高梅4688.com

  平常做as3游戏少不了要用到缓动效果,一般都以用greensock的tweenlite库,但引用tweenlite库是有代价的,整个swc库的轻重是93kb。对于大型的页游,游戏本人容量就大,且需要用到大气缓动效果,那那100kb左右的文件大小当然是开玩笑。但万一是平日的几mb的小游戏,只须求用到to方法完结3个最简便的缓动效果,那专门引入tweenlite库则显示大惊小怪。缓动效果并简单落实,针对那种简易利用,完全可以用100多行的代码自身完结。代码大小小于1kb。思路是通用的,像cocos,unity等手游开发,也会有开源的第②方缓动库。开发一些几mb的手机小游戏,若是只须要简单的缓动效果,完全可以团结已毕,养成好习惯,为十五日游安装包瘦身。终究安装包越小,玩家越喜欢。

用作贰个正式的IT男,从一开端的一线开发,做到管理层,又因为热爱开发,跳槽继续专注coding,一干就是10多年。有时候就想,那样平素学习,coding,若是能干到老也挺不错的!

 

而是生活的下压力是不会让您舒服的。人到中年,又作为私生子,1人远离背井的在“大城市”打拼,老婆、孩子,生活中全部都是须要钱的地点。薪酬初叶逐年无法满意了,刚开始投机接点私活,还能有个别缓解下压力,可是随着压力的增多(父母变老,孩子就学)私活那一点钱根本不够。

  1 package
  2 {
  3     import__global;
  4     
  5     import flash.display.DisplayObject;
  6     import flash.display.MovieClip;
  7     import flash.display.Sprite;
  8     import flash.events.Event;
  9     import flash.utils.Dictionary;
 10 
 11     public class Tween
 12     {
 13         public function Tween()
 14         {
 15             
 16         }
 17         private static var root:DisplayObject;
 18         
 19         private static var list:Dictionary=new Dictionary();
 20         private static var len:int;
 21         /**
 22          *缓动类 
 23          * @param target 目标
 24          * @param duration 缓动时间 秒
 25          * @param targetVars 参数 {目标对象属性:值}
 26          * @param callBack 变化完成后回调
 27          */        
 28         public static function to(target:Object, duration:Number, targetVars:Object,fromVars:Object=null,callBack:Function=null):void
 29         {
 30             //假如该对象已经有缓动则直接完成上一次的缓动
 31             if(list[target]!=null)
 32             {
 33                 for(var key:String in targetVars)
 34                 {
 35                     setValue(target,key,targetVars[key]);
 36                 }
 37                 len--;
 38             }
 39             if(fromVars==null)
 40             {
 41                 fromVars={};
 42                 for(key in targetVars)
 43                 {
 44                     fromVars[key]=target[key];
 45                 }
 46             }
 47             var perVars:Object={};
 48             var count:int=duration*24;
 49             for(key in targetVars)
 50             {
 51                 perVars[key]=(targetVars[key]-target[key])/count;
 52 //                trace("per ["+key+"]:"+perVars[key]+" count:"+count);
 53             }
 54             list[target]={count:count,fromVars:fromVars,target:target,targetVars:targetVars,perVars:perVars,callBack:callBack};
 55             len++;
 56             startMotion();
 57         }
 58         
 59         private static function startMotion():void
 60         {
 61             if(root==null)
 62             {
 63                 root=__global.stage;
 64             }
 65             
 66             if(len>0)
 67             {
 68                 root.removeEventListener(Event.ENTER_FRAME,enterFrame);
 69                 root.addEventListener(Event.ENTER_FRAME,enterFrame);
 70             }
 71             else
 72             {
 73                 root.removeEventListener(Event.ENTER_FRAME,enterFrame);
 74             }
 75         }
 76         
 77         private static function enterFrame(e:Event=null):void
 78         {
 79             for(var key2:* in list)
 80             {
 81                 var task:Object=list[key2];
 82                 task.count--;
 83                 //缓动结束
 84                 if(task.count<=0)
 85                 {
 86                     for(var key:String in task.targetVars)
 87                     {
 88                         setValue(task.target,key,task.targetVars[key]);
 89                     }
 90                     if(task.callBack)task.callBack();
 91                     delete list[key2];
 92                     len--;
 93                     startMotion();
 94                 }
 95                 else
 96                 {
 97                     for( key in task.targetVars)
 98                     {
 99                         task.fromVars[key]+=task.perVars[key];
100                         setValue(task.target,key,task.fromVars[key]);
101                     }
102                 }
103             }
104         }
105         
106         /**
107          *设置值,可以通过属性名过滤处理方法 
108          * @param target
109          * @param key
110          * @param value
111          * 
112          */        
113         private static function setValue(target:Object,key:String,value:Number):void
114         {
115             switch(key)
116             {
117                 case "currentFrame":
118                     var mc:MovieClip=target as MovieClip;
119                     if(mc)
120                     {
121 //                        trace("set currentFrame:"+int(value));
122                         mc.gotoAndStop(int(value))
123                     }
124                     else
125                     {
126                         target[key]=value;
127                     }
128                     break;
129                 default:
130                     target[key]=value;
131                     break;
132             }
133         }
134         
135     }
136 }

此刻小编在想,本身干了那样多年,也没有其他发展,一直作为八个打工者,工作是入账来源的唯一手段,若是这天失掉工作,再没有找到下家,那太吓人了。

 

不恐怕不到了要转移的时候了。要为以后树立一条管道,尽管本身不做事,也能接踵而至 蜂拥而至的有收入来源。(时期读了《管道的传说》)

用作二个IT人,其实赚钱的水道照旧广大的,关键是考虑的变更特别关键。无法一天注意专研技术,要用技术已毕产品,要有越多产品的构思。技术方今以来小难题。

**那么哪些去做吧?做什么样啊?**

做IT产品;做移动APP;做手游;做…

细想一下,可以做能扭亏的东西很多,就看本人能照旧不能找到用户的痛点了,抓住用户痛点,消除用户实际难点,一定就是足以扭亏为盈的东西。(句句不离赚钱,有点俗,生活在那世俗之中,没有主意)

现阶段祥和正值往那地点着力,也在做一些事物,即使不自然能成功照旧赚钱,但起码本人要去尝试。也指望能对几近和本身同样的恋人或多或少启示,让大家都能修建本人的管道,达成财富自由!

 

小说出处:http://www.jianshu.com/p/5daa457335bb

发表评论

电子邮件地址不会被公开。 必填项已用*标注