以前学 AS2.0 时, 就是喜欢一点一点地积累收藏, 方便使用..... 以前没有学过编程, 所以只能把需要的功能记下来...是死记的那种..... 现在就把其中的小功能 ( 也可以说是我的小经验吧 ) 发出来和大家分离一下....虽然说 AS3.0 已经诞生了( 本人也已经转向AS3 ).., 但相信也有相当一部分人还是用AS2.0的.......
下面就献丑下。。。嘻嘻..... ( 高手们别笑哦.... )
=================================================
【MC附加的层问题】
this.attachMovie("元件3","mc3_1",this.getNextHighestDepth()); //加到当前场景
------------------
【Flash里打开Html对话框】
on (release) {
getURL("javascript:NewWindow=window.open(\'http://www.RiaHome.cn\',\'_blank\',\'width=480,height=200,left=400,top=200,toolbar=No,location=No,scrollbars=No,status=No,resizable=No,fullscreen=No\'); NewWindow.focus(); void(0);", "");
}
------------------
【解决中文乱码】
System.useCodepage = true;
------------------
【间隔函数】
setInterval()
在播放 SWF 文件时,每隔一定的时间,就调用函数、方法或对象。可以使用间隔函数更新来自数据库的变量或更新时间显示。
function a(arg) {
arg = random(10);
trace(arg);
}
setInterval(a, 10,[函数a的参数]);
------------------
【按钮组的循环】
function j(Num, btnName, mcName) {
for (i=1; i<=Num; i++) {
this[btnName+i].k = i;
//给按钮增加属性k,记住它对应MC的序号i
this[btnName+i].onRelease = function() {
_root[mcName+this.k]._alpha = 0;
//this.k就是"想象的 i"
};
}
}
j(3, "btn", "mc");
------------------
【条件判断的简化】
( ) ? :
a = 11345145645634;
b = 2345636;
c = (a>b) ? a : b;
trace(c);
------------------
【有趣的数组读取】
[一]
my_array = new Array();
j = 10;
for (i=0; i<11; i++) {
my_array[i] = j;
j++;
}
for (i=0; i<my_array.length; i++) {
trace(my_array[i]);
}
[二]
my_array = new Array();
my_array = ["a", "b", "c"];
for (i in my_array) {
trace(my_array[i]);
// 访问时是按倒序访问的.
}
技巧-公共子表达式消除:
for (var i = 0; i<5; i++) {
var mc = this["mc"+i];
mc._visible = true;
mc._x = 10;
mc._y = 10;
mc._alpha = 10;
}
------------------
【元件组的动态访问】
i = 1;
while (i<4) {
eval("mc"+i)._alpha = 0;
i++;
}
------------------
【创建对像】
aa = new Object();
//添加aa的属性dd
aa.dd = "aa的属性";
//定义函数bb()
function bb() {
trace("OK");
}
//分配bb()为aa的方法cc
aa.cc = bb();
//调用aa的方法cc()
aa.cc();
//测试aa的属性dd
trace(aa.dd);
------------------
【实现锁定_root】
_lockroot = true;
//这样可以使被加载的swf与加载者各有各的_root
------------------
【获取随机整数】
示例
下面的示例输出 4 和 11(包含)之间的 100 个随机整数:
function randRange(min:Number, max:Number):Number {
var randomNum:Number = Math.floor(Math.random() * (max - min + 1)) + min;
return randomNum;
}
for (var i = 0; i < 100; i++) {
var n:Number = randRange(4, 11)
trace(n);
}
------------------
【不确定数参数】
flashl里面有一个arguments类,他是所有参数的数组
function test()
{
var len:Number = arguments.length;
for(var i:Number = 0; i < len; i++)
{
trace("参数类型:" + typeof(arguments))
trace(arguments)
}
}
test(100,"www.RiaHome.cn");
trace("=====第二次调用,参数不同=====");
test("soda",22,"flash开发工程师");
------------------
【终极快速激活所有IE ActiveX Object】
<script src="javascript:'document.body.innerHTML+=\'\'';"></script>
===================================================