2011-03-01 48 views
0

我是有一定的问题的困难: 我有一个加载不同的内容主要闪存应用 - 游戏,应用程序等。在一些游戏中,当它被加载在它里面变化的各个部件的行为(影片剪辑)。例如,如果没有加载器应用程序,您在内容游戏中拍摄并杀死一个人,但在加载器中,当您使用与您拍摄的相同游戏进行游戏时,尽管子弹触及了人员,但什么都没有发生。 我希望我解释一下))。 任何想法为什么会发生这种情况? 感谢我提前闪存加载问题

更新:

嗨马尔特Köhrer, 谢谢您的答复非常感谢!这只会让我发疯 - 答案在这里附近,但错过了)。 这里是代码 - 在Event.COMPLETE我改变加载内容的位置。我有另一个在COMPLETE期间运行的函数,它添加了它们的位置被改变的部分。它们在COMPLETE之前没有更改过,这一点很重要。 感谢您的善意帮助。

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; 
} 
+0

难道说,你实际加载SWF文件使用root属性来访问它的影片剪辑/按钮?如果是这种情况,您可能需要检查Loader放置加载的SWF文件的位置。 –

+0

thanx for reply! 你能解释一下你的意思吗? 我使用addChild方法添加Loader组件,Loader将内容加载到自身中。 也许你可以添加一些代码行例如? 非常感谢! – ilya

+0

没有太多的空间,征求意见,所以我会尽量保持短期和简单的:如果你有一个加载它加载到“根”的SWF的HTML页面。另一方面,您使用一个特殊的加载器 - 将SWF加载到“root”中,然后创建一个加载器并将其添加到某个影片剪辑,例如“root.myLoadedSwf”。如果你与你的加载器加载SWF尝试通过root.some_movieclip_name来访问它的影片剪辑/按钮,它会因为你刚刚装得到了添加到MovieClip“root.myLoadedSwf”的SWF失败 - 而不是“根”。 –

回答

0

避免使用根将在时间轴上initalizing您的应用程序像这样的方式:

var app:App=new App(this); 

在这种情况下,你通过应用程序到被包含脚本的影片剪辑的引用,没有无论是在根部还是其他地方。下面是该类如何能看起来像一个例子:

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

现在你得到了参考保存,并可以用它来访问的影片剪辑(例如:setHeadline()函数)的一切,而不担心根本不包含你期待它。

+0

感谢您的解释和示例!但不知何故,它不适合我,或者我只是没有采取正确的方式。 这一行: VAR应用:应用=新的App(本); 我在我的主应用程序中实现了这种装载器。这是对的吗? 我将App类导入到主应用程序中。是你是什么意思或我错了? 谢谢! – ilya

+0

该示例仅显示如何避免在加载的影片中使用root。请阅读以下有关根的工作方式的信息:http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/DisplayObject。html#root –

+0

检查我包含的更新 – ilya