跳到主要內容

發表文章

目前顯示的是 3月, 2013的文章

ActionScript3.0 一些觀念(三)

1.函數 函數語句定義法: function testAdd(a:int, b:int):int{return a+b;} 函數運算式定義法: var test:Function = function(a:int, b:int):int{return a+b;} 1.1函數預設參數 function test(a:int = 3,b:int=2,c:int=1):void {  trace(a+b+c,a,b,c); } test();//6,3,2,1 test(9);//12,9,2,1 test(2,9)//12,2,9,1 2.靜態屬性和方法 static var 屬性:屬性類型; public static var 屬性:屬性類型 = 值; static const 屬性:屬性類型 = 值; (常數就要先付予值) static function 方法(參數):返回值類型{} public static function 方法(參數):返回值類型{} 透過實例來存取靜態成員會出錯 var foo:StaticSample = new StaticSample(); // new了foo實例 trace(foo.CLASSNAME); // 在StaticSample類別中有宣告一個靜態成員CLASSNAME foo.hello(); //方法也是一樣 3.構造函數 package { import flash.display.Sprite; public class SampleConstructor extends Sprite { public function SampleConstructor() { var foo:Foo = new Foo(); trace(foo); //輸出:[object Foo] var bar:Bar = new Bar("ActionScript3.0"); //輸出Bar's counstructor! //init executed! //可以看出Bar一建立時,就執行了構造韓數中的語句 trace(bar); //輸出:[object Bar] ...

ActionScript3.0 一些觀念(二)

1.三元if-else運算子(?:) (條件運算式)?(運算式2):(運算式3) 效果等同於 if(條件運算式){   return 運算式2; }else {   return 運算式3; } 2."as"、"in"、"is" is:判斷一個物件是否屬於一種型別 trace(9 is Number); //輸出true as:如果一個物件屬於一種型別,as就返回該物件。 trace(9 as Number); //9 trace(9 as Array); //null in:用來判斷一個物件是否為另一物件的Key或索引 var a:Array = ["q","w"."e"]; trace(2 in a); //true 陣列a含有索引2 trace(3 in a); //false 只有3個元素,沒有索引3的元素 3.迴圈 while,do while,for這三種是最常見的迴圈型式 while(迴圈條件) {    循環體    //改變回圈值 } for迴圈條件中 不一定只有一個變數值 例如:for(var a:int=2,b:int=12 ; (a+b)<50 ; a++,b++){....}(這樣也可) 4.break & continue break:跳出迴圈 continue:終止目前這一輪迴圈 for(var i:int=0;i<5;i++) { if(i==3)break; trace(i); //0,1,2(跳出迴圈)break } for(var i:int=0;i<5;i++) { if(i==3)continue; trace(i); //0,1,2,(跳出迴圈一次),4 continue } 5.break標籤與continue標籤 目的是假如遇上雙重回圈以上,子迴圈想指定父迴圈break或continue,就必須將每個break或continue後面加上標籤,之後想要哪一個圈跳出就直接寫上標籤名子即可。

ActionScript3.0 一些觀念

1.實值型 & 引用型 的區別: 簡單來說 實值型的就是一般資料型態直接定義他值或變數的型態 var a:int; var b:int = 2; var c:int = b; 以上都是實值型的。 var d:Array = new Array(); 這種就是引用型。 實值型無法改變她原先的值,然而引用型的就可以。 2.使用const宣告常數 在程式裡面程式設計師再做數學運算,可能會有一些變數不想讓他改變,讓他構成一個常數。我們就可以用const來宣告他。 const foo:Array = new Array(1,2); var a:Array = foo; a[0] = 100; trace(a); //foo = [100,2];不合法的 3.基礎資料型別 & 複雜資料型別 基礎資料型別:boolean , int , number , string .... 複雜資料型別:array , object... 4.關於陣列 在ActionScript3.0中,陣列裡面放的東西沒有型別限制,然而Java和C#則有這方面限制,要放相同資料型態的東西。 5.Object(物件) Object的成員有兩種:一種是屬性(Property),用來存放各種資料,一種是方法(Method),存放函數物件。 var foo:Object = {name:"abc", web:"www.abc"}; trace(foo.name); //abc var bar:Object = { hello:function(){ trace("Hello"); },ok:function():String {return "Ok";} }; bar.hello();//Hello trace(bar.ok());//Ok 動態添加屬性 var egg:Object = {}; egg.name = "土蛋"; egg.age = 26; trace(egg.age);//26 6.不同變數在Flash中會有不同的變數預設值 var a:int, b:uint, c:Number; var d:String, e:Boolea...

