沒穿方服

索引

顯示╱隱藏內文

我寫了一個名字很奇怪的 jQuery plugin,用途跟所謂的 JavaScript Typewriter(打字機效果)相似,就是把頁面內容逐字顯示出來。

這類效果曾經被大量濫用,所以現在很容易帶給用戶落伍的瀏覽體驗。至於我則是把目標放在 Web Game 或類似的網頁,做對話框的顯示之類的。

可以做這樣的事喔(只是擷圖)

理想狀況是用 HTML 寫好對話內容,然後套用 msgPlay(options) 就能得到包括斷句、分頁控制(也是先由 HTML 內容指定好)的效果。

具體檔案在 Google Code 下面的 msgplay,另外說明文件和範例在 msgPlay 首頁msgPlay Demo Page

目前最大問題是在 Opera 上播到元素節點之後就不會「逐字」顯示了,我還找不出原因Opera 9.5 已無此狀況)。還有就是 msgPlay 這個有點不知所謂的命名…… 我還真不知道該改成什麼。

有一份腳本,裡面全部字幕要個別做成 PNG 圖檔。於是美工一句一句改字、裁切、存檔……倒還能準時下班就是…… 我該不該告訴他,這種事可以用 Photoshop 的自動化作業 / 建立資料導向圖像批次處理呢?

其實多講也沒人聽啦,所以我做了一套示範檔案,有需要再看說明修改即可。檔案在這裡 (DivShare),功能如下:依照文字檔的內容,把多張圖片套上框、加上文字、指定檔名存成 PNG

套框,加上文字

直接使用步驟 :

  1. 開啟「資料導向圖像.psd」
  2. 選擇「檔案」-「讀入」-「變數資料集…」- 讀入「範例資料集.txt」 讀入範例資料集.txt
    • 編碼:Unicode (UTF-8)
    • 勾選「使用第一欄作為資料集的名稱」
    • 勾選「取代現有的資料集」
  3. 選擇「檔案」-「轉存」-「資料集作為檔案…」 將資料集轉存成檔案
    就會自動產生一堆 psd 檔了。
    • 資料集:全部資料集
    • 檔案命名:資料集名稱
  4. 選擇「檔案」-「自動」-「批次處理…」  
    修剪剛剛產生的 psd 檔,然後存成 PNG
    • 組合、動作:先在「動作」面板(Alt+F9)的「載入動作…」把 bootleq.atn 載入,然後選擇「修剪 -PNG」
    • 來源、目的地:選擇「資料夾」
    • 勾選「忽略動作的〝另存新檔〞指令」
    • 檔案命名:只要「文件名稱」+「副檔名」 即可

 

要改內容的話怎麼辦?

修改「範例資料集.txt」或「資料導向圖像.psd」。看懂下圖各變數在 psd 和 txt 之間的關係,再打開 Photoshop 的「影像」-「變數」看看怎麼設,應該就知道怎麼改了。變數跟圖層有對應關係

參考:Adobe 的說明 自動化作業 / 建立資料導向圖像,中文版 PDF 手冊在 http://help.adobe.com/zh_TW/Photoshop/10.0/photoshop_cs3_help.pdf

ie6 有時可以看到驗證碼 Opera 上的樣子

2008-07-01:不需要自己亂改了,Blogger in draft 已提供 Embedded comment form 來做這件事。中文改造法可參考 小Ken思路不轉彎: [Blogger in draft] 新功能:Embedded Comment Form和Star Ratings安裝
我的情形是在後台設定意見表單位置,然後找地方插入 <b:include data='post' name='comment-form'/> 就差不多了。

