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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   どこでもFlash【携帯向けFlash関連】
     Lite1.1での可変長マーキー
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
nacbox
Åê¹ÆNo.42196
投稿日時: 2009-4-24 18:41
新米
居住地: 東京
投稿: 25
使用環境:
Win7 / Flash CS4 PRO
Lite1.1での可変長マーキー
現在、Lite1.1で、可変長テキストのマーキー表現で悩んでいます。

PCで可変長マーキーを実現するには、
・テキストフィールドをMC化
・テキストフィールド.autoSize=trueを宣言
・MC._xを操作してテキストをスクロール(マーキー処理)
・MCが、テキストフィールド._width分だけ表示領域外に出たらMCのX座標を頭に戻す
という処理でマーキーを実現できます。

しかし、Lite1.1だと、autoSizeプロパティが無く、テキストフィールドの長さを、表示する可変長テキストの長さに追随させることができません。
そのため、どこまでMCが移動したら、再びX座標を頭まで戻していいか判断できません。

文字数をカウントしてwidthを疑似的に計算しようかとも思いましたが、テキストはデバイスフォントなので、携帯端末によって、文字の大きさや字詰めが違ってしまいますよね。
(Lite1.1では全角・半角の判別ができずバイト数が分かりませんが、それは表示テキストを外部から読み込む際に、変数として一緒に読み込ませることで何とか解消できます)

なにか、うまく「文字列のwidthを判定すること」=「文字列が領域外まで移動したこと」を判断する方法は無いでしょうか。
コマツ
Åê¹ÆNo.42197
投稿日時: 2009-4-25 0:13
職人
居住地: 東京都葛飾区
投稿: 356
使用環境:
windows7
CS5.5 CS6
Re: Lite1.1での可変長マーキー
nacbox さん、こんばんは。

ちょっと考えてみました。
テキストフィールドとMCをあわせて、duplicateして並べてみるとか考えてみたのですが、Flashlite1.1におけるテキストフィールドの仕様を考えると、フィールドが可変しない以上実装するのは難しいのではないかと考えます。

この辺は、アイデアレベルなのですが、テキストフィールドに一文ずつ入力していくような仕組みはどうでしょうか?

考えられるテキストの最大の長さを想定して、すごい横幅の長いテキストフィールドを作成し、行の揃えを右にします。
MCのフレームループを使い、定期的に、マーキーに表示する文字列をsubstringとか使って、1文字ずつ抜き出し、テキストフィールドにaddしていけばそれっぽく見えそうに思えます。(最後は空白を何文字か入れる必要はありそうですけど)

参考になればと思います。

cda244
Åê¹ÆNo.42215
投稿日時: 2009-4-27 15:03
新米
居住地: 千葉
投稿: 5
使用環境:
CS3
4.11
XP Pro SP3
Re: Lite1.1での可変長マーキー
コマツさんの考え方と基本は同じですが、追加するのではなくて、消す方法で考えました。

1、TextFieldは左揃えのまま。
2、表示させたい文字列の先頭に幾つか空白を入れておく。
3、TextField.textに2で作った文字列を設定(空白のみが表示されてる状態)。
4、フレームのループ内で文字列の先頭1文字を削除してTextField.textに再設定。
5、文字列の長さが0になったら3に戻す。
というのはいかがでしょうか。

このままだと全角、半角で幅が違うので、文字が流れるスピードにムラが出てしまいますが、参考になれば幸いです。
nacbox
Åê¹ÆNo.42225
投稿日時: 2009-4-28 11:43
新米
居住地: 東京
投稿: 25
使用環境:
Win7 / Flash CS4 PRO
Re: Lite1.1での可変長マーキー
返信が遅くなって申し訳ありません。
お二人とも、ありがとうございました。

コマツさんの方法で解決しました。

cDa244さんの方法も目から鱗だったのですが、端末によって文字の大きさが異なるため、必要な空白文字列が機種によって変わってきてしまいます。スタート時に文字がフライングして表示されないためには必要十分な空白文字列を頭に追加しておく必要がありますが、そうすると、文字サイズの大きな端末だと、テキストが出てくるまでタイムラグが生じてしまうので……。
コマツさんの方法でも、末尾に追加する空白は必要十分な量を追加しなければいけませんが、「一度スクロールして画面外に消えてから、再びスタートするまで」の間は少し間があっても違和感がないので、こちらを採用させていただきました。

おかげで助かりました。
ありがとうございました
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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