闪存装载机问题

时间:2011-03-01 16:36:55

标签: flash loader stage

我遇到某个问题有困难: 我有一个主要的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;
}

1 个答案:

答案 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不包含您期望的内容。