我在 actionscript 3 中使用 SWFAddress 来控制导航和控件的 url,虽然我能够定位和更改特定参数,但我觉得我缺少一种更清晰、更一致的处理方式,甚至可能是我的一个功能或方法我不知道。
假设我有一个 url,我只想将def的第二个参数更改为xyz。
http://localhost/some-page/#/?param1=abc¶m2=def¶m3=ghi
变成
http://localhost/some-page/#/?param1=abc¶m2=xyz¶m3=ghi
我目前正在做:
if (SWFAddress.getParameterNames().indexOf("param2") >= 0) {
SWFAddress.setValue(SWFAddress.getPath() + "?"
+ SWFAddress.getQueryString().replace("param2=" + SWFAddress.getParameter("param2"), "param2=xyz"))
本质上,检查参数是否存在,检查它的当前值是什么,然后使用base、'?" 和query重新创建整个 url ,确保我替换了参数和参数的值,确保我不会错过equal sign . 这个 get 很草率,如果参数存在但没有设置任何东西,或者是否有等号,以及许多其他陷阱,则容易出错。
那么,我不能只告诉 SWFAddress 更新 url 中的那个参数吗?SWFAddress.setParam("param2, "xyz") 的一个理论函数。
除了他们为您提供的 setValue(val:String) 的单个函数之外,是否有人编写了自己的方法来微操作 SWFAddress 和 url?