1

actionscript 3 で SWFAddress を使用して、ナビゲーションとコントロールの URL を制御しています。特定のパラメーターをターゲットにして変更することはできますが、それを処理するためのよりクリーンで一貫した方法が欠けているように感じます。認識していません。

URL があり、defの 2 番目のパラメーターだけをxyzに変更したいとします。

http://localhost/some-page/#/?param1=abc&param2=def&param3=ghiに変更 http://localhost/some-page/#/?param1=abc&param2=xyz&param3=ghi

私は現在やっています:

if (SWFAddress.getParameterNames().indexOf("param2") >= 0) {
    SWFAddress.setValue(SWFAddress.getPath() + "?"
       + SWFAddress.getQueryString().replace("param2=" + SWFAddress.getParameter("param2"), "param2=xyz"))

基本的に、パラメーターが存在するかどうかを確認し、その現在の値が何であるかを確認してから、base、 '?" 、およびqueryを使用して URL 全体を再作成し、パラメーターパラメーターの値を確実に置き換えて、見逃さないようにします等号.これはずさんで、paramが存在するが何も設定されていない場合、または等号があるかどうか、および他の多くの落とし穴がある場合、エラーが発生しやすくなります。

では、SWFAddress に URL のその 1 つのパラメーターを更新するように指示することはできませんか? SWFAddress.setParam("param2, "xyz") の理論上の関数。

setValue(val:String) の単一の関数を提供するだけでなく、SWFAddress と URL を微調整する独自のメソッドをコーディングした人はいますか?

4

1 に答える 1

0

短い答えはノーだと思います。ドキュメントによると、この方法setParameterを使用する必要はありませんgetParametersetValueコードを見ると、URL はクラスのプロパティとしてキャッシュされていないように見えます。そのため、もちろんブラウザで URL を更新するメソッド以外では操作できません。

おそらく、onChangeイベントで既に URL を解析しているので、値を使用してアプリケーションの状態を設定できますか? その場合、Flash から URL を更新する前に URL を再構築するときに、再度行う必要はありません。ディープリンク プロパティをModelクラスのどこかに保存すると、操作に頼ることなく、デフォルト設定、更新、およびエラー チェックを処理できますString。次に、これらのプロパティを使用して URL を再構築します。このプロセスは、Model必要に応じてクラスのメソッドに抽象化できます。

param22次の行は、やなどのプロパティに対して true を返すため、特に堅牢ではないことにも注意してくださいsparam2

if (SWFAddress.getParameterNames().indexOf("param2") >= 0) { }
于 2012-10-22T23:05:23.690 に答える