トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   どこでもFlash【携帯向けFlash関連】
     flash lite 1.xで動的にメニューを生成
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
TJFORD
Åê¹ÆNo.38771
投稿日時: 2008-5-12 16:53
半人前
居住地: Tokyo
投稿: 42
使用環境:
:Flash CS3
flash lite 1.xで動的にメニューを生成
お世話になります。
題名の通りなのですが、flash lite1.xで動的にメニューを生成したいと考えています。

仕様としては、
ボタンa、bがありaにロールオーバーするとサブメニューが表示される、同様にbにロールオーバーするとサブメニューが表示されるというものです。これらのサブメニューを外部のtxtファイルなどで読み込んで動的に作成することは可能でしょうか。さらにそれらにリンク(ボタン)を持たせることはできますか。as2.0などであればxmlなどで読み込んでノードの数を調べてfor文で回すといった流れになるかと思いますが…。


本日よりflash liteをはじめて触りましたがなかなか勝手が違います。
可能かどうかだけで結構ですのでお教えいただけますでしょうか。
flashlite
Åê¹ÆNo.38773
投稿日時: 2008-5-12 18:32
常連
居住地: 東京
投稿: 69
使用環境:
WinXP Win7
Flash CS3,Flash CS5.0

FlashPlayer
FlashLite 1.1、2.0、2.1、3.1(下記)
Docomo SO903i
SH-08A
SoftBank 911T
 922SH
945SHG
au W61SA
S004
Disney DM001SH
Willcom Windows Mobile
 WX341k
Re: flash lite 1.xで動的にメニューを生成
FlashLite1.xで可能でしょうか?
というご質問ですが、外部のtxtファイルを読み込むということであれば、FlashLite1.0では不可能、FlashLite1.1では可能といえます。

FlashLite1.1以下は、文字列を制御する方法が少ないので
動的なメニューを書く、txt(CGI側)ができるだけ手助けすると、ぐっと実現しやすくなると思います。
たとえば、

as=4&bs=9 ←AとBのサブメニューの数
a0=うにゃうにゃA ←メニューのタイトル
b0=うなうなB 
a1=ああああ ←サブメニューのタイトル
a2=いいいい
:
b9=サブメニュー最後

(実際は全部&でつなげて)



と外部で最初から変数別に切ってあげれば
あとは、サブメニューの数を使ってfor文で
ダイナミックテキストを持ったムービークリップをコピー
配置
で回してあげればよいと思います。

似たようなものを作ったことが有りますが、上記の方法ではダメだったり、どこが出来ないというのがありましたら
一つ一つを個別に質問されたほうがよろしいかと思います。


----------------

TJFORD
Åê¹ÆNo.38778
投稿日時: 2008-5-13 8:31
半人前
居住地: Tokyo
投稿: 42
使用環境:
:Flash CS3
Re: flash lite 1.xで動的にメニューを生成
さっそくありがとうございます。

順を追ってやっていきたいと思います。
まずは、MovieClip(名前box)に空のダイナミックテキストを作成したものをステージに置き、動的にduplicateを試してみました。

loadが完了したものとして、
要素の数は仮に「5」(実際はtxtファイルの値を参照しますが今は実験ということで)、ボタンに以下のスクリプト。

on(rollOver){
for(i=1;i<5;i++){
newName = "box" add i;
duplicateMovieClip("box",newName,i)
test = eval("hensu/:a" add i)
        setProperty(newName, _y, 30*i);
}
}

で動的に作成することはできましたが
中のダイナミックテキストに読み込むのがなかなかうまくいきません。今はhensuというMovieClipの中にloadVariableでtextファイルを読み込んでいるのでhensu/:a1、hensu/:a2、hensu/:a3などと格納されているはずなのですが…。そもそもの考え方、組み方がおかいいのでしょうか?

flashlite
Åê¹ÆNo.38833
投稿日時: 2008-5-15 23:22
常連
居住地: 東京
投稿: 69
使用環境:
WinXP Win7
Flash CS3,Flash CS5.0

FlashPlayer
FlashLite 1.1、2.0、2.1、3.1(下記)
Docomo SO903i
SH-08A
SoftBank 911T
 922SH
945SHG
au W61SA
S004
Disney DM001SH
Willcom Windows Mobile
 WX341k
Re: flash lite 1.xで動的にメニューを生成
引用:

