第九步:創(chuàng)建數(shù)列柱
回到舞臺(tái),從庫中選取些方塊,并將它們擺成我們要用的樣子。可以按下面的樣子擺放。
第十步:添加些元素
可以按你所需添加些文本標(biāo)簽和線條,使它們更易于理解。
第十一步:設(shè)實(shí)例名稱
在屬性面板中為每一個(gè)方塊設(shè)實(shí)例名稱,它們的名字如下所示:
第十二步:將FLA連接到一個(gè)文檔類
進(jìn)入屬性面板,將類名設(shè)為”Main”,這個(gè)是下一步中我們要?jiǎng)?chuàng)建的類。
第十三步:創(chuàng)建文檔類
完成了舞臺(tái)部分后,我們現(xiàn)在可以開始寫代碼了。首先創(chuàng)建一個(gè)新的ActionScript3.0文件,保存為”Main.as”
將下面的代碼添加到文件中:
package {
import flash.display.MovieClip;
public class Main extends MovieClip
{
public function Main()
{
}
}
}
我們開始要先導(dǎo)入一些必要的類,將下面的添加到包聲名后面。
import flash.display.MovieClip;
import flash.utils.Timer;
import flash.events.TimerEvent;
import com.greensock.*;
import com.greensock.easing.*;
下面我們將定義些公有變量,將下面的添加到類聲名后:
public var clock:Timer=new Timer(1000);
public var date:Date=new Date();
public var hr:int;
public var min:int;
public var sec:int;
public var bits:Array;
這時(shí)會(huì)自動(dòng)創(chuàng)建一個(gè)新Date對象將其設(shè)為當(dāng)前時(shí)間。
好了現(xiàn)在來添加讓時(shí)鐘啟動(dòng)的代碼。這些是在Main函數(shù)里面的。
//通過這些來為每個(gè)變量賦初值
sec=date.getSeconds();
min=date.getMinutes();
hr=date.getHours();
clock.start();
clock.addEventListener(TimerEvent.TIMER, setTime);
每一秒都會(huì)調(diào)用這個(gè)函數(shù)
private function setTime(e:TimerEvent):void
{
date=new Date();
sec=date.getSeconds();
min=date.getMinutes();
hr=date.getHours();
}
這個(gè)函數(shù)將把十進(jìn)制數(shù)轉(zhuǎn)化為二進(jìn)制數(shù),這些數(shù)過會(huì)會(huì)用到。
private function dec2bin(dec:int, length:int):Array
{
var bin:Array = new Array();
while((dec/2)>0) //注意這兒和 “while((dec/2)>=1)”的效果一樣
{
bin.push(dec%2); //dec%2是dec除以2后的余數(shù)。 3%2=1; 4%2=0; 5%2=1; 6%2=0; 等等
//也就是看這個(gè)數(shù)是偶數(shù)還是奇數(shù)
dec=dec/2; //由于dec是整形數(shù),所以會(huì)得到一個(gè)近似數(shù)
}
while(bin.length<length) bin.push(0); //這只是用0來填充數(shù)組
return bin;
}
所以,調(diào)用 函數(shù)dec2bin(13, 4)得到的是 [1,1,0,1].
這個(gè)函數(shù)將傳一個(gè)十進(jìn)制數(shù)并用dec2bin()函數(shù)將其轉(zhuǎn)化為我們將要用的二維數(shù)組
private function converter(num:int):Array
{
var st:String=String(num);
if (st.length==1) st=’0′+st;
var fDigit:int=int(st.charAt(1));
var sDigit:int=int(st.charAt(0));
var fColumn:Array=dec2bin(fDigit,4);
var sColumn:Array=dec2bin(sDigit,3);
var result:Array=fColumn.concat(sColumn);
return result;
}
參與討論和交作業(yè):http://www.missyuan.com/viewthread.php?tid=457631