年明けあたりから、新しいサーバーサイドSWFエンジンを用意したので、それを使ってセッションIDをSWFに埋め込んで、セッションを実現してみようと挑戦していたところ、ふと気がついたことがありました。とりあえずD905iでしか試せていないけど、getURLをする際のパラメータのつき方が、ちょっと他の端末と違う。
説明が難しくなってしまいますが、図にするのも面倒なので、テキストで書きます。
コンテンツはFlash Lite 1.1で書き出したものです。
今までの経験としては、あるムービークリップにgetURLを書いておき、それが呼ばれた際に、そのムービークリップ内にセットされた変数が、自動的に、getのパラメータとしてサーバーに届いていました。ところが、D905i(もしかするとFlash Lite 3全部?)では、それが届かずパラメータが初期化されてしまいました。
なんでだろうと調べていて、最初は気がつかなかったのですが、他の端末では
http://xxxxxxx/xxxx?p=1
みたいにリクエストされていたのですが、D905iでは
http://xxxxxxx/xxxx&p=1
というリクエストになってしまっています。
なのでサーバー側でパラメータとして取得できなかったわけです。
これを解決するのは、そのパラメータ付加のところを、Flashに任せるのを辞めて、
http://xxxxxxx/xxxx?p=1
というパラメータを含むURLを文字列としてプログラムで作ってやればいいんですが、もともとなんでムービークリップを用意して、そこに変数をセットし、URLはパラメータを含めないでやっていたのかというと、なんかあんまりよく覚えていないのですが、端末だったかキャリアによっては、パラメータを含むURLを文字列とムービークリップの変数両方があると、パラメータが2重に送られてしまうケースがあったためではないかと記憶してます。
つまりこんな風か
http://xxxxxxx/xxxx?p=1?p=1
こんな風だったような
http://xxxxxxx/xxxx?p=1&p=1
ともかく、これ解決しないとということで、解決ったってどーってことも無いことでしょうが。とにかく、ケータイFlashってこういう違いがあったりするのです。
追記:これちょっと僕の勘違いでした。そもそもFlash Lite 1.1用に作ったコンテンツをFlash Lite 3.0で書き出す時点で、コード上修正が必要なところがあり、それをやっていなかったための問題ではないかと思います。(ただこの問題と直接関係しているかどうかはまだ確認していません。)
コード上修正が必要なのは、例えば、ボタンアクションは今まで1.1では_parentだったところを_parent._parentにする必要があります。また、文字連結はandではなく+になど変える必要があります。
コメント