public static function log(txt:String):void
{
var date:Date = new Date();
var fileName:String;
fileName = "errlog-" + date.getFullYear().toString() + (date.getMonth()+1).toString() + date.getDate() + ".txt";
var file:File = File.applicationStorageDirectory.resolvePath(fileName);
var fs:FileStream = new FileStream();
txt = "\n\n--------" + date.toString() + "----------\n" + txt
fs.open(file,FileMode.APPEND);
fs.writeUTFBytes(txt);
fs.close();
}
废话不多说,直接看代码,将需要记录的日志,比如出错信息记录到程序数据文件夹,以日期命名,便于追踪信息。
SWFObject
SWFObject是一个用于在HTML中方面插入Adobe Flash媒体资源(*.swf文件)的独立、敏捷的JavaScript模块。该模块中的JavaScript脚本能够自动检测PC、Mac机器上各种主流浏览器对Flash插件的支持情况。它使得插入Flash媒体资源尽量简捷、安全。而且它是非常符合搜索引擎优化的原则的。此外,它能够避免您的 HTML、XHTML中出现object、embed等非标准标签,从而符合更加标准。
SWFObject在IE下的BUG
如果Flash里绘制的对象的宽高是自适应Flash的宽高的,那么,使用SWFObject来插入Flash在IE会导致一个问题,当这个Flash被缓存后,也就是第二次访问该页面时,在该Swf文件被加载时,获取到的stage.stageWidth和stage.stageHeight为0,绘制的对象也就看不到了。
阅读全文 »
单件模式用于限制类的实例化次数,使你在系统的任何位置都能访问到同一个实例;达到节省资源,管理方便的效果。
单件模式的应用
从一个XML文件加载程序的基本配置信息,只需要在Flash初始化的时候或者Air程序启动的时候执行一次即可,并且,在程序的整个运行阶段都只需要一个实例,并不需要建多个实例或者读取多次XML。
例如:用一个xml文件保存AIR应用程序配置信息,里面包含窗口起始位置,窗口的宽高。
<setting>
<window x="100" y="100" width="300" height="400">
</setting>
单件模式的实现
package cn.foxling.test
{
public class Setting
{
private static var _instance:Setting;
public function Setting(enforcer:SingletionEnforcer)
{
}
public static function getInstance():Setting
{
if (Setting._instance == null) Setting._instance = new Setting(new SingletionEnforcer());
return Setting._instance;
}
}
}
class SingletionEnforcer {}
阅读全文 »

经过一段时间的辛苦奋战,魔嘀终于发布1.0了,所有的代码全部重写,增加了一些常用的功能,并请@ZK设计了全新的UI,现在的魔嘀帅多了。
魔嘀下载页面:http://app.foxling.cn/modi/
但现在还有许多细节都需要优化,时间有限,只能一步一步地更新了~
如果发现了什么BUG,或有什么好的建议,在这里留言吧,不一定一一回复,但我都会整理记录起来的,并且在后面的版本里陆续实现,欢迎在嘀咕网跟随我,一起交流。
AIR应用的通病,内存消耗较大,所以,建议平时不用时最小化吧,最小化后内存占用会比较少,8M-12M左右,我也在不断地优化代码,寻找BUG,使魔嘀的内存占用量能维持在一个比较稳定的水平。

版本更新
元数据标签是一种特殊的标签,它在代码中的作用就是向编译器提供如何编译程序的信息。
实际上,这些标签并没有被编译到生成的SWF文件中,而只是告诉编译器如何生成SWF 文件。
Flex中的元标签列表如下:
| 标签 |
描述 |
| [ArrayElementType("elementType")] |
在数组中定义所有允许的数据类型。 |
[Bindable] [Bindable(event="eventname")] |
声明一个属性可以在代码中使用数据绑定表达式,Bindable可以用来绑定简单数据类型、类、复杂数据类型以及函数。 |
| [DefaultProperty("propertyName")] |
定义组件在MXML中使用时的默认属性的名称。 |
| [Deprecated] |
标识一个类或类的元素是不推荐使用的,这样编译器能认出他并在被调用时给出一个警告信息。 |
| [Effect] |
定义MXML的特效属性名称。 |
| [Embed] |
在编译时导入 JPED,PNG,SVG 或 SWF文件。也会导入SWC文件的图片资源。他的功能等同于MXML中的 @Embed 语法。 |
| [Event] |
定义MXML的事件属性的名称和类型。 |
| [Exclude] |
使 Flex Builder 的标签检查器忽略类元素。语法类似 [Exclude(name="label", kind="property")] |
| [ExcludeClass] |
是 Flex Builder 标签检查器忽略类。这相当于ASDoc中的 @private 标签。 |
| [IconFile] |
定义一个图标文件,使组件在Adobe Flex Builder的插入面板中以该图标显示。 |
| [Inspectable] |
定义一个属性的列表,供组件使用者在 Flex Builder 的的属性提示和标签检查中使用。同时也定义了属性的可用值。 |
| [InstanceType] |
指定了 IDeferredInstance 中的,属性接受的数据类型。 |
| [NonCommittingChangeEvent] |
定义一个事件过渡触发器。 |
| [RemoteClass] |
把一个ActionScript对象映射到Java对象。 |
| [Style] |
为组件的样式属性定义一个MXML标签属性。 |
| [Transient] |
当一个 ActionScript 对象被映射到Java对象后,被该标签标识的属性,会从发送到服务端的数据中忽略掉。 |
阅读全文 »