【问题标题】:Flash: Transferring loaded object from one class to anotherFlash:将加载的对象从一个类转移到另一个类
【发布时间】:2010-02-27 07:58:14
【问题描述】:

我希望我能正确解释这一点。我正在使用 flashDevelop 作为头像创建引擎。我有一个名为 body_view 的影片剪辑(类),它是这样的结构:

body_view -> 10 visual body components -> each component needs to have a jpeg loaded

然后有一个body_model类,它从body_view类扩展而来,负责所有的加载/保存/交互,现在body_model类如下:

body_models -> variables holding (values) -> populateView (function)

现在通过 populateView 函数,我需要填充 body_view 的组件,但问题是如果我将 jpeg/swf 加载到它出现的函数上。我不希望它出现在舞台上我希望它在 body_view 中的特定位置

希望有人能帮帮我!

【问题讨论】:

  • 你是如何加载你的 img 的?
  • 你能把你使用的一些代码放上来看看你的错误在哪里吗?
  • 我有一个简单的加载器,用于加载图像。我只是不想将图像加载到当前位置,而是加载到其他影片剪辑中。

标签: flash actionscript-3


【解决方案1】:

由于 Loader 是一个 DisplayObject,您可以使用 addChild() 将它(以及它加载的图像或 swf)添加到任何 DisplayObjectContainer,如 Sprite 或 MovieClip,示意性地如下所示:

var loader:Loader = new Loader();
loader.load(new URLRequest(urlToImage));
thePlaceWhereYouWantTheImage.addChild(loader);

此外,您可以再次使用 addChild() 将加载器(或其他 DisplayObject)从一个位置移动到另一个位置:

otherPlace.addChild(loader);

然后它将从显示列表中的当前位置删除并添加到新位置。

【讨论】:

  • 是的 Fahim,按照 Lars 的建议去做。对显示列表项使用 URLLoader 可能不是您想要做的。
【解决方案2】:

如果我理解正确,这是我理解它的方式之一:

  • 模型负责加载。
  • 视图侦听模型以获取已完成的加载请求。
  • 为了保持一致性,视图和模型共享同一个值对象,其中包含身体部位 ID 列表等。
  • 一旦通知视图,其中一张等待的图像被加载,它会将其添加到适当的正文部分。

因此,如果您有类似的东西并且“身体部位”被加载到舞台上而不是所需的位置,则可能是 populate() 方法被搞砸了。

【讨论】:

  • 基本上我不想在视图中有任何代码,我希望它严格用于设计目的。因此,当从外部加载某些内容时,我只想将其放置在 body_view 特定的影片剪辑中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-06
相关资源
最近更新 更多