• 締切済み

flash lite 1.1容量制限内におさめたい。

96.4KBのswfファイルです。 ファイル内には、30個のボタンが3つのキーフレームに分けて配置してあります。 ↓ボタンのASです。 on(release){ getURL("http://*********************"); } 今回、そのURLが30個すべて大幅に長くなることになりました。 ============================== 【30(ボタン)×0.5KB=7.5KB】 100KBを超えてしまいます。これでは携帯で表示できません。 ============================== そこで打開策を考えました。 (1)長いURLを変数に出来るのかな? (URLの文字列はほぼ同じだったので。) そこで試したのが、 空白キーフレームにインスタンス名(s1)を付け、 (s1)のAS  (変数)= "長ーいURL"; を記述。 30個のボタン達に…(今回は12個目として変数12としてます。) on(release){     call(s1)     getURL("変数12"); } です。 失敗です。(URLは"変数12"と表示されてもリンクはしませんでした。) (1)変数はURLに成りうるのか? (2)変数は3つのキーフレームで使いまわせるのか? (3)容量は抑えられのか? です。 何卒よろしくお願いいたします。

みんなの回答

  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.3

#2 (#1) です。 すみません。 #2 では,ご質問が Flash Lite 1.1 だと言うことをすっかり忘れていました。 普通の Flash と Flash Lite 1.1 とでは文字列加算演算子が違います。 ページ番号 が 5 であるとする場合 getURL(h + c + 5 + p + s);   ↓訂正↓ getURL(h add c add 5 add p add s); です。

120957
質問者

補足

getURL(h add c add 5 add p add s); 頂きました。 URLを上記のように記述すると入れ替わりました! 誠にありがとうございます。 余力があれば教えてください。 現在_rootに、下記の記述がされています。 h = "#HOSTURL################################"; c = "?c=rrrrrr&mmmm=bbbbbbbb&aaaaa_"; p = "&d=#PARAM_D#"; s = "#SESSION################################"; //hが置き換えられた時、余分な#を取り除く i = length( h ); for ( ; 0 < i ; i-- ) { c = substring( h, i, 1 ); if ( c ne "#" ) { break; } } //hとcをまとめてurlとする url = substring( h, 1, i ) add c; //pが置き換えられた時、余分な#を取り除く i = length( p ); for ( ; 0 < i ; i-- ) { c = substring( p, i, 1 ); if ( c ne "#" ) { break; } } //pと"&PHPSESSID="まとめてphとする ph = substring( param, 1, i ) add "&PHPSESSID="; //spが置き換えられた時、余分な#を取り除く i = length( s ); for ( ; 0 < i ; i-- ) { c = substring( s, i, 1 ); if ( c ne "#" ) { break; } } //まとめてseとする se = substring( s, 1, i ); =========================================== そして、ムービークリップの中に配置されている、 ボタンに(ページ番号を5とする)、 on(release){ getURL(_root.url add "5" add _root.p add _root.se); } と記述しています。 そうすると携帯でURLを観た時に、 最後の_root.seが『2』と表示されます。 (長々と申し訳ございません) 目標は下記の定義を一つにまとめて何処にでも、呼び出したいのです。 h = "#HOSTURL################################"; c = "?c=rrrrrr&mmmm=bbbbbbbb&aaaaa_"; p = "&d=#PARAM_D#"; s = "#SESSION################################"; もしアドバイスがあれば、 何卒よろしくお願いいたします。

全文を見る
すると、全ての回答が全文表示されます。
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.2

