首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SWFAddress用于更改url中的单个参数。

SWFAddress用于更改url中的单个参数。
EN

Stack Overflow用户
提问于 2012-10-22 18:36:09
回答 1查看 160关注 0票数 1

我正在使用actionscript 3中的SWFAddress来控制导航和控件的urls,虽然我能够针对和更改特定的参数,但我觉得我缺少一种更干净、更一致的处理方法,甚至可能是我不知道的特性或方法。

假设我有一个url,我想把def的第二个部分改为xyz。

http://localhost/some-page/#/?param1=abc&param2=def&param3=ghi改为http://localhost/some-page/#/?param1=abc&param2=xyz&param3=ghi

我目前正在做:

代码语言:javascript
复制
if (SWFAddress.getParameterNames().indexOf("param2") >= 0) {
    SWFAddress.setValue(SWFAddress.getPath() + "?"
       + SWFAddress.getQueryString().replace("param2=" + SWFAddress.getParameter("param2"), "param2=xyz"))

本质上,检查param是否存在,检查它的当前值是什么,然后使用base '?“重新创建整个url,并进行查询,确保我替换了参数和参数的值,确保我没有遗漏等号。这是草率的,如果param存在但没有设置为任何内容,或者是否存在等号,以及其他许多陷阱。

所以,我不能告诉SWFAddress更新url中的一个参数吗?SWFAddress.setParam的一个理论函数(“param2,"xyz")。

是否有人编写了自己的方法来对SWFAddress和url进行微操作,除了为您提供setValue(val:String)的单个函数之外?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-22 23:05:23

我认为简短的回答是否定的。根据文档,没有setParametergetParameter方法一起使用。从代码来看,URL似乎不是作为类中的属性缓存的,因此只能通过setValue方法进行操作,该方法当然会在浏览器中更新URL。

您可能已经在解析onChange事件中的URL,以便可以使用这些值来设置应用程序状态?如果是这样的话,当您在从Flash更新URL之前重新构建URL时,不需要再次这样做。如果将深度链接属性存储在Model类的某个位置,则可以处理默认、更新和错误检查,而无需诉诸String操作。然后使用这些属性重新构建URL,如果需要,可以将该进程抽象为Model类中的方法。

您还应该注意到,下面的行并不特别健壮,因为它将返回param22sparam2等属性的true

代码语言:javascript
复制
if (SWFAddress.getParameterNames().indexOf("param2") >= 0) { }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13017581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档