2013-10-29 58 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