[分享] Asus RT-N10+刷DDT-WRT之不專業分享文

我原本就有一顆無線AP了
是PCI的BLW-54MR

掛BT很多年機器也不會掛點
還蠻穩定的 

 

因為搬家,家裡隔間改變了

那台無線AP的訊號涵蓋有限(被二個鐵門和大牆檔住)

所以就去光華尋找一顆無線AP了

無意中找到這台Asus RT-N10+

 

網路上說,原廠rom很好設定

特色是

設定簡單,有三種mode可以選

傳統無線分享器、純無線AP、無線repeater

 

  1.  傳統無線分享器,不是我要的功能,所以跳過 (一般人都會只用這功能)

  2.  純無線AP,看起來我能用,WAN port插上網路線,收到dhcp封包,可以上網了
    但有線lan介面完全廢掉,失敗

  3.  無線repeater功能,只要是無線訊號都可以延伸,

不限定牌子跟款式,這功能真的很威

設定方式還蠻簡單的,接線連到web管理介面,

選好要放大的無線訊號

設定完成後,就可拔線,整台擺到你想擺的地方

最好是算一下入射角和反射角(開完笑的啦)

就是repeater擺的位置最好要有ok的無線訊號

才能去repeat傳到更遠的地方

我喬了幾個位子之後,無線連線訊號滿格,但就還是不能上網
(沒有足夠repeat的訊號)

所以先暫緩

 

 

目前看到的缺點

存檔要存很久,而且有時候會斷線

有事沒事呈昏睡狀態(像是當機一般)

要透過光碟附的尋找介面去尋找AP的IP

因為他有可能會跳

 

 


網路上再找找

這台是網友們口中說的CP值很高的ㄧ台強大router

怎麼說呢?

因為有第三方rom加持,DDT-WRT

解除封印

 

DDT-WRT這韌體我之前就有聽過

當紅的機子是DLINK DIR-300系列

便宜router,刷過以後變成高檔router

之前我也想嘗試,只是PCI系列的產品一概不支援

只有殘念

 

 

 

————————————————-

這次真的讓我見識到 DDT-WRT的威力了

我刷的版號

DD-WRT v24-sp2 (03/17/11) std – build 16454

 

可以從eko大大的最新版下載

在router database中可是沒有這版低

 

網址在這

http://www.dd-wrt.com/site/support/other-downloads?path=others/eko/BrainSlayer-V24-preSP2/12-24-10-r15962/Asus-RT-N10PLUS/#

(直接打網址進去好像看不到我看到的頁面,進去點BrainSlayer-V24-preSP2然後照以下路徑點選)

Path: Downloads › others › eko › BrainSlayer-V24-preSP2 › 2011 › 03-17-11-r16454 › Asus-RT-N10PLUS

2011-03-29 01 27 09.png  

 

怎麼刷?

真的有夠簡單

裡面有二個檔

factory-to-ddwrt.trx 是給原廠韌體刷成ddwrt使用

asus-rt-n10plus-ddwrt-webflash.bin  是給已經是ddwrt升級用的

 

所以當然是選factory-to-ddwrt.trx

在原廠畫面直接按更新韌體的功能上傳factory-to-ddwrt.trx這個檔

然後就靜待你的AP不會變成黑磚

 

 

等待値到顯示完成還不會跳下一個畫面的時候

手動刷新頁面就會看到摟

刷回去原廠韌體,亦然

擁有這麼好的韌體,除非需要送修

應該不會有人想刷回去吧 ㄎㄎ

 

 

裡面有很強大的功能,我還沒有全部玩會

聽說還有指令列模式(像是在設定cisco裝置類似)

我大概說幾個功能好了

除了NAT、有虛擬伺服器外(防火牆例外)

 

還有多個DHCP主機設定其範圍

內建VPN伺服器(PPTP,OpenVPN可能要刷另一版的rom)

vlan tagging管理,橋接bridge設定