C# 初學

最近在學習C#程式語言,聽別人說這個語言可控制較為底層的功能,比ActionScript可以控制更多東西,FLASH當前台,C#的應用程式或式窗程式來當底層的東西,所以基於讓前後台的程式更加優化更有變化更豐富,所以我來自學C#一下,沒有人教應該會學很慢吧?! 今天來記錄一下應用程式裡面的Console.WriteLine()和Console.ReadLine(),讓程式可以接收使用者輸入(Console.ReadLine())並經過程式理來印出結果(Console.WriteLine())。 下列程式為"*" 正方形,你輸入數字他就呈現幾成己的正方形,由"*"排程的。 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication2 { class Program { static void Main(string[] args) { //輸入資料 do { //輸入資料 Console.Write("請輸入x 的值︰"); int x = int.Parse(Console.ReadLine()); //列印 空心正方形 for (int i = 0; i

巢狀迴圈

之前常聽人家說"巢狀迴圈" "巢狀迴圈" "巢狀迴圈" 原來就是兩個For 迴圈 真是會用但不知其名。 下列就是一個簡單的巢狀迴圈例子。  //程式可用在例如99乘法,假如把 j<10換成 j<i可以變成堆疊,去交叉比對  //應該吧 印象是這樣 for(var i:int=0;i

Interactive 101

GamePad:市價99元 戰斧悍將 光南賣很大 這是人機介面溝通的好東西,配合 JoyToKey (點字下載),可讓您配合您想要的電子媒材開關,數位訊號的為主,例如按鈕開關、磁簧開關、微動開關等等,送出訊號只有ON或OFF的媒材。 將GamePad拆開如下圖所示,其中主要的電路板,就是我們要焊接開關的地方。 將開關正極與負極焊接再指定的開關,當開關按下時,我們可以開啟(控制台)->(裝置和印表機)->USB GamePad(按右鍵)->(遊戲控制器)->(內容)。如下圖 當按下開關的時候,按鈕的數字會變紅色,表示迴路有通,偵測到你按下按鈕了。 而假如我們在程式中寫了接收鍵盤事件或者式滑鼠事件,來處發互動機制,我們就要搭配GamePad好朋友JoytoKey來設定按下按鈕幾就做什麼事。如下圖,來設定你要傳的東西。

ActionScript3.0 QRcode應用