偶然逛到一個 blog: fREE2Software 發現他的留言表單就直接擺在頁面下方(首頁沒放,單篇文章才有),這配置我在 google 上找了很久都沒見過,現在才看到活生生、還會跑的。立刻看了他 blogger hack 分類下的文章,可惜暫時沒有寫到,於是自己試做,結果摘要:

  1. 寫成一般的 JavaScript,用修改模板的方式套用。
  2. 使用流程:按下留言按鈕後,才在頁面上顯示留言表單(iframe)。
  3. 未解決問題:ie 有時候看不到「視覺驗證」圖片。
  4. Firefox 頁面未完全載入時,開出來的 iframe 內容不保證正確。要修正的話,可以等頁面完全載入再用 JavaScript 改留言按鈕的 onclick 屬性。
  5. 表單還是很醜怪…… 所以我最後還是沒用它

試用方式:

  1. 在模板的 </header> 前面加上:
    <script type='text/javascript'><!--
      var iframeHereHeight = '210px';   // iframe 高度
      function tryCommentHere(a,href) {
        // 若已有 iframe, 只做展開/收合
        if( a.nextSibling && a.nextSibling.nodeName.toLowerCase()=='iframe' && a.nextSibling.src==href ) {
          if( a.nextSibling.style.display != 'none'  ) {
            a.nextSibling.style.display = 'none';
          }
          else {
            a.nextSibling.style.display = 'block';
          }
          return;
        }
        // 若沒有 iframe, 建立新的 iframe
        var newIframeNode = document.createElement('iframe');
        newIframeNode.setAttribute('src', href);
        newIframeNode.setAttribute('style', 'display:"block";');
        newIframeNode.setAttribute('margin', 'auto');
        newIframeNode.setAttribute('width', '90%');
        newIframeNode.setAttribute('height', iframeHereHeight);
        newIframeNode.setAttribute('frameborder', '1');
        newIframeNode.setAttribute('scrolling', 'auto');
      if( !a.nextSibling ) { a.parentNode.appendChild(newIframeNode); }
      else {
        a.parentNode.insertBefore( newIframeNode, a.nextSibling );
      }
    };
    //--></script>
  2. 然後找到「留下意見」連結的標記,類似 <a expr:href='data:post.addCommentUrl' expr:onclick='data:post.addCommentOnclick'>留下意見</a>,把 onclick 內容改為 onclick="tryCommentHere(this, this.href); return false;" 就行了。

拜託,哪有人線上改程式的

要測試是不會另外開一個 blog 喔

foobar2000 發佈了新版本 0.9.5,不過常被質疑的 Shuffle 行為還是沒變,狀況如下:

選擇 Shuffle (tracks) 播了幾首歌之後,回某一首重聽(一般是點滑鼠兩下),就會發現接下來播放的順序是固定的,跟剛剛聽過的一樣。理由可參考官網 FAQ,簡單講就是 Shuffle 只對播放清單做一次洗牌,所以如果要重聽某一首,然後再次打亂順序的話,有以下選擇:

  1. 重開 foobar2000
  2. 切換 Shuffle 選項(albums / folders / tracks)
  3. 一開始就不用 Shuffle,心存感激地改用 Random(0.9.5 把這選項加回來了)

以下作法沒用:

  1. 選擇 Playback 中的 Random,隨機跳下一首,再改回 Shuffle
  2. 選擇 Playback → Order 中的 Random,下一首後再改回 Shuffle

 

不過我 Order 改 Random 後卻發現 Previous(上一首)功能會失效變成停止,這樣太吃虧了(如果其他人都正常的話),所以最後還是放棄 Random,改用以下折衷法:

設定兩組快捷鍵做 Shuffle (folders) → Next 和 Shuffle (tracks) → Next

Shortcut 設定

從此還是用 Shuffle (tracks) 播放,順序重複的時候再打開 foobar2000 按下兩組熱鍵。缺點是:

  1. Preference 裡會有圖中的 conflict(衝突)警告,詳見 Hydrogenaudio 知識庫 文件 Avoiding_conflicts
  2. 必須叫出 foobar2000 視窗(熱鍵設 Global 好像會把第二個動作蓋掉)。
  3. 得分成兩組熱鍵(併為一個鍵 經測試沒效)。
  4. 最致命的是把 Shuffle 搞得跟 Random 一樣,會播到重複的曲子,這有道理嗎?