防火牆VPN Passthrough設定

BGP、RIP2路由功能(這種功能我只在教科書上看過而已)

網路喚醒,定時重開機設定

Qos、Upnp設定

還有監控圖表

……………..等等很多等你去發掘

2011-03-29 01 45 30.png  

光是看到VPN Server就夠強大了吧

相同的功能大約要3xxx多的router才有呢

 

重點是,有繁中介面喔~~~

找到Administration -> Management

卷軸往下拉

接近尾巴有個Language Selection
就可以調整了

2011-03-29 01 53 14.png  

2011-03-29 01 28 51.png   

 


如何將WAN當做普通LAN port使用?

原文網址:

http://www.dd-wrt.com/wiki/index.php/WAN_Port

 

Note: Steps are true for firmwares current as of the author date of this article. v2.4, post SP2 firmwares. These steps were done with build 12307 (2009 06 17), widely regarded as stable. Other firmware builds of DD-WRT have the same or very similar steps.

  1. Open up the Web Interface to your DD-WRT Device
  2. Set WAN ‘Connection Type’ to Disabled.
  3. Down the Basic Setup page, the option WAN Port appears. Check the box ‘Assign WAN Port to Switch’.
  4. Save/Reboot

The WAN port is now the same as the other LAN ports.

 

  1.  先開啟網頁介面

  2.  到Basic Setup -> WAN Connection Type,設定成Disabled

基本設定 -> WAN 連接類型,設定成「關閉」

  1.  然後捲軸往下拉,有個

Assign WAN Port to Switch (將 WAN 端指定給交換器)  的勾勾,把它勾起來

  1. 存檔重啟機器

 

————————————————-

 

 

文後附記:

我想  RT-N10 plus  和  RT-N10

有點差異吧

所以我沒有刷 RT-N10  的韌體 (我拿的是RT-N10 plus)

理當刷機失敗會進入救援模式,聽說就可以反刷回去

心臟夠強的人可以試試

有成功再告訴我好消息

 

http://blog.xuite.net/librastw/3C/37393327 (這篇是給RT-N10的,非RT-N10 plus)


http://5i01.com/topicdetail.php?f=110&t=2005151&last=26730263

http://www.dd-wrt.com/wiki/index.php/What_is_DD-WRT%3F

http://5i01.com/topicdetail.php?f=110&t=1875971&p=1 (這篇是給DIR-300的)

http://tw.network01.net/modules/newbb/viewtopic.php?topic_id=129&forum=6

[Android] 多執行緒-Handler和Thread的關係

要寫Android,難懂的多執行緒一定要給他搞懂
在Android當中,如果做超過5秒被系統強制關閉
(收到Application not Responsed簡稱ANR)
onCreate()如果做超過10秒就會跳ANR

所以繁重的事情不能在onCreate()裡頭做

有沒有解決辦法?? 就是Thread 中文叫執行緒

搞不清楚?

 

用現實的例子說明好了

 

Thread ==>  做工的工人 

Runnable ==> 要做的工作事項 (工作說明書)

 

一般的Thread,工人請他來,指定工作給他做。做完就收工閃人回家

有一種Thread,他的性質比較不一樣

算是包月的那種特約駐點工人吧,要簽合約的(笑)

上班時間跟公務員一樣,就算沒事情做也要standby在那裡

這種工人他會有個經紀人幫他管要給他作的事

 

HandlerThread ==>  特約工人

Handler ==>  特約工人的經紀人

———————————————————————————-

回到程式,一般來說,Activity 執行的時候

會有個 UI Thread 或叫 main Thread
就是你程式本身原有的執行緒,管著畫面呈現…..等等事物

main Thread (或叫UI Thread)就是你的程式進入點

 

而main Thread,他也是個HandlerThread

可以給他一個Handler,做接收訊息之用

———————————————————————————-

