Monthly Archives: March 2012

【發想】土砲 Game Boy Advance 側光照明

我一直想要為我的初代 Game Boy Advance 裝上照明,即使已經燒掉過一次保險絲,仍鍥而不捨。初代 GBA 的敗筆之一就是它的反射式 LCD,環境照明太暗時看不見,因此我無法假裝回到小時候那樣躲在棉被裡偷玩,Afterburner 前光套件已經停產,而蛇燈或 Halo Light 我又不甚喜歡;之前買 SMD LED 來裝,卻又發現以為已經買到夠小的 LED 了,但仍無法妥當裝置在 LCD 邊緣,這還沒有把 LED 的照明角度、照度、輝度、電氣特性等參數考慮進去,雖然如此,天性犯賤愛 DIY 改造維修自己設備的我,一直沒放棄這個念頭。

上上週修好一台 Game Gear 後,我從 GG 那枚用來反射燈光的「燈罩」聯想到一個新設計。說是新設計,其實是參考 Afterburner 要做一個土砲版。剛剛在關掉電燈的房間裡模擬一下我的想法,可行性應該不小,先把想法記錄下來。

用一到兩顆的 335 型 (4.0 * 0.8mm) SMD LED 做光源。因為沒有辦法做導光板,所以在 LCD 週邊那很細小的「框」,貼上鏡面貼紙,輔以補土製造凸鏡結構,讓照明角度僅有 120 度左右、缺乏導光板的 LED 照明,可以藉由反射涵蓋全 LCD 面板。為了減輕光源中央較亮的現象,在裝置 LED 時,需稍微仰角。

為了進一步減輕反射現象,可以為面板貼上 AR 膜,這可能是這件工程裡最昂貴的材料。

此外還要考慮亮度調節需用到的可變電阻,還有加工破壞邊框後的進塵、防塵問題。

[jQuery] $(document).ready() 與 $(window).load()

犯了自作聰明的錯,沒先分清楚兩者的差別,就一股腦兒地亂用。其實 .ready() 並不 ready(←本日 @jserv 大師語錄),.load() 也與我以為的恰好相反,是一切就緒(真.ready)後觸發的。

譬如 DOM 裡若有 <iframe>,則 $(document).ready() 觸發時並不保證 iframe 的嵌入來源一定就緒,此時存取當中元素,當下極有可能根本還沒這個物件可抓,就出包了。

參考:jQuery ready vs load – 黑暗執行緒

[jQuery] 自動增減 iframe 佔用版面高度 Grow & shrink the height of iframe automatically

筆記一下目前這不很優但至少能動的解。(幾無 JavaScript 經驗的我… Orz)

$(document).ready( function() {
  $('body').mousemove( function(e) {
    var document_height = $('#embed-iframe').contents().find('body').attr('offsetHeight');
    $('#embed-iframe').height(document_height + 32);
  });
});

適用場合:被拿來嵌入當成主要網頁內容的 iframe,其佔用版面高度未知(動態增減之類)的情況。(更白話一點講,就是把 iframe 當 frame 用。)