二分之一

Just Jason's Blog

as3

重温了一下AS3,写了一个flash版“推箱子”游戏

首先上传送门:http://tuijs.com/Sokoban/

11年时就看过AS3,但工作中JS为主,几乎快忘了。最近工作中又要用到,重温了一下,上周末花了两天写了一个flash版的推箱子,算是交作业吧!

PS:以前用JS写过,传送门:http://www.2fz1.com/demo/

/assets/upload/20140318161507.png

【游戏素材来源于网络,仅用于学习编程用途。】

Read more »

Starling版本的Flash概要分析类:Stats

一睹为快,Stats运行时的效果如上。这个Stats类可以帮你统计出(由上至下):

当前帧频/预期帧频

一帧运行所需时间(毫秒)

当前内存占用

历史最高内存占用

之前一直用CPU版本的,刚才找到一个可运行在Starling框架上的版本,也就是运行在GPU下的Stats类。

Starling版本:http://www.kouma.fr/files/stats.zip (出处:http://forum.starling-framework.org/topic/starling-port-of-mrdoobs-stats-class

传统的CPU版本:https://github.com/mrdoob/Hi-ReS-Stats

Read more »

AS3 Vector数组的多种声明及添加项方法

我们知道:和JS一样,ActionScript3.0中的Array数组可以存放多种类型,甚至在同一个Array数组中,可以同时存入String,Object,Number…,但其实我们在实际开发中,通常一个数组中所保存的元素类型都是一致的,为了改进这种情况下的效率,AS3.0新增了一个Vector类。

它强制要求数组中的每个元素都必须是同样的类型,从而提高了数组的运行效率。

//方法一
var list:Vector.<int> = new Vector.<int>();
list2.push(1, 2, 3);
//方法二          
var list:Vector.<int> = Vector.<int>([1, 2, 3]);
//方法三  
var list:Vector.<int> = new <int>[1, 2, 3];

相关测试表明,Vector比Array在运行效率上能快一倍左右,所以,对于同类型的数组,建议使用Vector.

Read more »

js容易被忽略的基础:函数语句和函数表达式的区别及与AS3的区别

在JS中,定义函数有两种方式,函数语句和函数表达式;

函数语句定义:

function testB(){
    console.log("B");
}

函数表达式定义:

var testA = function(){
    console.log("A");
}

1、作用域提升

在定义位置上,函数语句的方式定义,会将其作用域名提升至顶端,而函数表达式定义不会,必须先定义后执行。看下面的例子:

testB();
testA();
var testA = function(){
    console.log("A");
}
function testB(){
    console.log("B");
}

testA无法执行,因为找不到定义的函数,要想testA执行,必须将它的函数表达式定义放到执行时的前面。

2、this关键词的指向

在JS中,函数语句定义和函数表达式定义,this关键词都会指向其运行时的引用,两者没有区别。 而在AS3中,函数语句定义中的this始终指向当前函数定义的域,而函数表达式定义中的this会随着附加对象的变化而变化,且可以使用call()apply()改变其this的指向。

这一点区别非常重要,特别对于js和as同时使用的前端开发来讲,掌握两者的其础知识,能避免你犯错!

Read more »