Actionscript 3 ActionScript3站点锁定

Actionscript 3 ActionScript3站点锁定,actionscript-3,actionscript,flash-cs6,Actionscript 3,Actionscript,Flash Cs6,这是我第一次尝试制作sitelocked flash文件,我不知道怎么做。 我在网上找到了几本教程,但没有一本对我有用。 我将发布一个我在网上找到的 在此之前,我会解释一下我的情况 我导出了第2帧上的所有分类,在第1帧上我有预加载图形和简单的 我的预加载程序的进度事件 这是我的主(类)公共函数在添加sitelocking代码之前的外观: 如果可以,请在下面的代码中添加“somelocking code” public function Main() { loaderInf

这是我第一次尝试制作sitelocked flash文件,我不知道怎么做。 我在网上找到了几本教程,但没有一本对我有用。 我将发布一个我在网上找到的

在此之前,我会解释一下我的情况

我导出了第2帧上的所有分类,在第1帧上我有预加载图形和简单的 我的预加载程序的进度事件

这是我的主(类)公共函数在添加sitelocking代码之前的外观: 如果可以,请在下面的代码中添加“somelocking code”

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

    private function preloaderDone(e:Event):void
    {
       showMenu(); // game will start here
    }
一切正常,但现在我想检查域名后预加载完成。 实际上,我正在尝试设置loaderInfo.addEventListener(Event.COMPLETE,preload-erdone) 只有当flash文件位于正确的域上时,否则我想显示文本字段 “拒绝访问”。在我这样做之后,flash文件在所有域上都被锁定,我尝试了 不同的领域,但它不会工作,我还试图把绝对路径的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);
    }

首先,尝试跟踪您的
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是从特定目录运行的,则会将其锁定为仅调用
preforderdone()
。如果您希望能够在服务器上移动它,并且只关心域,那么您可以执行简单的字符串搜索

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

实际上我使用了这个if(this.loaderInfo.url.indexOf(“myDomain.com”)!=-1)。。。addeventListener,否则显示访问被拒绝。只有一行代码??我不知道。谢谢你,伙计,你很棒,我简直不敢相信它能起作用:)呃,我只是想说清楚,如果这个声明取代了我上面写的那个,但是是的:我认为它应该起作用。:)我认为字符串比较比indexOf更好,否则URL“www.myEvilDomain.com/test.swf?作弊=myDomain.com”会通过测试