(以下程式碼只是示意,要表達程式碼的邏輯概念

實際上在運行的時候,模擬器的畫面不會產生任何的變化

可以把它當範本使用,稍加修改)

 

 

package com.J_Test.HandlerAndThread;

 

import android.app.Activity;

import android.os.Bundle;

import android.os.Handler;

import android.os.HandlerThread;

 

publicclass main extends Activity {

    /** Called when the activity is first created. */

    //找到UI工人的經紀人,這樣才能派遣工作  (找到顯示畫面的UI Thread上的Handler)

    private Handler mUI_Handler = new Handler();

    //宣告特約工人的經紀人

    private Handler mThreadHandler;

    //宣告特約工人

    private HandlerThread mThread;

 

    @Override

    publicvoid onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

 

       

        //聘請一個特約工人,有其經紀人派遣其工人做事 (另起一個有HandlerThread)

        mThread = new HandlerThread(“name”);

        //Worker待命,等待其工作 (開啟Thread)

        mThread.start();

        //找到特約工人的經紀人,這樣才能派遣工作 (找到Thread上的Handler)

        mThreadHandler=new Handler(mThread.getLooper());

       

       

        //請經紀人指派工作名稱 r,給工人做

        mThreadHandler.post(r1);

    }

   

    //工作名稱 r1 的工作內容

    private Runnable r1=new Runnable () {

        publicvoid run() {

            // TODO Auto-generated method stub

           

            //………………………..

            //做了很多事

           

            //請經紀人指派工作名稱 r,給工人做

            mUI_Handler.post(r2);

           

        }

    };

    //工作名稱 r2 的工作內容

    private Runnable r2=new Runnable () {

        publicvoid run() {

            // TODO Auto-generated method stub

           

            //………………………..

            //顯示畫面的動作

           

        }

    };

 

    @Override

    protectedvoid onDestroy() {

        super.onDestroy();

       

        //移除工人上的工作

        if (mThreadHandler != null) {

            mThreadHandler.removeCallbacks(r1);

        }

        //解聘工人 (關閉Thread)

        if (mThread != null) {

            mThread.quit();

        }

    }

}



—————

2011.10.17更新新版,請前往:

http://j796160836.pixnet.net/blog/post/29895257

[Android] 安裝Android SDK出現JDK not found.

安裝Android的開發環境,我裝了不下數十次

 

先安裝Java SE Development Kit (JDK)

然後接著解壓縮Eclipse,安裝Android Development Tools (ADT)

然後安裝Android SDK….

咦?我眼睛沒花吧?  明明就有裝JDK
安裝程式就跟我講沒有?

 

JDK not found 

關於安裝Android SDK裝不起來的問題

 

大概是安裝程式的bug吧,64位元電腦安裝64位元的JDK就會有這種情況

網友有找到一種解決方式

就是按Back,然後再按Next

然後就可以繼續裝了

 

參考

http://stackoverflow.com/questions/4382178/android-sdk-installation-doesnt-find-jdk

 

 

[php]UTF-8的fgetcsv函數

Microsoft的Excel有個很奇怪的怪僻
就是xls、xlsx裡面的文字是用UTF-8儲存

但如果另存新檔成csv時,會被降轉成Big5

有個方法可以避免這問題

直接選取資料,Ctrl+C做複製,直接在記事本之類的地方貼上
你會發現資料之間會用tab隔開

再用正規表達式,將  \t  取代成 , 
(tab字元取代成逗點) 

就可以用以下程式做匯入了

用法跟普通的fgetcsv一樣

但不能用以下程式寫成讀取tsv的程式

當遇上二個tab時(也就是有欄位是空的)

就會判斷錯誤喔,注意注意

 

