2013-10-29 100 views
0

我第一次嘗試製作sitelocked Flash文件,我不知道該怎麼做。 我在網上找到了一對夫婦的教程,他們都沒有爲我工作。 我會發佈一個我在網上找到的。Actionscript 3 sitelocking

在此之前我會解釋一下我的情況。

我導出了第2幀上的所有分類,第1幀1我的預加載器有預加載器圖形和簡單的 progress事件。

這是我的Main(類)公共函數在添加sitelocking代碼之前的樣子: 如果可以,請在下面的代碼中添加'somelocking代碼'。

public function Main() 
    { 
    loaderInfo.addEventListener(Event.COMPLETE, preloaderDone); 
    } 

    private function preloaderDone(e:Event):void 
    { 
     showMenu(); // game will start here 
    } 

一切正常,但現在我想在preloader完成後檢查域名。 其實我試圖設置loaderInfo.addEventListener(Event.COMPLETE,preloaderDone) 只有Flash文件託管在正確的域名,否則我想顯示文本字段 'Accesdenied'。當我做到這一點後,閃存文件被鎖定在所有域上,我嘗試了與 不同的域名,但它不會工作,我也嘗試將絕對路徑放到swf文件中,如mywebsite.com/myflashfile.swf 。它總是顯示訪問被拒絕。這是我在網上找到的 的代碼,我試圖使用它。

public function Main() 
    { 
    var url:String=stage.loaderInfo.url; 
    var goodPattern:RegExp=/^(http:\/\/)(www\.)?somewebsite\.com/; 

    if (goodPattern.test(url)==true) 
    { 
    loaderInfo.addEventListener(Event.COMPLETE, preloaderDone); 
    } 
    else 
    { 
    myTxtFieled.text = "Acces denied." 
    stage.addChild(myTxtField); 
    } 

回答

-1

首先,嘗試追蹤您的stage.loaderInfo.url的結果。您可能會發現RegExp過於誇張,而一個簡單的比較運算符就足夠了。

例如,在本地系統上運行「test.swf」會跟蹤以下路徑file:///C|/Sites/myDomain/subdirectory/test.swf,而放置在服務器上時,它顯示爲http://myDomain.com/subdirectory/test.swf。非常坦率的。

這將簡化你的代碼...

public function Main() { 
    if (this.loaderInfo.url == "http://myDomain.com/subdirectory/test.swf") { 
     loaderInfo.addEventListener(Event.COMPLETE, preloaderDone); 
    } else { 
     var txt:TextField = new TextField(); 
     txt.text = "Acces denied."; 
     addChild(txt); 
    } 
} 

那當然,會鎖定你的SWF如果只調用preloaderDone()從一個特定的目錄它的運行。如果您希望能夠在服務器上移動它,並且只關注域,則可以改爲執行簡單的字符串搜索。

if (this.loaderInfo.url.indexOf("myDomain.com") != -1) { 
+0

其實我用這個,如果(this.loaderInfo.url.indexOf( 「myDomain.com」)!= -1)...的addEventListener,否則顯示ACCES否認。只有一行代碼?我不知道。非常感謝你,我很難相信它的工作原理:) –

+0

呃,只是要清楚,如果陳述代替了我上面寫的那個,但是:是的,它應該完成這項工作,我想。 :) – Atriace

+2

我認爲一個字符串比較會比indexOf更好 - 否則URL「www.myEvilDomain.com/test.swf?cheating=myDomain.com」將通過您的測試 – 2013-10-29 21:17:24