Flex生成的swf复制到其他文件夹后原来在src下的配置文件无法读取,配置文件不能一起打包进swf文件里吗? 20
最近自学Flex开发,做了一个demo,里面会读到一个xml文件,我把这个xml文件放到src下的config目录下,访问的时候也是用config/sfs-config....
最近自学Flex开发,做了一个demo,里面会读到一个xml文件,我把这个xml文件放到src下的config目录下,访问的时候也是用config/sfs-config.xml去访问的,在Flex Builder里面运行的时候没有问题,但我把bin-debug目录下的swf文件拷贝到其他目录后,就无法访问那个配置文件了,看样子,它好像是去本地当前文件夹的config目录下找了。这样 我就在当前目录下建了一个config目录,然后把配置文件甩进去,果然行了。这就让我比较纠结了,难道flex在打包的时候没有把配置文件打包进去吗?同样是在src下的啊,难道必须得在swf文件的当前目录再建一个文件夹专门放配置文件神马的吗?我一直是做java的,java打包的时候配置文件都是全部打进去的,而且可以通过classpath去找。因为刚学Flex,很多东西不懂,所以想请教一下各位前辈,我这个问题有什么解决办法吗?就想不需要另外建什么文件夹,直接把配置文件打包到swf里面,就像java一样,把配置文件也打包进去,在classpath下找就行了,不就不用担心外部环境,随时可以访问配置文件了吗?求各位前辈指教!
展开
2个回答
展开全部
我觉得congfig下的配置文件是可以打包进去的。是这样的 比如你建了一个项目叫ex1 编译生成了swf是ex1.swf,如果你把ex1.swf放在一个叫做ex2的项目里,当调用这个ex1.swf下的方法时它访问的路径是你在ex1的config文件里配置的路径,对吧?那就看这段代码:
<channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel">
<endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint" />
</channel-definition>
注意{context.root}这里当你在给ex1打包编译时候context.root就是ex1,而在ex2的配置文件下context.root是ex2,肯定就报错了。
解决方法是在编译ex1时修改config配置文件,把}/{context.root}写死成目标项目的名称 也就是ex2就行了。
不知道你能看没明白不。。?
<channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel">
<endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint" />
</channel-definition>
注意{context.root}这里当你在给ex1打包编译时候context.root就是ex1,而在ex2的配置文件下context.root是ex2,肯定就报错了。
解决方法是在编译ex1时修改config配置文件,把}/{context.root}写死成目标项目的名称 也就是ex2就行了。
不知道你能看没明白不。。?
追问
o(︶︿︶)o 完全看不明白,这两天才开始学Flex,只懂一些基本的控件啊语法啥的。。。。纠结啊。。。如果不能把配置文件打包进去,swf文件不就永远不能独立运行了吗。。。。复制到另外一个地方,啥都没了。。。。
追答
你去你的config/sfs-config.xml文件下找 把{context.root}改成你目标项目的项目名试试吧
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询