//支援UTF-8的fgetcsv函數
function __fgetcsv(&$handle, $length = null, $d = “,”, $e = ‘”‘)
{
    $d = preg_quote($d);
    $e = preg_quote($e);
    $_line = “”;
    $eof=false;
    while ($eof != true)
    {
        $_line .= (empty ($length) ? fgets($handle) : fgets($handle, $length));
        $itemcnt = preg_match_all(‘/’ . $e . ‘/’, $_line, $dummy);
        if ($itemcnt % 2 == 0)
            $eof = true;
    }
   $_csv_line = preg_replace(‘/(?: |[ ])?$/’, $d, trim($_line));

    $_csv_pattern = ‘/(‘ . $e . ‘[^’ . $e . ‘]*(?:’ . $e . $e . ‘[^’ . $e . ‘]*)*’ . $e . ‘|[^’ . $d . ‘]*)’ . $d . ‘/’;
    preg_match_all($_csv_pattern, $_csv_line, $_csv_matches);
    $_csv_data = $_csv_matches[1];

    for ($_csv_i = 0; $_csv_i < count($_csv_data); $_csv_i++)
    {
        $_csv_data[$_csv_i] = preg_replace(“/^” . $e . “(.*)” . $e . “$/s”, “$1”, $_csv_data[$_csv_i]);
        $_csv_data[$_csv_i] = str_replace($e . $e, $e, $_csv_data[$_csv_i]);
    }
    return empty ($_line) ? false : $_csv_data;
}

[分享] HTC Desire HD簡單開箱

_IGP0002.JPG

這幾天我也入手了HTC Desire HD (A9191)

只能講….爽度滿分

原本服役的Nokia 3120 classic可以退下來了

 

這台Desire HD(DHD),對大家來說應該不陌生

它在螢幕上的曝光度很高

到了現在,還是有店家購買需要預訂

(其實是打著現貨供應的店家,價格都很硬)

我是買空機,這是我的習慣

向網路上的賣家買的

一開始以為是詐諞集團哩 (今天新聞才在報導的說)

雖然我已經拿到比市價便宜很多的價格了

但怎麼還是比我的夢幻桌機還貴呢?

難道是要把電腦縮小帶著走的意思嗎?


 

我喜歡Desire HD的原因

1. CPU夠強悍

使用Qualcomm Snapdragon QSD8255 1GHz

據說可以超頻到1.5G,效能火力全開

2. 原本Desire使用者詬病RAM太小終於加大了

RAM記憶體768MB

存儲空間升級1.5G

不怕程式不夠放

3. 底下的觸控式按鈕很有質感

4. HD大螢幕爽度高

這應該目前沒有更大了吧,除了HD2外

5. Android的向下滑動感,真的很棒

有體驗過所有資料全在你指間的感覺嗎?

手上充滿滿滿的資訊,手指一滑,資料向上捲動

一頁、二頁、三頁(稍待5-6秒讀取快取)、四頁、五頁、六頁…….

真是妙不可喻


 

 

簡單手繪風格的盒子

_IGP0002.JPG

 

打開1:1包裝的盒子

_IGP0003.JPG

撕開膠膜

_IGP0004.JPG 

 

靜靜的躺在盒子上

_IGP0006.JPG

 

突然…一束光照到了手機,手機亮了起來

_IGP0009.JPG

 

 

 

有沒有想到HTC的廣告詞

 

「嘿,這個好!」

超高速網際網路瀏覽

_IGP0012.JPG

 

 

到底哪台才是真的?

_IGP0013.JPG

 

 

網友罵翻的乞丐背面

_IGP0014.JPG

背面再來一張

_IGP0015.JPG

 

 

看看配件包有甚麼

_IGP0016.JPG

 

快速上手說明書,保固申明

_IGP0017.JPG

 

 

配件一覽

_IGP0018.JPG

 

快速上手說明書

_IGP0019.JPG

因為不是買聯強貨,所以是英文的

_IGP0020.JPG

 

三個塑膠包

_IGP0021.JPG

 

特殊接頭的充電器,不過沒關係,到處都有賣轉接頭

_IGP0022.JPG

上方是個USB介面

_IGP0023.JPG

 

USB同步線,也拿來充電用

