跳到主要內容

發表文章

位元移動與RGB

大家好,我是奶綠茶 什麼是位元的移動運算呢? 在 flash 裡,使用的符號是: >>(二個大於, 位元向右移) , > 1 這句的意思是說,8 的二進位數位, 向右移一個位元 8 (十進位) 的 二進位數值即是:1000 簡單對照一下: 左邊是十進位, 右邊是二進位 1 = 1 2 = 10 3 = 11 4 = 100 5 = 101 6 = 110 7 = 111 8 = 1000 所以 1000 , 向右移一個位元, 即是踢掉最右邊的那個值, 得到 100 就等於 4(十進位) 好理解的方法,就是 8 除以 2 那 8 >> 2 呢 就是右移二個位元, 踢掉最右邊的二個值, 得到 10 就等於 2(十進位) 好理解的方法,就是 8 除以 2 ,再除以2 反之: > 1 值 * 0.5 值 / 2 2. 直接得到整數 在 flash 裡, 元件的座標出現小數點的話, 會容易會糊糊的 如果此時想要得到某個數值的一半且是整數的話,就用 位元移動的算法吧 缺點 1. 運算優先權的順序 先乘除, 後加減, 這是不變的定律 但位元移動的優先權是最低的,所以是 先乘除, 後加減, 再做位元移動的運算 例: 8 >> 1 + 1 = 2 8 * 0.5 +1 = 5 8 / 2 +1 = 5 結果是不同的。 取RGB數值 大家好,我是奶綠茶 有個色碼為:var color:uint = 0x1199FF; 0x 指的是 16 進位, 一般都是用在色碼上 現在想取出這個色碼的 R, G , B值 當然不能用 String 來抓 這時候就要上位元移動和數位邏輯來製作。 一樣要先把 16 進位轉成 2 進位 偷懶一下,開啟小算盤, 就有轉換的功能了 2 進位為: 100011001100111111111(共24個位元) 所以我們可以知道一個色碼, 佔了 8 個位元 取出 R :就是把右邊的 16 個通通踢掉 var r:uint = color >> 16; 簡單吧 取出 G :因為 G 色碼是在正中間, 所以要先踢掉右邊的 8 位元 var g:uint = color >> 8; 再把...

FlashAS3 亂數不重複的方法

