2008年8月28日

●FlashLite3.0制作上の注意(特にSharedObject)

FlashLite3.0のデータをつくりました。

めちゃめちゃ苦労した、ほとんど気苦労だけど

制作上の注意としては
1.FlashLite3.0のパブリッシュは当然のことながらFlashCS3以降じゃないとダメ。
2.FlashLite2.0のデータからコンバートする際には基本手を加える必要がないが、ファイルサイズが増えるので注意!
3.SharedObjectを使う際にはプラグイン入れないと制作は不可能!!!

詳しくは追記にて

続きを読む "FlashLite3.0制作上の注意(特にSharedObject)"

2008年7月27日

●flashlite2.0でのSharedObject

flashlite2からSharedObjectが使えるようになっていたのは知っていたが、
全く手を出していなかった。
ようやく、そこにふれる機会を得て、作ってみたはいいが、全然PCでの作り方と勝手が違って大きな壁にぶち当たった。

具体的にどう違うかというと、
リスナーオブジェクトの設定とかが必要。
こちらを参照

また、最新の端末では起こらないかもしれないが、flashlite2.0対応初期の端末では、
SharedObjectが読み込まれるまでのタイムラグがあるので、
最初のフレームでSharedObjectを呼び出した後、5-10フレームあけて、
読み込み完了のスクリプトを記述してやる必要がある。

例として
1フレーム目でSharedObjectを呼び出す。

SaveData = SharedObject.getLocal("SaveData ");

その後5-10フレームあけて下記を記述

//データ読み込み完了時のファンクション
function loadCompleteSaveData (SaveData:SharedObject) {
if (0 == SaveData.getSize() ){
// サイズが 0 の場合、データを初期化
SaveData = "";
}else{
// SaveDataのすべてのデータを確認のためトレースする
trace( "SaveData " );
for (var idx in SaveData.data) {
trace( " " + idx +": " + SaveData.data[idx] );
}
}
}

//リスナー設定をしファンクションを実行させる。
SharedObject.addListener( "SaveData", loadCompleteSaveData );

これで、うまく動いた。(検証機:MEDIASKIN)

2008年7月25日

●flashlite2.0での文字化け回避

flashlite2.0で組むときに、メーラー起動させて本文とか入れるときに文字が化けるのの解決方法

ルートの先頭フレームに

System.useCodepage = true;

を記述。

getURL記述の際に


ma="mailto:";
ms="メールタイトル";
mbメール本文"
getURL(ma + "?subject=" + escape(ms) + "&body=" + escape(mb), "_top", "POST");

というように、エスケープで割り当てると完璧。
System.useCodepageの記述が抜けやすいので注意!

2008年7月17日

●ダイナミックテキストの震え(揺れ)

携帯待ち受け作ってて、
時間やら、月日やらをダイナミックテキストで表示してるわけです。
んで、原因不明のダイナミックテキストの震えが発生。

特に動きもつけてないのに上下にずっと震えてるテキストがある。
埋め込みフォントにしたから?
気持ち悪いなぁー、仕様なのかな?なんて思っていろいろ試行錯誤してみた結果

該当のダイナミックテキストをMCの入れ子にしてやることによって解決。

解決したからいいけど、原因がわからん。

2008年2月20日

●ツール系携帯flash作成まとめ

待ち受けflash、着flash、メニューの作成を試しています。
 
作成中に気づいたことまとめ。
<待ち受け>
サイズは画面サイズでOK、フォントはデバイスフォントか埋め込みで。
端末によって処理速度が異なるので早さはシビアに見ない。
 
<着flash>
デフォで電話番号、発信者の情報が出るようになっているものの方が多いので、
フィールドサイズは小さめに作る。
ex)MEDIA SKINは230x100で作成。
音を取り込むときにコツが必要
1.mmf形式ファイル(着信音形式)を用意しておく
2.なんでもいいから音声ファイル(wav, mp3)をライブラリに取り込んでステージに配置
3.ライブラリの取り込んだ音声ファイルのプロパティを開き、デバイスサウンド→参照でmmfファイルを指定
 
<メニュー>
端末によってコマンドが違うので汎用性に欠ける。
fscommand使いまくり
 
■ダウンロードタグ■
swfファイルをメール添付で送りつけても待ち受け以外は該当ファイル(着flash、メニュー)として認識されないのでサーバーにアップしてダウンロードする。
その際にオブジェクトタグ内でデータ形式を指定してダウンロードするこで使えるようになる

上記太字の所を書き換えることによって各データ形式となる。
 
タグは下記の通り
flash待ち受け<param name="disposition" value="devfl7z" valuetype="data" />
着flash<param name="disposition" value="devfl8r" valuetype="data" />
メニュー<param name="disposition" value="端末によりけり(MEDIA SKINはkcido09)" valuetype="data" />
  
<param name="size" value="ファイルサイズ" valuetype="data" />
サイズをしっかり入力してあげないとダウンロードエラーを吐く
 
<param name="title" value="ダウンロードファイルの名前" valuetype="data" />
名前も入力しておくと後から後悔しないw
 