_IGP0025.JPG

 

驗明正身,真的是HTC

_IGP0028.JPG

 

耳機組,後方還很貼心的把海棉另外包

_IGP0029.JPG

 

_IGP0030.JPG

耳機的海綿

_IGP0031.JPG

_IGP0032.JPG

 

電源鈕在上面

_IGP0058.JPG

背面

_IGP0033.JPG

 

找到那傳說中很難開的電池蓋

要在那很細微的小橫洞,用指甲摳開

_IGP0034.JPG

 

然後掀起來

_IGP0035.JPG

就取下電池拉

 _IGP0037.JPG

網友也點名1230mAh的容量有點小

_IGP0038.JPG

 

打開下蓋吧,小心推就開了

_IGP0040.JPG

裡面有mircoSD卡和SIM卡槽

_IGP0041.JPG

下蓋全貌

_IGP0042.JPG

 

MircoSD很難拔?NoNoNo…他不是用"拔"的

而是要輕輕的推一下,就會彈出來

_IGP0043.JPG

原廠贈送的Samsung 8G MircoSD 是Class2的

_IGP0045.JPG

卡槽特寫

_IGP0046.JPG

下蓋特寫,網友說天線藏身在這裡

_IGP0047.JPG

電池蓋特寫,小心那細微的卡榫,很容易搞爆

_IGP0048.JPG

放入X寶電信的SIM卡

_IGP0049.JPG

蓋回電池蓋

_IGP0051.JPG

蓋回下蓋

_IGP0052.JPG

新舊手機來個走秀吧

_IGP0055.JPG

不彷來一張疊疊樂

3120 classic相信很多人有,這是Nokia最便宜的一台3G手機

_IGP0057.JPG

 

 


簡單測試拍照效果

 

會自動對焦

相機不再只有很蠢的拍照聲(一聽就知道是假的,我覺得這種聲音很好笑)

這台快門聲還好,至少對焦時還有機械的對焦聲

我一開始以為機器真的會機械對焦呢!

(結果關閉喇叭確認那真的是喇叭發出的對焦聲)

_IGP0062.JPG 

 

有一些簡單特效

_IGP0063.JPG

 

相機帶有一些特效

_IGP0064.JPG

 

網友說Desire HD普遍有這些問題:

1. 電池蓋卡粉緊

電池蓋那真的很鎖的很緊

不過對於帶二顆電池跑的使用者可能要改變習慣

感覺那蓋子摳久了會鬆

2. 下蓋很鬆,不密合

沒事別去摳它應該還OK吧

應該是因為下蓋含下半部的關係吧

3. 背面很醜,像補丁

我也這麼覺得耶,可能會用個硬殼全部卡起來吧

4. SD卡很難摳下來

先頂它一下會自己退出來

5. 耗電(比起普通手機而言)

聽朋友說智慧型手機普遍續航力不足,幾乎是每天充

有幾招可以教大家

A. 沒事別開太多的程式,或是讓很多程式在背景執行

這個可以到「menu→應用程式→正在運作的服務」的地方去管理

 

B. HTC的超大時鐘固然漂亮,其實可以換小,沒有太多的動畫可以省電

到「新增→小工具→HTC小工具」裡面找,會有很多你要的

 

C. 另外犧牲一些開機時間

到「menu→應用程式→快速開機」的功能去除

D. WiFi、藍芽用完了記得關

可以到「menu→設定→無線與網路」這裡去管理

也可以放一些小開關到桌面上(HTC小工具),比較方便

 

相信會省電很多,我讓他待機整天(不去玩他),大概可以待個2天吧

6. 喇叭音量很小

剛剛試打電話,鈴聲音量感覺中等

見仁見智摟,倒是震動頗震的

要從二樓手機響的人從一樓衝去接電話的人可能會漏接


我也是Android的新手,初次摸了Android後