QRcode是啥呢? 維基 說得很清楚! Q = quick, R = response,二維條碼,在這條碼裡面可以夾帶許多資訊,例如數字、字母、漢字等等。 那如何用FLASH去製作QRcode?以下有幾個步驟。 1.新增視訊 2.將視訊圖檔用BitmapData存下來 3.設定存檔擷取圖像 4.給外部AS比對圖檔(使用 zxing ,快去下載來用!) 5.自己製作屬於自己的 QRcode 6.GO! 步驟一:(程式碼) var camera:Camera = Camera.getCamera(); var videoDisplay:Video = new Video(300,300); camera.setMode(300, 300, 24); camera.setQuality(0, 100); videoDisplay.attachCamera(camera); addChild(videoDisplay); 步驟二: bmd = new BitmapData(300,300); bmd.draw(videoDisplay, null, null, null, null, true); 步驟三: function decodeSnapshot():void { videoDisplay.cacheAsBitmap = true; decodeBitmapData(bmd, 300, 300); bmd.dispose(); bmd = null; } 步驟四: function decodeBitmapData(bmpd:BitmapData, width:int, height:int):void { var lsource:BufferedImageLuminanceSource = new BufferedImageLuminanceSource(bmpd); var bitmap:BinaryBitmap = new BinaryBitmap(new GlobalHistogramBinarizer(lsource)); var ht:HashTable = getAllHints(); var res:Result = null; try { res = _myR...

ActionScript3.0 Math

*Math* 不管在任何程式語言,都是很好用的一個類別,別的程式語言可能不叫做Math。 而在ActionScript中有很多Math的方法,在這邊列出本身比較常用的Math方法。  Math.random(): random() 出來的數值介於0~1之間,所以我們家如要亂數在舞台某個位置的X座標可以這樣寫 MC.x = *Math.random()*400; //舞台大小400  Math.max(); 相對的有max就有min,在括號內可填入資料型態為Number的許多數值。 var test = Math.max(2,3,4,1,50,8,77); var test2 = Math.min(2,3,4); trace("test max:"+test); trace("test min:"+test2); trace出來 test max:77 test min:2 Math三角函數&PI Plangle = Math.atan2(ballY , ballX); angle=Plangle*(180/Math.PI); 上述例子中式綜合三角函數和PI圓周率的一個應用,其中所說的是Math.atan2取滑鼠移動的位置所擷取的X值與Y值做一個相除,回傳一個值。再運用圓周率去與剛剛香除取得的值相乘,取得角度。 flash官網中有許多的 math 介紹與方法。  FLASH關網:http://help.adobe.com/zh_TW/FlashPlatform/reference/actionscript/3/Math.html

AIR 平板開Webcam

最近朋友要使用平板掃描QRcode的程式,程式是運用actionscript3.0寫的,當然就點選AIR for Andorid檔案去做製作,製作過程就不用多說啦.........................(兩小時過去),終於到了發佈的時刻了。(檔案)->(AIR for Andorid發佈設定),一切OK,很開心的放到平板,結果是....如下圖所示。 白白白  白白白  超級白  攝影機沒出來.............................. 原因是:發佈設定中的權限 CAMERA選項要打勾 好啦OK了吧,結果放上去再試的結果,Webcam整個就像中邪似的模糊,非常有數位藝術碎形的FU(整齊方塊碎形)。 最後結果就是,平板的AIR,版本,不可以,太高,大概是要在2.6板,Webcam才不會有出現,我這種,狀況。= =浪費一個228和平紀念日的下午。

Flash import 外部SWC類別 巴拉巴拉應用

恩~像這種問題,用FlashDevelop就很容易解決,無論是import或是add 外部SWC檔案都很方便,但是用了FLASH,再編譯的時候,有時他就會出現找不到import的錯誤。如下圖 好啦,我們從頭做起吧,假如我們要import一些套件,首先我們就先創一個資料夾吧,叫做test好了。然後自己的FLASH檔也要放在test資料夾內。接著我複製com資料夾和core的SWC檔案,同樣也放置在test資料夾中。 接著我們點選(編輯)->(偏好設定)->(ActionScript)就會出現下圖 來源路徑點選+符號,接著點選資料夾圖像,將你的資料夾路進點選加入,如下圖 元件庫路徑與外部元件庫路徑點選-號旁邊的圖示,將檔案 如此一來我們要import外部的套件,或者是SWC檔,就都OK了,如下圖所示

讓你的部落格 程式碼 整整齊齊 乾乾淨淨

這幾天我看我的部落格程式碼越看越覺得她醜。所以我下定決心去尋找讓她變漂亮的方法,於是我找到了這位高手的部落格在介紹怎麼讓程式碼乾乾淨淨。他推薦用 SyntaxHighlighter 。目前最新的版本為3.0.83。 <參考資料:http://sharedderrick.blogspot.tw/2010/10/google-blogger-syntaxhighlighter-3083.html > 而我照著這位版主的方法做,一直都行不通,超奇怪的,因為它也是用Google bloger,我想說(怎麼可能阿),我嘗試了許久許久許久,都找不到辦法解決,結果我想說好吧,我把版面從動態範本改為最基本的範本,結果就OK了。所以結論是,Google bloger的動態範版,不能用這個(宇宙無敵霹靂程式乾乾淨淨票漂亮亮耳目一新)方法。 以下就是使用步驟: 前置步驟:先去關網下載她的 檔案包 ,接著,接壓縮之後,裡面有兩個資料夾中的檔案上傳到你的網路空間,我是上傳到我Google的協作平台(因為前人古人都是這樣做,方便咩),用意是第三步程式碼中有一些套件要直接連網址去讀取檔案,讀取檔案中的程式碼。 第一步:進去(範本) 第二步:點選(編輯HTML) 第三步:找尋程式碼中的<head>,並將程式碼貼在<head>中間</head>,貼上以下程式碼. 第四步:將你想要貼上的程式碼放在以下程式碼之中 程式放在這裡 第五步:完成 (PS. <pre class="brush: 這裡有對照表 "> )直接去改 Brush aliases所對應的程式語言名稱