↓ダウンロードタグまとめ
<object data="該当ファイル.swf" type="application/x-shockwave-flash" copyright="no" standby="ファイル名">
<param name="disposition" value="データタイプ(上記参照)" valuetype="data" />
<param name="size" value="サイズ" valuetype="data" />
<param name="title" value="ファイル名" valuetype="data" />
</object>


※メニューのタグ表記が間違っていたので修正

2008年1月29日

●flash待ち受け

flashliteのことずっとかいておきながら待ち受けflashって作ったこと無かったんですよね。
今後のためにもひな形作っておかなきゃマズイだろということで作成。
まー作成自体はすんなり出来たんですが、
んじゃ、実際ものにしたときにどれくらいの容量になるんだろうと思って組んでみたんですね。
そしたら簡単なもので15kbくらい、
グラフィックを全部PNGで入れたのでこれくらいになっちゃったんですが、そこそこの出来。
 
早速、各友人に配布したところ結構なクレーム(w
短時間で、試験的に作ったものだったのでそりゃクオリティは高いとは言えないわな(w
週末にとある友人に呼び出され徹夜でブラッシュアップ作業ですよ。
おかげでかなり納得のいくものが出来たからよかったです。
 
ちなみにブラッシュアップ後は20kbくらいまで容量が増えました、
待ち受けとして常に表示することを考えるとこのサイズって結構重いんだろうなと思っています。
次回作成時にはもっと軽いものが作れればと思う次第。
 
ここで、待ち受けflash公開しようと思ったんですが、
モチーフにしたものが私的にしか使えないようなものだったので公開は出来ません、申し訳ない。

2007年12月10日

●変数がらみのパス(追記)

以前、変数がらみのパスの設定の仕方を説明したけど(カテゴリソートして見てください)、
その変数に加算減算等施するさいには、( )カッコでくくってやらな上手く行かないことを再認識。
 
tellTarget("/MC"add (変数名+1) add "/MC入れ子"){
 
てな感じ。
 
ここまで重要かと思わずに以前普通にやっていたんだけど、最近同じ事例が出てきて、
30分くらい悩んだあげく、「前にやってんじゃん!!!!!」って何とも情けない状況に・・・
いやぁ、覚え書きって大事っす。

2007年8月 2日

●swich文で複数case

条件分岐で使う
 
swich(変数){
 case XX:
  〜実行文〜
break;
}
 
複数のcaseが同じ実行をするときにまとめて記載できる
 
 case A:
case B:
case C:
  〜実行文〜
break;

これだけ。
大したことないけど、実行文が長い場合これがわかっただけで大分役立った。

2007年4月11日

●変数を外部に渡す際の注意事項

javascriptやgetURLにて何かしらの変数等をflash外に渡す場合に注意しなければならないこと
 
FlashかFlashLiteのどっちの仕様だかわからないが、
変数を外部に渡す際にはスクリプトが書いてある階層にある変数全てを外部に出そうとする仕様があるそうで、
たとえばルートに変数A,B,Cがあって、getURLで外部に変数Bのみを出そうとしたならば、

///////////////////////////////////////////////////
外に出すクラス = 変数B;
getURL("http://XXXXXXXXXXXXXXXXX",_blank,"POST");
////////////////////////////////////////////////////

こんな感じで書いちゃうと、A-C全て出そうとするので、
外に出すスクリプトはムービークリップの中に入れてしまうなどして一階層下げた所に書いておく。

上の例ならば、ルート上にムービークリップを作成し、その中のフレームに

///////////////////////////////////////////////////
外に出すクラス = /:変数B;(「/:」でルートを呼んでいるわけ)
getURL("http://XXXXXXXXXXXXXXXXX",_blank,"POST");
////////////////////////////////////////////////////

と書くことで、
その階層には変数Bしか存在しないことになり、うまくいくわけ。
ブラウザとの連携を計るインタラクティブな携帯用Flashムービーを作成するにあたっての注意点でした。

2007年2月20日

●fscommand2

今月号のweb Designing
珍しく携帯向けflashの特集やっていたので早速実践。
 
仕事絡みで作ることはなかったfscommand2の機能を試す。
携帯の電波状況を取得するflashを作成することに成功、
web Designingの作例のスクリプトまんま書いただけだけどw
 
この機会にfscommand2の機能をもっと見てみると
電池残量とか、携帯電話の時計設定の取得とか出来るのね。
時間会ったら多機能のflash待ち受け作ってみようと思う。
 
そろそろ自分の携帯の機種変更もしたいので、
新しくしたらメニュー作成にもチャレンジしたいなぁ。

2006年11月22日

●変数がらみのパス

入れ子になっているMCへのパスを指定する際に、
入れ子の親MC名に変数を使っている場合のパス

tellTarget("/MC"add 変数名 add "/MC入れ子"){


 
スラッシュ(/)の表記の仕方がわからなくてちょっと困ったw

2006年11月 2日

●オブジェクトの作り方(推進)

大きいイメージオブジェクトはjpg
小さい物に関してはパスでオブジェクトを作った方が良い。
 
根拠
でかいイメージオブジェクトってのはだいたい背景で使ったりしている物に当たると思うので、
劣化させてもそんなに不都合じゃないはず。
作成時にフォトショップ等で画質を可能な限り下げて取り込んでおく、
もし、swf完成時に容量オーバーが見られた際に
パブリッシュの設定-jpg画質を下げることによって容量軽減となる。
小さいイメージオブジェクトは逆にパスデータの方が軽くなる、
実際に検証事例としてあげるのが
jpg=背景
パスデータ=アイコン等
である。
 
ぶっちゃけ、どの程度の大きさを境にしてjpgが良いのかパスが良いのかというのは
その時々に検証が必要。

2006年9月26日

●Flash Lite 2.0

Flash Lite 2.0対応端末が発売され始めていますね、
ちょうど携帯の機種変更が出来るのでこの際、対応機種にしてしまって
検証してみようかと思っているんですが、
どうも好みの端末がない・・・

2006年9月13日

●文字列を計算する[Give Up]

本日のジョブにて文字列を式にする方法を必死に検索しておりました。
結果から言うとギブアップ、
出来そうなんだけどなぁ・・・・
 
具体的にやりたかったことは
四則計算の問題で入力するのは演算子、
それを計算して答えを出したかった。

つまり

 1□5□7□8=X
(□の中に演算子[x,/,+,-])を入力
 最終的にXの数値を出す。

というもの。
1対1の計算ならば電卓のflashを参考に出来るんだが、
複数数値の計算になると、[x,/]の演算子を入力した際に優先的に計算させるという問題が出てくる。
[x,/]が入力させたらフラグを立ててそっちを優先的に計算させるってのはわかるし作れるのだが、
かなり長い式になるでしょ?
それならわかるんですが、入力されたモノを文字列として表記してそれを計算させられたら手っ取り早いじゃない(笑)

上の例左から□をbox_1、box_2、box_3とした際に

X = 1 add eval("box_1") add 5 add eval("box_2") add 7 add eval("box_3") add 8

で文字列は出来るのだが、そこから計算させることが出来なかった。
 
うーん、出来そうなんだけどなぁ・・・

2006年8月11日

●容量軽減について

キャリアによって容量制限がある携帯用Flash
完成させた後で、容量軽減に苦労するわけです。
 
シンボルでシェイプ等のグラフィックのグループ化をしていると容量が重くなる。
イラストはパスデータで埋め込むか、画像にして埋め込むかは物によって変わってくる。
 
とりあえずこの二点。

2006年8月 9日

●フレームレートとフォントサイズ

Flashの再生速度であるフレームレート(fps)デザインによっては鍵になるモノであります。
アニメーションのスムーズさの演出で重要だったり簡単な時間配分の目安だったりするんだけど、
Flash Liteにおいてはあまり数値をいじっても意味がなさげ。
 
それは端末の処理能力によるのかもしれないのだが、あんまり早くしても良い効果を得られない。
目安はデフォルトの12を中心に10-15くらいらしい。(Flash Lite 1.1)
 
 
テキストを入力する際は容量に余裕があるなら分解して(コマンドorCtrl+B)、画像扱いとするとデザインが崩れないので良いのだが、いかんせん画像なので、一気に容量が増える。
 
容量に余裕がない場合はテキストを制止テキストorダイナミックテキストとして配置するのだが、
ダイナミックテキスト扱いにした方が容量は軽くなる。
無論、フォントの種類はデバイスフォントを使う。
また、注意したいのがフォントサイズ。
いくらFlash側で指定しても、端末の持っているフォントの大きさが端末ごとに決まっているので、上手い具合に調節が必要。
 
たとえば、12pxで指定したフォントが、端末側で24pxになり、テキスト半分が表示されない事が起きる。
考え方としては、フォントは大・中・小に振り分けられる事が多い、
キャリア・端末により12-36pxらしいが、もっとも無難なのは20px前後だと思う。

2006年8月 5日

●actionscript→Flash Lite その1

アクションスクリプト1.0-2.0をFlash Liteならこう書くって言う逆引き的メモ
 
そもそも、携帯用Flashのスクリプトが「Flash Lite」って名称なのがわかりずらいと思うんだけど。
Flash LiteはFlash4の機能を基準としているわけだが、Flash4とFlash5以降でスクリプト記述方法がかなり変わっておりほとんど別物として認識しても言いと思う。
自分の経験で書いているモノなので間違ってたらご指摘お願いします。
 

よく使うもの

◆_root.[Actionscript]→/ or tellTarget()[Flash Lite]
インスタンスのターゲット設定でよく使うパス記述の方法で非常に便利。
がーFlash Liteではコレがない!
非常にムカついたw
 
で、Flash Liteにおいてどう記述するかっていうと、
ムービークリップ指定の際には
tellTaget(階層指定+インスタンス名){命令}
 階層指定はlevel0.とかで指定する。

また、パス指定の債には
/が_root.となる、一個上の階層を指定の際は../