對於換上智慧型手機使用者一些提醒

  1. 沒有內建檔案總管,要到market去找

  2. 凡事點錯了可以用底下的「回復」或叫「倒退」鍵

  3. 請慎選程式安裝,切記

 

第一篇大概就到這裡,等我摸熟一點再跟大家分享摟

 

 

手機內建儲存空間: 1.5 GB
RAM: 768 MB

[網芳問題] 登入失敗 未將這台電腦上要求的登入類型授與使用者

http://w-type.blogspot.com/2009/06/blog-post_13.html

當你要進入網路上另一台PC, 明明帳號密碼都有設好
但就是 進不去
建議以下設定
1.
1.1 開始/執行/gpedit.msc
1.2 到電腦設定->Windows設定->安全性設定->本機原則->使用者權限指派
1.3 檢查”從網路存取這台電腦” 設定是否包含該帳戶, 若沒有 請增加該帳戶(也可以增加 everyone)
1.4 檢查”拒絕從網路存取這台電腦”設定是否包含該帳戶, 若有 請移除

2. 可增加 NteBUIE通訊協定, 有時是TCP/IP 認定比較慢

3. 查閱要登入的電腦, 使用的帳號, 是否是被改過名稱, 可透過使用者帳戶, 該帳戶檢查 管理網路密碼資料 是否正確

4. 將police的檔案刪除 , 讓 它回到 default值, 就可以重新設定
4.1 將C:\WINDOWS\SYSVOL\sysvol\HTH.local\Policies\{6AC1786C-016F-11D2-945F-00C04fB984F9}\MACHINE\Microsoft\Windows NT\SecEdit\GptTmpl.inf 裏的SeNetworkLogonRight 刪除,這條Default Domain Controllers Policy的「從網路存取這台電腦」會變成尚末定義。
4.2 再執行gpedit.msc,在「電腦設定」>「Windows 設定」>「安全性設定」>「本機原則」>「使用者權利指派」裏的「從網路存取這台電腦」加上該帳戶 (也可以增加 everyone)
4.3 執行gpupdate /force,問題解決

[Fedora14]重灌筆記

這篇算是之前的文章的整理,有些東西可能就要煩請參考之前的文章摟

 

設定FireFox

http://gfx.tw/j796160836

關閉離線介面

http://j796160836.pixnet.net/blog/post/26241754

設定PPPOE連線,中文

http://j796160836.pixnet.net/blog/post/25444345

調整文字顯示模式

http://j796160836.pixnet.net/blog/post/26196073

解決在XP時間不同步的問題

http://j796160836.pixnet.net/blog/post/26041820

安裝相關的GUI介面

#yum install -y system-config-bind system-config-samba system-config-services system-config-boot system-config-network system-config-rootpassword policycoreutils-gui

[Flash AS3] 載入與按鈕 (2)

既然是有外部載入的,但有些問題可以討論的

A.swf載入B.swf

應該A.swf跟B.swf的畫格數不同
但我有在B.swf做按鈕,按下後將A.swf的畫格切換到指定畫格
載入其他的swf使用

由剛剛的方式就可以看到,MainTimeline能有多個但stage只有一個

OK.  這裡告訴你如何從A.swf設定事件在B.swf的按鈕上

先寫載入B.swf到myb_mc的語法

var loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loader_CompleteHandler);
loader.load(new URLRequest(“B.swf”));
myb_mc.addChild(loader);
loader.x = 0;
loader.y = 0;

這裡不同的是,多了一行語法,意思是偵聽事件,當載入完成後執行loader_CompleteHandler函數
在loader_CompleteHandler函數可以這麼寫

function loader_CompleteHandler(e:Event):void
{
   loader.getChildAt(0).btn01.addEventListener(MouseEvent.CLICK,btn01_clickHandler);
}

function btn01_clickHandler(e:MouseEvent):void
{
   /*一些程式碼*/
}

幫在B.swf的btn01按鈕掛上偵聽事件

————————————————————–

