Flash 闪存加载程序问题
我对某个问题有困难: 我有一个主要的flash应用程序,它可以加载不同的内容——游戏、应用程序等。在一些游戏中,当它被加载时,它的各个部分(movieclips)的行为会发生变化。例如,如果没有加载器应用程序,您可以在内容游戏中射击并杀死一个人,但在加载器中,当您玩您所射击的同一个游戏时,尽管子弹碰到了该人,但什么也没有发生。 我希望我能解释清楚。 知道为什么会这样吗? 谢谢,我提前通知你 更新: 嗨,Malte Köhrer, 非常感谢您的回复!这简直让我发疯——答案就在这附近的某个地方,但没有找到)。 这是事件的代码。完成我更改加载内容的位置。我有另一个功能,在完成过程中运行,它添加的部分,他们的位置改变。重要的是,它们必须在完成之前进行更改。 谢谢你的帮助Flash 闪存加载程序问题,flash,loader,stage,Flash,Loader,Stage,我对某个问题有困难: 我有一个主要的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:您认为使用私人频道(电子邮件或下午)进行讨论更好吗?