今はhensuというMovieClipの中にloadVariableでtextファイルを読み込んでいるのでhensu/:a1、hensu/:a2、hensu/:a3などと格納されているはずなのですが…。そもそもの考え方、組み方がおかいいのでしょうか?



考え方は、その方法で大丈夫だと思います。
上記の状況は
testに希望の値が入らないのですか?
記述が適切かどうか判断したいのですが
各MovieClipの中に変数の値をセットしているような記述は見当たりませんが・・・

外部ロードやduplicateはうまくいっているようなので
例えば、
単純にダイナミックテキストを持つMovieClipをひとつ作って
それに対して
中のテキストの表示を変えるのは出来ますでしょうか?




----------------

TJFORD
Åê¹ÆNo.38835
投稿日時: 2008-5-16 0:31
半人前
居住地: Tokyo
投稿: 42
使用環境:
:Flash CS3
Re: flash lite 1.xで動的にメニューを生成
ご返信ありがとうございます。

少し触ってみたところできたかもしれません。
boxというムービークリップの中にダイナミックテキストをあらかじめ作成しておき、変数名をabcに。
これをduplicateしています。

on(rollOver){
for(i=1;i<5;i++){
newName = "box" add i;
duplicateMovieClip("box",newName,i)
eval("box" add i).abc = eval("hensu/:a" add i);//ここの書き方に自信がありません。もっと適切な書き方があるのではと思っています。
     //eval(newName).abc = eval("hensu/:a" add i);
setProperty(newName, _y, 30*i);
}
}

eval();の使い方がいまいちまだしっかりと理解できていません。
そこに問題があったのかと思います。

少しそれますが動的に読み込んだテキストのサイズを変更するのは難しいのでしょうか?さらにロールオーバーしたらテキストのカラーを変えたりもできないですよね?

flash lite1.1はダイナミックにコンテンツを読み込んでインターフェースなどを作成するのには向いてないと勝手に判断してしまいそうです…。

flashlite
Åê¹ÆNo.38862
投稿日時: 2008-5-17 18:17
常連
居住地: 東京
投稿: 69
使用環境:
WinXP Win7
Flash CS3,Flash CS5.0

FlashPlayer
FlashLite 1.1、2.0、2.1、3.1(下記)
Docomo SO903i
SH-08A
SoftBank 911T
 922SH
945SHG
au W61SA
S004
Disney DM001SH
Willcom Windows Mobile
 WX341k
Re: flash lite 1.xで動的にメニューを生成
引用:

eval();の使い方がいまいちまだしっかりと理解できていません。
そこに問題があったのかと思います。




できたかもしれないというのは、思い通りでは無いものの
動作したということですか?良かったですね。

evalの使い方は、うまく動作しているなら問題無いと思いますが
左辺にevalが気持ち悪いということであれば
set()を使えばよいと思います。
setProperty()と同じような使い方です。

set(設定対象,プロパティ値)

引用:

少しそれますが動的に読み込んだテキストのサイズを変更するのは難しいのでしょうか?さらにロールオーバーしたらテキストのカラーを変えたりもできないですよね?

flash lite1.1はダイナミックにコンテンツを読み込んでインターフェースなどを作成するのには向いてないと勝手に判断してしまいそうです…。


flashLiteは、最初に述べたようにStringやtextのScriptが乏しいです。
でも、よくいわれることですが
そこをテクニックでカバーしていくのが大切です。

ご希望の動作は、ロールオーバーしたらテキストのフォントを
大きくしたり、色をハイライトにしたいということでしょうか?

ボタンでロールオーバーしたときのテキストのカラーを事前に変更しておけばよいと思います。

MovieClipのみの場合でも。
例えば
abc ←普段のダイナミックテキスト
def ←ロールオーバー時のダイナミックテキスト

defのダイナミックテキストは
文字の大きい・カラーを変えたテキストでabcと同じ位置に重ねて配置

//普段
abc="メニュータイトル";
def="";
//ロールオーバーしたときに
abc="";
def="メニュータイトル";

ではどうでしょうか?

拡大するフォントサイズは自由な範囲で指定したい!というのであれば
それはあきらめるしかないでしょう・・・
※ActionScriptで後からフォントサイズを変更できたとしても
同じことですが、
ダイナミックテキストを表示するのはデバイスフォントでしょうから
現実には12,16,20,24のうちのどれかを指定し
そのフォントサイズが利用されるかどうかはデバイス(ケータイの機種)まかせです。
実機で確認する必要があります。



----------------

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops