1、stage.loaderInfo.url
这玩意将返回一个当前swf所在的路径的字符串,如果你做了一个flash,放在自己的网站上,而且不希望这个flash在自己网站以外的地方被播放,那么可以在初始化程序的时候写这样一句话:
if(String(stage.loaderInfo.url).indexOf("yourdomain.com") == -1){
trace("不在指定的位置运行,程序将退出");
//写一些退出程序的代码,fscommand或者return之类的,结束程序运行
}
(strage.loaderInfo还有一个重要的属性是parameters[paramString],用来获取网页传递给他的值)
2、stage.width/height 返回的是stage的子对象们占用的区域
stage.stageWidth/stageHeight 返回的是stage自己的实际尺寸
3、事件侦听器函数的写法
一般一直都是这样写的:
something.addEventListener(Event.SOME_EVENT,listenerFunction);
然后在别处定义这个函数:
private function listenerFunction(e:Event):void{
doSomething;
}
还有一种更简单的写法:
something.addEventListener(Event.SOME_EVENT,
function(e:Event):void{
doSomething;
}
);
这样写其实就是写了一个内嵌函数,它有一个好处可以获取当前作用域里的临时变量。
举个例子,比如我在某个游戏里生成了一道火光、一发子弹,然后定义了他们在需要消失的时候发出一个事件,告诉程序自己的动画已经播放完毕或者已经飞到舞台外面,程序侦听这个事件来对他们以及伴随他们的声音进行垃圾回收,但是火光和子弹都是某个函数作用域中的临时变量,无法在外部获取他们,则可以直接在写addEventListener的时候把垃圾回收的函数写进去。如果觉得这样写比较混淆,那就写成内嵌函数也可。
4、flash内嵌并读取纯文本文档(中文)
第一步:[Embed(source="路径",mimeType="application/octet-stream")]
private var TextContent:Class;
第二部:var txt:ByteArray = new TextContent();
var txtString:String = String(txt.readMultiByte(txt.length,"MS-DOS"));
readMultiByte的第二个参数是对应文本的编码方式,如utf-8等,不明的文档可以用word来查看它的编码。
5、用字符串获取一个对象的方法
getChildByName(对象名) as 具体的类型
它返回类型为DisplayObject,实际使用时用as转换到自己需要的类
如果要获取的不是一个显示元素,而是一个类属性或者变量,可以用this["变量名"]的方法,其作用相当于this.变量名,但是前者是用字符串实现,而字符串可以用其他字符串变量来替代,起到一个动态改变的效果。