希望有人可以在这里提供帮助,或多或少地寻找a)相对路径的解决方案或b)深入了解另一种加载资产的方法。
我们有一个使用SDK 4.1的独立Web应用程序,并在其相对资源文件夹中查找要加载的所有图像和外部swfs。
在服务器上,这是资产目录的绝对路径:
/ApplicationRoot/versionFldr/controls/assets/*
应用程序在加载资产的所有情况下都使用相对路径..随着我们推进应用程序的版本,这将不断添加和更新。
所以,从本质上讲,应用程序正在寻找:
assets/*
现在转发到新应用程序,我们称之为“ParentApp”和上面的应用程序“ChildApp”。
父App与ChildApp不同的服务器目录
/ParentApp/version/controls/ParentApp.swf
/ChildApp/version/controls/ChildApp.swf
现在,当ChildApp加载到ParentApp时,它假定它与它一直在的目录相同。因此,它查找资产/ *并且无法找到它们,因为
/ParentApp/version/controls/assets/* != /ChildApp/version/controls/assets/*
我需要找到一个解决方案,让ChildApp在所有已加载资产的绝对路径中查看它是ParentApp的子项,并在它独立时让它查看相对于自身的路径。
我的注意事项是图像被加载到各种控件,缓存,甚至mx:文本字段(带标签的html文本)。我正在努力避免全局替换应用程序中的所有路径链接,并且必须在为应用程序创建新资产时创建新的编码过程。 ChildApp正在生产中,必须继续使用4.1 SDK。
ParentApp是新的,具有更大的灵活性。
我在childApp中尝试过-source-path和-library-path编译器选项,但这会导致编译错误而我无法继续。
提前感谢您的任何见解和帮助! -AJ
答案 0 :(得分:0)
我会通过" baseURL"来解决这个问题。子应用程序中的变量。给它一个默认值,以便您可以形成您正在使用的常用相对URL:`var baseURL:String =" / assets /&#34 ;;
不幸的是,您必须修改子应用中的每个资产路径,以便资产的路径类似于:baseURL + assetFileName
当子应用程序加载到父应用程序时,您将为此baseURL
变量提供非相对路径。理想情况下,在子应用程序尝试加载任何资产之前,您可以在此过程的早期执行此操作。