大家好,我是奶綠茶 亂數不重複的方法我想在很多時候都用的到 今天就來分享一下在 flash AS3 裡如何寫呢 假設要取 0 - 9 亂數不重複的3個數字 奶小茶我使用的方法是 1.先建立 0 - 9 的 Array 共 10 個元素 2.亂數排序(參考下方的 shuffle) 3.每次取出 Array 的第一個元素(或最後一個元素, 反正都已經亂排了), 並移除 4.重複第三個Step, 就完成啦。 var _array:Array = [] for (var i:int = pMin; i 感謝 Ticore 提醒 PS. 奶綠,文章標題有錯別字 "重複" -> "重覆" 打錯字, 扣五分

米蘭數位祝大家新年快樂

三歲以上,請由兒童陪同進入。 派對內有瘋狂舉動,請衛道人士慎入。 米蘭數位提醒您〔歡樂過量,有益健康〕 http://newyear2011.medialand.com.tw/ 這次專案奶小茶我主要是負責錄音的部份 使用 Flash Player 10.1 新的 Microphone, SampleData 事件來錄音 配合 ByteArray.org 提供的 WAVEncoder , 轉存成 wav 檔,然後再使用 MP3 Encoder 轉成 mp3格式 因為考量到之後在混音播放時的參數, 所以我是把原音的聲音檔存下來,之後在播放時 一樣使用 SampleData 來做混音的功能, 這次使用了加速播放和增加 delay

Android LinearLayout

大家好, 我是奶綠茶 LinearLayout: 子元素依序排成一列(或是一行), 就像是 Flex 裡的 HBox(或VBox) 我們在一個 LinearLayout (horizontal)裡,放置三個 Button , 其寬、高皆為 wrap_content 語法: <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#ff0000" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="A_btn" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="B_btn" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="C_btn" /> </LinearLayout> 結果: 如果現在想要讓三個 Button 能夠自動置滿整個 LinearLayout 寬度的話 可以使用 an...

Generate SWF

大家好,我是奶綠茶 在 flash 裡,想要透過程式 , 在 runtime 時產生一個新的 swf 檔 可以使用 swfassist 但無法自定類別或是屬性。 今天來介紹另一套類別: as3-commons-bytecode 這套類別可自定一個新的類別, 加入自定的屬性和方法,然後另存一個新的 swf 檔 但目前奶綠我試的結果,無法加入圖片或影格(如果有好心人事試出來的話,也請指教一下) 1. 先下載他的 類別包, 要載四個 swf as3commons-bytecode-0.9.swc as3commons-lang-0.3.1.swc as3commons-logging-1.2.swc as3commons-reflect-1.3.3.1.swc 都在他的 project 頁面裡。 測試 /** * @author milkmidi * @see http://milkmidi.blogspot.com * @version 1.0.1 * @date created 2010/12/27/ */ package { import flash.display.Sprite; import flash.events.Event; import flash.net.FileReference; import flash.system.ApplicationDomain; import flash.utils.ByteArray; import org.as3commons.bytecode.abc.enum.Opcode; import org.as3commons.bytecode.emit.IAbcBuilder; import org.as3commons.bytecode.emit.IClassBuilder; import org.as3commons.bytecode.emit.IMethodBuilder; import org.as3commons.bytecode.emit.impl.AbcBuilder; import org.as3commons.reflect.AccessorAccess; public class MyDemo1 extends Sprite { ...

FlashCS5 Physics

大家好,我是奶綠茶 在 Flash 裡要製作 Physics 效果, 大家該馬上連想到 Box2D 其實 Flash CS5 就有內建這樣的類別, 只是目前 Adobe 還沒公開 你可以在這個路徑下找到 Physics 類別 X:\Program Files\adobe\Adobe Flash CS5\Common\Configuration\ActionScript 3.0\libs 小弟我玩了一下,還滿好上手的, 不過沒有任何的文件, K 起來有點辛苦, 反正先完看看 參考網址: http://heftybyte.com/?p=36 線上Demo請點我 轉載請註明出處 /** * @author milkmidi * @see http://milkmidi.blogspot.com * @version 1.0.1 * @date created 2010/12/14/ */ package { import flash.display.DisplayObject; import flash.display.MovieClip; import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; import flash.geom.ColorTransform; import flash.geom.Point; import PffLib.*; import swc.Builder_mc; import swc.Circle_mc; public class CrashDemo extends Sprite { private var _world:World; public function CrashDemo() { var _physm:PhysicsManager = new PhysicsManager(this); _world = _physm.createWorld(); _world.enableCollisions(true); _world.enableFriction(true); _world.set...

Adobe 2011 Flash新技術整理

大家好,我是奶綠茶 整理了一下 Adobe Flash Player 之後的幾項新功能 1. 全新 3D API, 代號: Molehill 有影片有真相 http://www.youtube.com/watch?v=szaXvTsoeVs http://www.youtube.com/watch?v=tgwi0lWgX8w&feature=player_embedded http://www.youtube.com/watch?v=hCXxCD_GYTA&feature=player_embedded http://www.youtube.com/watch?v=9LAN5GHm5eM&feature=player_embedded http://www.youtube.com/watch?v=tgwi0lWgX8w&feature=player_embedded 以上看到的效果 , 將來都可以直接在 Web 上直接看到效果 和我們在用的 FlashPlayer10 3D , PV3D 不同的是 支援 GPU 硬體加速了 ( 備註 1) 目前該技術會先使用在 Adobe AIR 上 ( 備註 2) Adobe 也明確指出 , 會把該 3D 功能加入來未來的 Flash Player 上 , 其中包含手機版的 FlashPlayer 目前只有影片 , 沒有任何的技術文件可以看 , 所以將來 code 怎麼寫 設計師怎麼做 , 都還不知道 資料來源: http://labs.adobe.com/technologies/flash/molehill/ 2. Flash Player10.2 一樣支援了硬體加速的影片播放 http://www.youtube.com/watch?v=geK7geL3I40&feature=player_embedded 可以在 Web 上播放大畫面 , 高畫質的影片 , 不在向之前的版本一樣會 Lag( 備註 3) 支援客製化的 Mouse Cursors,( 這個不是那麼重要 , 現在技術也可以做到類似的效果 ) 支援 Multiple Monitors 影片播放 , 目前的 Flash Player 在滿版播放影片時 , 只能有一個畫面播放 現在司樣有多個...