#1 です。 #1 の補足の後半がわかりません。 補足の前半なら少しは意味がわかります。 #1 でも書きましたように 「変数」 と 「文字列」 の区別をつけることが大切です。  ~#1より~ > url1 = "abcdefghijklmn"; > > と定義した場合, > _root にあるボタンには, > > on (release) { > getURL(url1); > }  ↓これを言いかえると↓ 変数名 = "abcdefghijklmn"; on (release) { getURL(変数名); }  ↓注意点↓ getURL("変数名"); ではありません。 --- --- --- --- --- したがってスクリプトは次のようになります。 h = "#HOSTURL################################"; c = "?c=rrrrrr&mmmm=bbbbbbbb&aaaaa_"; p = "&d=#PARAM_D#&PHPSESSID="; s = "#SESSION################################"; getURL(h + c + ページ番号 + p + s); 「ページ番号」 とは意味がわかりませんが,もし 5 でしたら, getURL(h + c + 5 + p + s); となります。

全文を見る
すると、全ての回答が全文表示されます。
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

Flash Lite の前に, さらに Flash の前に, かなり方向がずれていると思います。 半角英数文字 1文字 は,素のテキストデータで何バイトでしょうか? ...... ...考え中... .. .. ... .. ... ...... ... ... ....... ... ...考え中... ..... .. はい,時間切れ。 答えは 1バイト です。 半角 英数文字 は 1バイト文字 ですから 1バイト です。 Flash の場合は, 素のテキストデータ ではなく SWF にパブリッシュ(コンパイル)されるので, さらに小さくなる場合がほとんどだと思います。 ちなみに検証です。 on (release) { getURL("a"); } と書いたボタンを30個並べた FlashLite1.1用 SWF をパブリッシュしてみましたら, 450 バイト (つまり 約0.45 KB) でした。 on (release) { getURL("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"); } と書いたボタンを30個並べた FlashLite1.1用 SWF をパブリッシュしてみましたら, 498 バイト (つまり 約0.498 KB) でした。 その差は,48バイト(約 0.048KB)です。 軽量化を考えるのでしたら, こういう部分を対象にするべきではないと思います。 つまりもっと他にあるはずです。 ========================= それで,やっとこさ Flash です。 > (s1)のAS >  (変数)= "長ーいURL"; > を記述。 > 30個のボタン達に…(今回は12個目として変数12としてます。) > on(release){ >     call(s1) >     getURL("変数12"); > } 無茶苦茶ですね。 変数は変数であって文字列ではありません。 また call 関数を使う必要性も全くありません。 _root(メインムービーのタイムライン) の フレーム1 に url1 = "abcdefghijklmn"; と定義した場合, _root にあるボタンには, on (release) { getURL(url1); } と書けば,getURL("abcdefghijklmn"); が動作します。

120957
質問者

補足