方式不同,但做法相同的另一個寫法
陣列寫法,事先定義好按鈕陣列
程式寫的時候一併附掛偵聽事件,再由引發事件主人的名字還判斷要做甚麼事

 

function loader_CompleteHandler(e:Event):void
{
 var buttonsArr:Array = [loader.getChildAt(0).btn01, loader.getChildAt(0).btn02];

 for (var i:int = 0; i< buttonsArr.length; i++)
 {
  buttonsArr[i].addEventListener(MouseEvent.CLICK,clickHandler);
 }
}

function clickHandler(e:MouseEvent):void
{
   switch (evt.target.name)
   {
     case “btn01” :
          /*一些程式碼*/
          break;
      case “btn02” :
          /*一些程式碼*/
          break;
    }
}

 

[Flash AS3] 載入與按鈕 (1)

完全沒碰過Flash的語法
或者以下我的文章大家如果看不懂

強烈建議手邊要有書!!!

因為AS3語法不會太簡單,我對這語法還不熟
這理做筆記用以免馬上忘記

這是普通載入一個swf或是圖檔的寫法

var loader = new Loader();   //設定loader為載入影片的物件
loader.load(new URLRequest(“home.swf”)); //設定載入來源名稱
addChild(loader);    //載入至舞台(stage)上
loader.x = 0;  //設定載入後的X位置
loader.y = 0;  //設定載入後的Y位置

 語法中addChild的前面如果沒寫字,就是載入到舞台上
而有寫名字就會載入到指定名稱的MovieClip上

例如

myMovieClip.addChild(loader);

=======================================================

先說說Flash的階層概念

在Flash中,大部分的東西都是物件(DisplayObject),只是有名字跟沒名字而已(可做程式化控制)
載有載入外部檔案的時候,MainTimeline可以有多個,而stage只有一個

根目錄是[object Stage]

假設空白舞台上有個MovieClip叫做show_me

[object Stage]>[object MainTimeline]>show_me [object  MovieClip]

———————————–

如何切換其路徑?

假設要切換到[object MainTimeline]
可以這樣測試

trace(stage.numChildren); 
trace(stage.getChildAt(0)); 

Output視窗就會顯示1[object MainTimeline]
意指stage下只有一個子物件,而該第0號物件為MainTimeline (主時間軸)

相關指令:
numChildren():int                      是該物件底下有多少子物件
getChildAt(index:int)                  抓取第n個子物件
getChildByName(name:String)   抓指定名稱的子物件

———————————–

剛剛有提到
例如載A.swf載入B.swf的時候,MainTimeline會有多個,而stage只有一個
B.swf獨立執行時,有它自己的stage

而被A.swf所載入時,MainTimeline的父物件會被換成loader

如何知道的?

有個指令叫parent抓取其父物件

if (getChildAt(0).parent.parent == this.stage)
{
   trace(“並未由外部載入”);
}
else
{
   trace(“由外部載入”);
   trace(getChildAt(0).parent.parent);
}

這是判斷swf是否從外部載入,可判斷該swf執行時有沒有看到stage
外部載入這行就會顯示該loader物件為誰

 

 

 

[MySQL] 解決中文亂碼,預設編碼改為UTF-8設定

這個設定幾乎是設定MySQL必備的設定

這問題特別在xampp的環境(Windows版和Linux版)下,或者Fedora Linux使用yum安裝的mysqld會出現的問題

 

新增表格如果不指定編碼,預設會用latin1

在C:\xampp\mysql\bin\my.ini     (Windows版的路徑)

找到 [client] 區塊

加入

default-character-set=utf8

找到 [mysqld] 區塊

加入

character-set-server=utf8
collation-server=utf8_general_ci

———————————————————————–

如果是Linux的Xampp for linux,用命令列打入
vi /opt/lampp/etc/my.cnf

如果是yum裝的mysqld,用命令列打入

vi /etc/my.cnf

照Windows的敘述做修改