2009年4月26日星期日

Windows上做开发的利器

  • QTTabBar,windows explorer的多tab插件
  • PowerCMD,多CMD窗口管理器,不过有点慢
虽然不能说两个软件在性能上不能算是尽善尽美,但是还是对开发提供了极大的方便:)


QTTabBar


PowerCMD

2009年4月19日星期日

Windows的NTUSER.DAT

该文件在C:\Documents and Settings\username下,适用于记录用户的个性化配置,今早登录系统时突然出现Windows无法加载配置文件的提示,才发觉该文件的重要性。

所有的环境变量定义、所有的个性化配置,都包含在这个文件中,而且是二进制格式的,这对于迁移、备份工作环境非常不方便,Windows用久了,这个文件也变得非常大,800+MB

根据网上的办法,我先rename了文件夹C:\Documents and Settings\username到C:\Documents and Settings\username_bak,然后重新登陆,这样Windows从DefaultUser那copy了一份新的配置文件作为用户配置文件;从bak中复制所有的配置文件(除了NTUSER*那些文件),虽然恢复了很多配置,比如桌面、开始菜单等,但是很多其他配置比如我的文档位置、环境变量等都不复存在了……

好彩的是,我无意中尝试了把C:\Documents and Settings\username_bak改回C:\Documents and Settings\username,然后使用这个文件夹作为用户目录,竟然可以加载了- -b

一个小时里就这么折腾着,哎,系统管理也是门艺术啊……

2009年4月13日星期一

Flash ActionScript2中加载外部SWF的问题

问题:加载外部SWF后,加载器不能响应鼠标事件,也就是点击加载的SWF没响应。
原因:加载后加载器MovieClip的所有属性方法都被擦出,参考资料
解决方法:在加载器下建一个子MovieClip用于加载SWF文件,用加载器进行控制。

基本步骤如下:
  1. 用createEmptyMovieClip创建一个空的MovieClip
  2. 使用MovieClip的loadMovie或者MovieClipLoader的loadClip加载外部SWF

var my_mcl:MovieClipLoader = new MovieClipLoader();

var mclListener:Object = new Object();
mclListener.onLoadError = function(target_mc:MovieClip, errorCode:String, status:Number) {
trace("Error loading image: "+errorCode+" ["+status+"]");
};

mclListener.onLoadStart = function(target_mc:MovieClip):Void  {
trace("onLoadStart: "+target_mc);
};
mclListener.onLoadProgress = function(target_mc:MovieClip, numBytesLoaded:Number, numBytesTotal:Number):Void  {
var numPercentLoaded:Number = numBytesLoaded/numBytesTotal*100;
trace("onLoadProgress: "+target_mc+" is "+numPercentLoaded+"%loaded");
};
mclListener.onLoadComplete = function(target_mc:MovieClip, status:Number):Void  {
trace("onLoadComplete: "+target_mc);
};
mclListener.onLoadInit = function(target_mc:MovieClip):Void {
// stop playing movie clip after loaded
target_mc.stop();
}
my_mcl.addListener(mclListener);

var loader = createEmptyMovieClip("loader"+i, this.getNextHighestDepth());
loader.target = loader.createEmptyMovieClip("loaderL"+i+"target", _parent.getNextHighestDepth());
my_mcl.loadClip("swf file url",loader.target);

这样加载后就可以对loader添加鼠标响应等行为,比如
loader.onPress = loaderPress;
loader.onRollOver = loaderRollOver;
loader.onRollOut = loaderRollOut;

修水管获得的忠告

宿舍水管漏水,想关总闸,但拧了半天都没反应,于是判定开关坏了,打电话预约维修人员……
第二天一早一个阿伯来了,先看了下开关总闸,拧了一会就把它关了。
我纳闷地问:“为什么我昨晚怎么拧都拧不到底的?”
阿伯慢条斯理地答道:“怎么会拧不到底?要有耐心,急不来~” 接着他慢慢拧下水管,然后换了两个橡皮圈,水管不漏水了。