我遇到某个问题有困难: 我有一个主要的Flash应用程序,加载不同的内容 - 游戏,应用程序等。在一些游戏加载时,它的部分行为(动画片段)发生了变化。例如,如果没有装载机应用程序,你可以在内容游戏中射击并杀死一个人,但是当你玩同一个游戏时,你会在装载机中射击,虽然子弹触及了人 - 但没有任何反应。 我希望我解释一下好吧))。 知道为什么会这样吗? 谢谢我提前
更新:
嗨MalteKöhrer, 非常感谢您的回复!它只会让我发疯 - 答案就在这附近,但却被遗漏了)。 这是代码 - 在Event.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 :(得分:0)
避免使用root的一种方法是从时间轴中将这样的应用程序初始化:
var app:App=new App(this);
在这种情况下,您将App的引用传递给包含脚本的movieclip,无论它是在root用户还是其他任何位置。以下是该类的外观示例:
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不包含您期望的内容。