【发布时间】:2011-02-05 13:04:28
【问题描述】:
我在 Flex 应用程序中重复使用几个模块,并通过“loaderInfo.url”变量传入参数来改变条件。这适用于给定模块的第一次迭代,但后续尝试将始终看到与第一次创建相同的参数,无论实际使用什么。
有没有办法在创建模块时重置这个值?
private var moduleInfo : IModuleInfo;
private function loadPageModule( pathString : String, pageParam : String ) : void
{
pathString = "modules/" + pathString + ".swf?param=" + pageParam;
moduleInfo = ModuleManager.getModule( pathString );
moduleInfo.addEventListener( ModuleEvent.READY, onPageModuleReady, false, 0, true);
moduleInfo.load( ApplicationDomain.currentDomain, null, null );
}
当我在“CreationComplete”处理程序(例如“trace(this.loaderInfo.url);”)中查看参数时,每次(对于给定模块)都是相同的,而不管通过 ?param 实际传递的是什么=字符串。我究竟做错了什么?
【问题讨论】:
-
在我们发言时我遇到了这个问题。我在应用程序中多次加载模块,并通过查询字符串传递数据。它在模块第一次加载时工作,但之后每次的数据都是一样的。
-
所以您重复加载相同的模块但每次发送不同的 URL 参数? (想了解您的问题)
-
没错。 URL 参数提供了一些关于模块应该如何操作的信息。我尝试显式调用 removeEventListener(ModuleEvent.Ready,...) 但这没有帮助。通过在共享模型上设置一些数据,我实际上找到了一种解决方法。这并不理想,但它解决了我的问题。
标签: apache-flex url module loaderinfo