我第一次嘗試製作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);
}
其實我用這個,如果(this.loaderInfo.url.indexOf( 「myDomain.com」)!= -1)...的addEventListener,否則顯示ACCES否認。只有一行代碼?我不知道。非常感謝你,我很難相信它的工作原理:) –
呃,只是要清楚,如果陳述代替了我上面寫的那個,但是:是的,它應該完成這項工作,我想。 :) – Atriace
我認爲一個字符串比較會比indexOf更好 - 否則URL「www.myEvilDomain.com/test.swf?cheating=myDomain.com」將通過您的測試 – 2013-10-29 21:17:24