I Love China

技术·人生

技术服务生活
繁體

Archive for 2月, 2008

[as2]Flash中退出按钮代码的写法

星期六, 2月 2nd, 2008

AS2SWF中设置退出按钮的目的是当用户用鼠标点击的时候退出,但是播放SWF的环境并不一样,为了能达到同样的效果,当点击退出时,执行如下代码:
AS Code

switch (System.capabilities.playerType.toLowerCase ())
{
case "standalone" :
	fscommand ("quit"true);
	break;
case "external" :
	flash.external.ExternalInterface.call ("sendQuit");
	break;
case "plugin" :
case "activex" :
	flash.external.ExternalInterface.call ("window.close()");
	break;
}

就是根据播放器的类型来分别处理。
需要注意的是:
1、当在网页中播放时,需要在服务器上查看网页或者添加到信任区域才能有效,否则会弹出安全警告。
2、当包含在其他程序中时,需要处理退出消息sendQuit.

[as2]AS2中不支持../

星期六, 2月 2nd, 2008

AS2在使用loadMovieNum加载文件时,有时需要相对路径来写,比如用到../指向当前文件的上一级,当在Flash创作环境下测试的时候是有效的,但是离开这个环境就无效了。为此,我们用处理一下这个路径:
AS Code

// 以下是从Command命令中添加的代码
// ++++++++++++++++++++++ 加载替代函数 ++++++++++++++++++++++++
// @param		str:String 加载的文件名
// @param		depth:Number 加载的深度
// @return		Void
function loadFile (str:String, depth:Number):Void
{
	depth == undefined ? depth = 0 : null;
	var _URI:String = this._url;
	var catalog:String = _URI.substr (0, _URI.lastIndexOf ("/"));
	while (str.substr (0, 3) == "../")
	{
		str = str.substr (3);
		catalog = catalog.substr (0, catalog.lastIndexOf ("/"));
	}
	catalog += "/";
	if (true == _global.loader)
	{
		this._parent.loadSWF (catalog + str);
	}
	else
	{
		loadMovieNum (catalog + str, depth);
	}
}

使用如下代码测试
AS Code

loadFile("../../d.swf")
loadFile("../d.swf")
loadFile("d.swf")

输出如下信息
Error opening URL "file:///C|/DOCUME%7E1/s520/d.swf"
Error opening URL "file:///C|/DOCUME%7E1/s520/LOCALS%7E1/d.swf"
Error opening URL "file:///C|/DOCUME%7E1/s520/LOCALS%7E1/Temp/d.swf"

说明这个函数是有效的。

[Flash CS3]Flash CS3无法导出SWF的解决办法

星期五, 2月 1st, 2008

flashCS3很多人使用龙卷风破解版的Flash CS3,在Ctrl+Enter测试影片时遇到进度条跑了一圈后什么都没有的的现象。我遇到了这个问题,网上的说法是使用了中文字体造成的,也就说静态文本使用中文字体设置了加粗或倾斜,然后未选使用设备字体就会这样。但是如果要更改很多文本的设置是比较麻烦的。今天尝试多次终于找到一个方法
1、卸载所有版本的Flash CS3
2、将C:\Program Files\Common Files\Adobe文件夹下除了Acrobat之外的文件夹全部删除
3、安装官方试用版的
4、安装英文破解版
5、卸载试用版
6、安装龙卷风破解版

这样就OK了。第4步是否必须未验证。因为安装试用版和卸载耗费时间挺长的。