Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash 闪存加载程序问题_Flash_Loader_Stage - Fatal编程技术网

Flash 闪存加载程序问题

Flash 闪存加载程序问题,flash,loader,stage,Flash,Loader,Stage,我对某个问题有困难: 我有一个主要的flash应用程序,它可以加载不同的内容——游戏、应用程序等。在一些游戏中,当它被加载时,它的各个部分(movieclips)的行为会发生变化。例如,如果没有加载器应用程序,您可以在内容游戏中射击并杀死一个人,但在加载器中,当您玩您所射击的同一个游戏时,尽管子弹碰到了该人,但什么也没有发生。 我希望我能解释清楚。 知道为什么会这样吗? 谢谢,我提前通知你 更新: 嗨,Malte Köhrer, 非常感谢您的回复!这简直让我发疯——答案就在这附近的某个地方,但没

我对某个问题有困难: 我有一个主要的flash应用程序,它可以加载不同的内容——游戏、应用程序等。在一些游戏中,当它被加载时,它的各个部分(movieclips)的行为会发生变化。例如,如果没有加载器应用程序,您可以在内容游戏中射击并杀死一个人,但在加载器中,当您玩您所射击的同一个游戏时,尽管子弹碰到了该人,但什么也没有发生。 我希望我能解释清楚。 知道为什么会这样吗? 谢谢,我提前通知你

更新:

嗨,Malte Köhrer, 非常感谢您的回复!这简直让我发疯——答案就在这附近的某个地方,但没有找到)。 这是事件的代码。完成我更改加载内容的位置。我有另一个功能,在完成过程中运行,它添加的部分,他们的位置改变。重要的是,它们必须在完成之前进行更改。 谢谢你的帮助

var loader:Loader = new Loader();
addChild(loader);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadingFunc);
loader.load(new URLRequest(urlAdr));


function loadingFunc(event:Event):void
{

    var loaderInf:LoaderInfo = event.target as LoaderInfo;
    dispObj = loaderInf.loader;

    //dispObj.x = stage.stageWidth/2-loaderInf.width/2;  --------------- That how it was          before I changed root property
    //dispObj.y = stage.stageHeight/2-loaderInf.height/2;

    var mb:MovieClip = dispObj.loaderInfo.content as MovieClip; //----------- That how it's now
    mb.x = stage.stageWidth/2-loaderInf.width/2;
    mb.y = stage.stageHeight/2-loaderInf.height/2;

    //var app:App = new App(mb); This give the same resault as var mb:MovieClip = dispObj.loaderInfo.content as MovieClip;
}

避免使用root的一种方法是从时间线开始初始化应用程序,如下所示:

var app:App=new App(this);
在这种情况下,您向应用程序传递一个对包含脚本的movieclip的引用,不管它是在根目录中还是在其他任何地方。下面是一个示例,演示了类的外观:

class App{
    public var appRoot:MovieClip=null;
    function App(appRoot:MovieClip){
        this.appRoot=appRoot:
    }
    function setHeadline(text:String):void{
         appRoot.textField.text=text;
    }
}

现在您保存了对movieclip的引用,可以使用它访问(例如:setHeadline()函数)所有内容,而不必担心root不包含您期望的内容。

您加载的SWF文件是否实际使用root属性访问其movieclip/按钮?如果是这种情况,您可能需要检查加载程序将加载的SWF.thanx放置在何处,以获得回复!你能再解释一下你的意思吗?我使用addChild方法添加加载器组件,加载器将内容加载到自身中。例如,也许你可以添加一些代码行?谢谢!!没有太多的评论空间,所以我会尽量保持简短:如果你有一个加载SWF的HTML页面,它会将其加载到“root”中。另一方面,您使用一个特殊的加载器SWF,它被加载到“root”中,然后创建一个加载器并将其添加到一些movieclip中,例如“root.myLoadedSwf”。如果加载程序加载的SWF试图通过root.some\u movieclip\u name访问其movieclips/按钮,则将失败,因为您刚才加载的SWF已添加到movieclip“root.myLoadedSwf”-而不是“root”。感谢您的解释和示例!但不知怎么的,这对我不起作用,或者我只是没有采取正确的方式。此行:变量应用程序:应用程序=新应用程序(本);我在我的主应用程序中实现了一种加载程序。对吗?我导入到主应用程序的类应用程序。你是什么意思?还是我错了?谢谢该示例只是展示了如何避免在加载的电影中使用root。阅读本文了解有关root如何工作的一些信息:Stackoverflow不是一个真正的讨论论坛,这也不再是最初的问题。我建议你开始一个新的岗位。嗨,马尔特·科勒。我已经发布了一个关于这个话题的新问题,如果你能看看的话,我会申请的。p、 s:您认为使用私人频道(电子邮件或下午)进行讨论更好吗?