I Love China

技术·人生

技术服务生活
繁體

Archive for 1月, 2008

[上海]雪景

星期日, 1月 27th, 2008

虽然下过好几次雪了,不过地上能有积雪还是第一次,不过还是拍晚了,今天上午一下雨,很多雪都化了,真奇怪,昨天下雪,今天居然下雨。但愿下周别下了,不然回家都困难了。唉
雪景图
(more…)

ActionScript3常见问题总结

星期四, 1月 24th, 2008

1、如何在子影片剪辑里调用在父影片剪辑定义的函数?
在影片剪辑MC1里定义了函数test(),MC1中有一个影片剪辑MC2,如何在MC2里调用MC1的test()函数
使用this.parent["test"]()
2、为什么NetStream.bytesTotal获取不了值?
只有当NetStream.bytesLoaded的值大于0时,NetStream.bytesTotal的值才是视频文件的真实大小,否则,它的值是4G。
3、trace出stage对象的所有属性、方法和事件(均要求附带数据类型)
AS Code

var xml:XML = describeType(this.stage);

trace('[Property]\n' + parse(xml.accessor, 'name''type'));
trace('[Method]\n' + parse(xml.method, 'name''returnType'));
trace('[Event]\n' + parse(getEventFormat(xml.metadata.(@name == 'Event'))'eventName''eventType'));

function getEventFormat ($list:XMLList):XMLList
{
    for each (var i:XML in $list)
    {
        i.@eventName = i.arg.(@key == 'name').@value;
        i.@eventType = i.arg.(@key == 'type').@value;
    }
    
    return $list;
}

function parse ($list:XMLList, $name:String, $type:String):String
{
    var str:String = '';
    
    for each (var i:XML in $list) str += i.attribute($name) + ' : ' + i.attribute($type).match(/[^:.]+$/) + '\n';
    
    return str;
}

4、强制垃圾回收
AS Code

try {
	new LocalConnection.connect('foo');
	new LocalConnection.connect('foo');
} catch (e:*) {
}

[无聊]好无聊啊!!!!!!!!!!!

星期三, 1月 23rd, 2008

无聊,非常的无聊!整天浑浑噩噩的,跟死了一般!,公司里天天关着窗户,憋死了。越到年关,工作越忙,每年都希望有个好的收获,而事情总是不尽如人意。明年要怎么办?还是个问题。不管怎么说,努力才是有意义生活的唯一途径。
这一年过得非常不舒服。找不到志同道合的人,找不到喜欢的大环境,郁闷!在匆匆而过的时光里,我只是在等待,在观望,在期盼,而没有主动努力,这是多么愚蠢和幼稚啊。放弃了一个有一个的瞬间,结果就是放弃了一年!
为了明天更好,今天一定要努力做些事情,哪怕是很小的事情,也一定要做。

[as2]BitmapData画流畅的线

星期一, 1月 7th, 2008

AS2当使用AS模拟画笔绘画时,可以使用MovieClip的moveTo和lineTo方法。如果需要橡皮擦的功能,那么可以把线的颜色设置成和底板一样,达到假橡皮擦的效果。但是如果要在给定的底纹基础上实现画笔添加花边、任意绘制时,橡皮只能擦掉绘制的颜色,不能覆盖底纹时,使用这个方法就不合适了。要想真正的擦掉绘制的线条,要借助BitmapData类。通过把橡皮擦经过的区域通过设置透明的方法,就可以达到效果。但是,模拟画笔又不太方便了,因为如果使用setPixel或setPixel32设置鼠标划过的点时总会出现断断续续,线条非常的不流畅。要画出流畅的线条,就需要再借助MovieClip的moveTo和lineTo方法。首先我们在一个MC上使用moveTo和lineTo画出流畅的线来,然后使用BitmapData的draw方法把效果拷贝到BitmapData中,这样看起来就是非常流畅的线条了。

利用批处理遍历文件夹下的某种类型的文件

星期四, 1月 3rd, 2008

::@echo off
rem 正在搜索...
for /f "delims=" %%i in ('dir /b /a-d /s "*.swf"') do call someAction
rem 搜索完毕
pause

其中someAction是你要执行的动作。上面的命令是遍历当前文件夹(包含子文件夹)下的swf文件。
把这些代码拷贝到文本文档中,保存为.bat文件,就可以运行了。
比如我要删除掉当前文件(含子文件夹)里的所有SWF文件,可以这么写
::@echo off
rem 正在搜索...
rem 删除文件
for /f "delims=" %%i in ('dir /b /a-d /s "*.swf"') do del %%i
rem 删除完毕
pause

[jsfl]批量导出文件夹下的FLA(含子文件夹)

星期四, 1月 3rd, 2008

JSFL Code

var flaList = [];
var len = 0;
var right = 0;
var error = 0;
var folderURI = fl.browseForFolderURL("选择目标文件夹.")var cDate = new Date();
// 日志文件名称
var outputName = [cDate.getFullYear(),cDate.getMonth() + 1, cDate.getDate(),cDate.getHours(),cDate.getMinutes(),cDate.getSeconds(),"log.txt"].join("_");
// 文件总数
var count = 0;
if(folderURI != null)
{
	outputName = folderURI +"/" +  outputName;
	compileFolder(folderURI);
	fl.trace("本次共编译[" + count + "]个文件,成功[" + right + "]个,失败[" + error + "]个\n");
	fl.outputPanel.save(outputName,true);
	fl.outputPanel.clear();
	fl.trace("请查看编译日志文件" + outputName);
	fl.openScript(outputName);
}
function compileFolder(folder)
{
	// 列举文件夹下所有文件
	var folderContents = FLfile.listFolder(folder,"files");
	// 获取其中的fla文件
	getFlaList(folderContents);
	if(flaList.length == 0)
	{
		//fl.trace("没有要编译的Fla文件\n");
	}
	else
	{
		var tLen = flaList.length;
		var swfName = ""
		fl.outputPanel.clear();
		for(var i = 0; i < tLen; i++)
		{
			compile(folder + "/" + flaList[i]);
			swfName = flaList[i].substr(0,flaList[i].lastIndexOf(".")+1)+"swf";
			if (!FLfile.exists(folder +"/"+ swfName)) 
			{ 
				fl.trace(">> ERROR: File did not compile correctly: "+ swfName);
				error ++;
				continue}
			else
			{
				right ++;
			}
		}
		count += tLen;
	}
	var subFolders = FLfile.listFolder(folder,"directories");
	if(subFolders.length > 0)
	{
		for(var i = 0; i < subFolders.length; i++)
		{
			compileFolder(folder + "/" + subFolders[i])
		}
	}
}
function compile(p_fileURI) {
	var doc = fl.openDocument(p_fileURI);
	doc.publish();
	fl.trace(">> 以上是编译[" + p_fileURI + "]的输出信息");
	fl.outputPanel.save(outputName,true);
	fl.outputPanel.clear();
	fl.closeDocument(doc,false)// close fla without saving
}
function getFlaList(listArray)
{
	var len = listArray.length;
	flaList = [];
	var str = "";
	for(var i = 0; i < len; i++)
	{
		str = listArray[i];
		if(str.indexOf(".")  == -1)
		{
			//无后缀文件
			continue;
		}
		var tmp = str.length;
		if((str.substr(tmp - 4).toLowerCase()) == ".fla")
		{
			flaList.push(str);
		}
	}
}