flash滑块组件用法

//hk.setSize(100,90); //设定组件坐标
hk.maximum=100;
hk.minimum=0;
hk.snapInterval=5;
//hk.tickInterval=10; //显示刻度
hk.liveDragging=true;//实时发事件
hk.addEventListener(“change”,cd);
function cd(event) {
trace(hk.value);
}

AS3数组去重(4种方法)

方法一:

var myArr:Array=[1,2,3,4,5,1,1,3,5,4,2,1,3,2,2,5];
trace(filterArray(myArr)); //输出:1,2,3,4,5
function filterArray(arr:Array):Array {
var tempArr:Array=[];
var l:uint=arr.length;
for (var i:uint=0;i<l;i++) {
if (tempArr.indexOf(arr[i])==-1) {
//在新的数组里搜索是否存在相同元素,如果不存在加进新的数组里
tempArr.push(arr[i]);
}
}
return tempArr;
}

==========================================================

方法二:

var arr:Array=["aa","bb","cc","dd","bb","cc","aa","bb","gg","aa","cc"];
function formatX(arr:Array):Array {
var obj:Object={};
return arr.filter(function(item:*, index:int, array:Array):Boolean{
return !obj[item]?obj[item]=true:false
});
}
trace(formatX(arr))

//该方法的实现过程是 对于”aa”来讲 obj["aa"]的值为undefined 而!undefined为true,就会返回该成员,然后将obj["aa"]的值设为true,下一次遇到obj["aa"]时,obj["aa"]的值为true,!obj["aa"]的值就为false,就不返回该成员。

================================================================================

方法一,普通遍历(这个方法还不完善,比如删除掉某个索引的值,那么后边所有项的索引全部减1,但是下一次遍历时仍然是从这个被删除的位置加1,这样就漏掉了一个刚刚因为索引值减少而占据在被删索引的项。比如[1,1,1,1,1,1,1]遍历后变成[1,1,1]而不是[1])

function myArray_Unique(myArray)
{
//var myArray=new Array("a","a","c","a","c","d","e","f","f","g","h","g","h","k");
var haha=myArray;
for(var i=0;i<myArray.length;i++)
{
for(var j=0;j<myArray.length;j++)
{
temp=myArray[i];
if((i+j+1)<myArray.length&&temp==myArray[i+j+1]) //如果当前元素与后一个元素相等
haha.splice(i+j+1,1); //然后就移除下一个元素
}
}
return haha;
}

方法二(ok)

function getUnique(someArray)
{
tempArray=someArray.slice(0);//复制数组到临时数组
for(var i=0;i<tempArray.length;i++)
{
for(var j=i+1;j<tempArray.length;)
{
if(tempArray[j]==tempArray[i])
//后面的元素若和待比较的相同,则删除并计数;
//删除后,后面的元素会自动提前,所以指针j不移动
{
tempArray.splice(j,1);
}
else
{
j++;
}
//不同,则指针移动
}
}
return tempArray;
}

方法三 正则表达式 — 适用于字符型数组

function getUnique2(A)
{
var str = "\x0f"+ A.join("\x0f");
while(/(\w+)[^\1]*\1/.test(str))
str = str.replace("\x0f"+ RegExp.$1, "");
return str.substr(1).split("\x0f");
}

方法四 关联结构

Array.prototype.unique = array_unique;
function array_unique()
{
var o = new Object();
for (var i=0,j=0; i<this.length; i++)
{
if (typeof o[this[i]] == 'undefined')
{
o[this[i]] = j++;
}
}
this.length = 0;
for (var key in o)
{
this[o[key]] = key;
}
return this;
}

关于fps类中的 FPS,MS,MEM,MAX

 FPS,MS,MEM,MAX,都指的什么

 FPS = frame per second 每秒播放帧数。

MS = millisecond 毫秒,在这里特指每帧间隔的毫秒数。

MEM = memory 存贮,当前使用的内存量

MAX = maximum 最大值,从打开程序开始最大占用内存量

as3中的进制转换方法_diary1113_新浪博客