h = "#HOSTURL################################"; c = "?c=rrrrrr&mmmm=bbbbbbbb&aaaaa_"; p = "&d=#PARAM_D#&PHPSESSID="; s = "#SESSION################################"; 厳密に言うとこの位増えます。 そして上記のように定義して、 下記のようにボタンに記述しました。 getURL("hc(ページ番号)ps"); 早速のご返答ありがとうございます。 少し、問題の意味合いが変わってしまい申し訳ございません。 URLは表示されるのですが、 "hc(ページ番号)ps"であって、 "#HOSTURL################################?c=rrrrrr&mmmm=bbbbbbbb&aaaaa_(ページ番号)&d=#PARAM_D#&PHPSESSID=#SESSION################################"; には切り替わりません。 こんな方法は可能でしょうか? 何卒よろしくお願いいたします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Flash の action script が動きません

    初歩的な質問で失礼します。 Flash MXを使用しています。 ボタンを押したらURLに飛ぶ、というものを作りたいのですが ボタンに、 on (release) { getURL("http://www.*****.html"); } を指定したくても、ボタンシンボルのアップ/オーバー/ダウン...の中では「この場所には指定できません」というようなエラーメッセージがアクションパネルに表示され、書くことができません。 調べたところ、「ASを 2.0に指定すれば直る」と書いてあるページが多かったのですが、ver.MXにはそれを指定できる所が見当たりませんでした。 かといってタイムライン上に書くと「マウスイベントはボタンインスタンスでのみ使用できます。」と出てしまい、URLに飛んでくれません。 一体どうしたら良いでしょうか? どうかよろしくお願いします。

  • FLASHボタンとFireFox

    Flashで作ったボタンに on (release) { getURL("http://~"); } を書いて指定URLへジャンプするようにしています。最近気づいたのですが、このボタンFIREFOXでは全然機能していません。どうすればよいのでしょうか?HTMLには<embed>を使ってこのボタンを埋め込んでいます。

  • flashのボタンクリックで他のサイトにジャンプするには?

    flash professional 8 を使っています。ボタンを作って、それをクリックしたときに他のサイトにジャンプするようにしたいのですが、on (release) {getURL("○×○×");}と入力しても、「マウスイベントはボタンインスタンスでのみ使用できます。」というエラーが出ます。 ボタンは完璧に作れましたが、ジャンプがうまくいきません。アドバイスお願いします。

    • ベストアンサー
    • Flash
  • Flashvars getURLの書き方

    AS2の質問です。 flashvarsでhtmlからの指定でURLを引用したいと思っています。 作りたいのは画像・URLは全て外部(html)から引用した画像リンクです。 画像はマウスオーバーでアルファを変えます。 古い記憶からgetURLで指定すればよかったような気がし、 ムービークリップに指定しましたが「undefined」と表示されました。 (ボタンだと上手くいくのですが、今度はアルファがうまくきかず……) 下記のようなスクリプトを書いています。 ---------------------------------------------------- onClipEvent(load){ this._alpha=50; } on(rollOver){ _root.******._alpha=100; } on(rollOut){ _root.******._alpha=50; } on(release){ getURL(++++++); } ------------------------------------- *******がムービークリップのインスタンス名 ++++++が引数となります。 こちらは動画の最後に表示するものとして作っています。 よろしくお願いします

    • ベストアンサー
    • Flash
  • Flash lite 1.1 で2つのリンク先

    Flash lite 1.1 で只今製作中ですが、1つのswfに2つリンクを設定(ボタンシンボルを2つ置いて。)して、携帯で確認すると、2つ飛び先があるはずが、2つとも同じリンク先へ行ってしまいます。 PC上のローカルでクリックしてみたらちゃんとそれぞれに飛ぶのですが、テストサイトへUPして携帯でチェックすると、1つになってしまいます。上下にボタンを置いているのですが上に設定したほうのURLに下もなってしまいます。 それぞれのスクリプトは以下のようにボタンシンボルに書きました。 1つ目 on (press, keyPress "<Enter>") { getURL("http://○○"); } 2つ目 on (press, keyPress "<Enter>") { getURL("http://△△"); } 自分で調べてもどうしても解からず困っています。 どうかお知恵をお貸しください。 よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • flashmx2004でリンク先を・・・

    ボタンを使ってgetURLで自分のファイルをリンクするとき on (release) { getURL("favmovie05.html","_self"); } などとしたりしますよね。 これを自分とこのhtmlファイルじゃなくって、別に作ったブログを別枠で表示させたいときはどのようにするのでしょうか。

  • フラッシュに割り当てたリンクが

    作動しません。 Flash pro 8 で作成したムービーに URLへのリンクをつけようとGET URLスクリプトを 書いたのですが うまく作動しません。 on (release) { getURL("index.php"); } ↑のスクリプトをアクションスクリプト画面で 入力しました。 対象は白の長方形でボタンに変換してあります。 何がおかしいのか色々調べたのですが初心者なもので よくわかりません。 どなたか教えてください

  • 外部ファイルでテキスト、リンク先URLを指定したボタン

    FLASH MX WindouwsXPを使用しています。 宜しくお願いします。 外部ファイルよりテキスト、URLを読み込んだマウスアクションの ついたリンクボタンを作成しているのですが、URLが上手く 読み込めません。 ボタンの構成(重なり)は上から ・ボタンインスタンス ・ムービークリップインスタンス ・ダイナミックテキスト の順です。 ダイナミックテキストは LoadDataName = "topmenu26.txt"; loadVariables(LoadDataName, ""); _root.mm1.text = menu1; と読み込み正常に表示されています。 ムービークリップもボタンにActionScriptを記入することで 正常に作動しています。 しかしボタンのリンクだけが正常に作動しません。 ボタンには外部よりリンク先URLを読み込む為、レイヤー最上段の 1フレーム目に loadVariablesNum("topmenu26.txt", 0); と記入し、ボタンには on (release) {getURL(url1, target);} で外部ファイルのに記入したURLを読み込んでいます。 「シーン1」にこのボタンを設置すると、実際この方法で正常に 動きます。 しかし、このボタンを「シーン1」からシンボル内に設置すると 1フレーム目に記入した loadVariablesNum("topmenu26.txt", 0); と、ボタンの on (release) {getURL(url1, target);} がファイルを読み込まずリンクだけ動かなくなってしまいます。 フレームに記入した loadVariablesNum("topmenu26.txt", 0); の記入場所をシンボル内に変更したり、いろいろ試してみた のですが、解決できませんでした。 どのように変更すればシンボル内でもこのようなボタンが 設置できるのでしょうか? また、ボタンに外部からURLを設定する場合、他にどのような方法が あるのでしょうか? 宜しくお願いします。

    • ベストアンサー
    • Flash
  • flashをデスクトップにしたときに。

    デスクトップ画面をflashにしようと思っているんですが、たとえば、アプリケーションを立ち上げるためにボタンインスタンスにon (release) {getURL("C:\Program Files\Internet Explorer\IEXPLORE.EXE"); } などと記述しても、 実際にクリックしてみると、大文字が認識されなかったりして、パスがおかしくなってしまいます。 アクションスクリプトで、アプリケーションへのパスを有効にする方法はありますか? ご教授ください。 ちなみに環境はwindows xp homeでflash8です。

  • 画像がランダムに表示されるFLASHを作りたい

    こんにちは、お世話になります。 下記FLASHを作りたく以前も質問させていただいたのですが、どうしてもうまくいかないところがあり、再度投稿させていただきます。 (1)リロードするたびにランダムで切り替わる画像1~6がある (2)画像の横にボタン1~6があり、マウスオーバーするとそれぞれ画像1、画像2…と表示される (3)ボタン1~6をクリックするとwebページ1~6へジャンプ(リンクさせている) (4)画像1~6をクリックするとwebページ1~6へジャンプ(リンクさせている) まず画像を表示させるために一定区間をループ再生するフレームアクションを画像分(=6個)作りました。 各々frame1、2…とフレームラベル名をつけ、 ボタン1~6には on(rollOver){ this. gotoAndPlay("frame1"); } と記述しています。(ボタン1の例) そして1フレーム目に stop(); button1.onRelease = function(){ getURL("リンク先URL", "_self"); } gazou1に on(release){ getURL("リンク先URL", "_self"); } としています。これにより(2)(3)(4)は実現できています。でも(1)のランダムが全然分かりません。 ループ再生のフレームの前に7フレーム追加し、 1は空白キーフレーム 2はgazou1 3はgazou2… と配置し、フレーム1のアクションに stop(); button1.onRelease = function(){ getURL("リンク先URL", "_self"); } a=Math.ceil(Math.random()*6)+this._currentframe; gotoAndStop(a); と書き加えました。すると、画像が何も表示されないのです。IE7やSafariでは更新ボタンを押せばランダムで画像が現れるのですが、更新ボタンを押さなければ表示されませんし、Operaでは一度ボタンにロールオーバーさせなければ表示できません。 ランダム関数がよく分からずにやっているからダメなのだと思いますが、わからなすぎて何を勉強すればいいのかも分かりません。 とにかく時間がないので困っています。 どこが間違っているのかお教えいただけないでしょうか? 長文で申し訳ありません。どうかよろしくお願いします。

    • ベストアンサー
    • Flash