0

我在定位外部加载的 swf 时遇到问题。它根本不响应其xy值的任何设置。

我正在加载的 swf 是在 FlashDevelop 中创建的纯 as3 项目,其中主类扩展sprite。之后我什至尝试使用 MonsterDebugger修改xand值,但没有运气。y

swf 被加载到舞台右侧的容器中,但始终位于左上角。加载很简单:

public var targetContainer:Sprite;
public function load(path:string):void {

    loader = new Loader();
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, successHandler);

    var movie:MovieClip = new MovieClip();
    movie.addChild(loader);
    targetContainer.addChild(movie);

    loader.load(new UrlRequest(pathToSwf));
}
private function successHandler(e:Event):void {    
    //this does nothing for the one file, but affect any other swf i load
    e.target.content.x = 300;
}

我对其他 swf 文件没有这个问题,所以我猜这与我的特定 as3 项目中的一些代码问题有关,我只是不知道是什么???

感谢您的任何建议!

4

2 回答 2

1

尝试movie.x = 300;而不是event.target.content.x = 300. 加载器内容是您正在加载的 swf 的根 DisplayObject。在加载的 swf 内,可能有一些代码x在某些时候也会设置(并因此覆盖)同一 DisplayObject 的属性。

于 2010-07-02T15:48:19.783 回答
0

我又遇到了同样的问题......包和类名冲突......如果有人被这样的事情警告过,那将是一件好事,但从现在开始,我将拥有长而无法识别的名字,这些名字真的可以告诉谁他们是 ;)

奇怪的是,它使整个加载的 swf 首先位于左上角,其次,即使通过 MonsterDebugger “在游戏中”也无法更改位置...

纽布,它真的在空中!

于 2010-07-05T21:05:40.553 回答