一、toString(进制) 方法,如: 1. trace(new uint(51).toString(2)); // 输出二进制: 110011 trace(new uint(25).toString(16)); // 输出十六进制: 19 2. var quantity:Number = 164; trace(quantity.toString(16)); // 输出十六进制: a4 3. var pink:Color = new ColorTransform( ); pink.rgb = 0xF612AB; trace(pink.rgb.toString(16)); // 输出十六进制: f612ab 二、parseInt 函数 parseInt(expression_r:String, [radix:Number]) : Number 将字符串转换为整数。如果参数中指定的字符串不能转换为数字,则此函数返回 NaN。以 0x 开头的字符串被解释为十六进制数字。以 0 开头的整数或指定基数为 8 的整数被解释为八进制数字。有效整数前面的空白将被忽略,有效整数后面的非数字字符也将被忽略。 返回 Number – 一个数字或 NaN(非数字)。 trace(parseInt(”110011″, 2)); // Displays: 51 trace(parseInt(”19″, 16)); // Displays: 25 trace(parseInt(”17″, 10)); // Displays: 17 trace(parseInt(”A9FC9C”)); // NaN trace(parseInt(”017″, 10)); // Displays: 17 (not 15) //虽然”017″是以0开头(八进制),但是它后面有指定一个基数10,所以把”017″ 当成是十进制

as3 数组排序

示例
下面的示例创建一个新数组,并且按照 name 字段和 city 字段对该新数组进行排序。第一次排序使用 name 作为第一个排序值,使用 city 作为第二个排序值。第二次排序使用 city 作为第一个排序值,使用 name 作为第二个排序值。
[code]
var rec_array:Array = new Array();
rec_array.push({name: “john”, city: “omaha”, zip: 68144});
rec_array.push({name: “john”, city: “kansas city”, zip: 72345});
rec_array.push({name: “bob”, city: “omaha”, zip: 94010});
for(i=0; i

转:基于Stage3D的2D游戏加速框架:Starling介绍

原文链接:http://www.iamsevent.com/view.asp?id=19

自从去年Flash Player11发布以来,基于硬件加速的Flash应用开发话题就在各大媒体及Flash开发人员之间讨论。有了硬件加速功能,让Flash面临的最大问题——呈现性能得以被解决,有了硬件加速特性,Flash能让网页游戏更加向单机客户端游戏靠近,这让我们能够开发出更加绚丽,功能更加强大的游戏。

当然,硬件加速不仅限于3D内容,它还可以用来为我们传统的2D游戏进行性能的提高。Starling框架就是一个最新的,功能强大的2D加速框架,使用它,可以让我们Flash开发人员很简单地就享受到硬件加速带来的快感。下面是一段介绍此框架的文字:

Starling 是在 Stage3D APIs 基础上开发的一种 ActionScript 3 2D 框架(可用于 Flash Player 11 和 Adobe AIR 3的桌面)。 Starling 是为游戏开发设计的,但是你可以将它应用于很多其它的应用程序。 在不必涉及低级 Stage3D APIs 情况下,Starling 使得编写具有快速 GPU 加速功能的应用程序成为可能。

大多数 Flash 开发人员希望利用这种能力提高 GPU 的加速功能(通过使用 Stage3D 技术),而不必编写如此高级的框架和深入研究低级的 Stage3D APIs。 Starling 是完全基于 Flash Player APIs 而设计,并将 Stage3D(Molehill)复杂性抽象化。 因此每个人都能看到直观的程序。

先不管这段文字翻译得通不通顺,起码我们知道,使用该框架能让我们更加便捷地就用上Stage3D,享受硬件加速为我们的2D应用带来的强化。

在Starling的官方网站上有得下载一本《Introducing Starling》,这本电子书为我们介绍了Starling框架的方方面面,现在,我将此书翻译成了中文版,供大家下载阅读。

英文原版地址:www.iamsevent.com/UPLOAD/IntroducingStarling.pdf

中文版地址:www.iamsevent.com/UPLOAD/IntroducingStarlingChinese.pdf

你还可以阅读【AS3 Coder】任务五:Flash 2D游戏的第二春 这篇文章来用一个具体案例小试一下牛刀,熟悉一下Starling框架的使用方法,测试一下其呈现性能。

补充说明:若使用Flex 4.6SDK及以上版本,则可省略3D环境的配置过程(改playerglobal.swc, 加-swf-version=13编译器参数等等),但是必须保证你的Flash Player版本为11以上