?!?!

P.D.S.のちらしのうら的な物

記事検索

検索フォーム
キーワード
検索方法

検索結果一覧

Flashの表示方法を変更

【2011/05/28】
今までOBJECTタグを直に貼り付けてましたが
外部JavaScriptにタグを書かせることで
記事を書くときの手間の簡略化と
記事本文のテキスト削減を行いました

JavaScriptの構造をシンプルにして
IE8とFireFox3.5.16で問題が無かったので大丈夫だとは思いますが
挙動不審がありましたら知らせてください

副作用としてJavaScriptを切るとFlashが表示されなくなります
(今の方式に移行してない記事はそのままです)

【2011/06/02】
動画プレイヤー用の処理を追加してさらに簡略化しました
もともと動画を簡単に設置できるようにしたかったんですよね

ル・シエル・ブルー ヒール回復量計算機

Wikiに計算式が載っていたのですが
計算が複雑でぴんと来なかったのでswf化しました


計算に必要な項目を入れてやれば勝手に計算してくれます

FAIは補正値込みの値を入れてください

%増加は装備やスキルを全て合計した値を入れればOKです

Saveを押すと今の値を保存します
Loadを押すか次回閲覧時に保存した値が呼び出されます

スキル回復量手入力は新しいスキルが実装された時用のもので
通常はスキル名とレベルを選べば勝手に入力されます


ついでにヒール回復量から必要FAIを逆算するものも作ってみました

指定した回復量を超えるのに必要なFAIを算出するもので
きっちりその回復量が出るわけではありません
大まかな目安程度にしてください


公式サイト:http://ciel.ujj.co.jp/


【2010/01/31】

ぷちバージョンアップage


【2011/03/17】

ぷち復活したので
値をセーブ出来るようにして
将来新しいスキルが来ても使えるように
スキル回復量を手入力できるように改造しますた

セーブ機能と手入力機能を付けるために
結構いじくりまわしましたので
バグが出てたらコメントで教えてください

PS:
メティス鯖の主に5chをうろついてる
「ルラキル」が私のキャラで野良メイドを育て直し中
だけどそろそろレベル上げに飽きてきたかも(苦笑

Flashで動画を再生するときにフレームレートが落ちる

このサイトでアップしている動画を見るときに
窓XP SP3・げふぉGTX295のSLI動作環境で
ハードウェアアクセラレーションを利用すると
フレームレートが60から20まで落ちますね・・・・
SLIを無効にすると元に戻ります

CS4付属のコンポーネントが悪いのかFlashPlayerが悪いのか
げふぉのドライバーが悪いのかは判りませんが
FlashPlayerのハードウェアアクセラレーションは
いきなりPCが落ちる等、地雷が多いようです

動作が怪しい時は
FlashPlayerのハードウェアアクセラレーションを無効にしてみると
解決するかもしれません

FlashLite1.1上での時計表示

ANGEL PLAYERをFlashLite1.1化するため資料を引っ張り出したのでメモメモ

曜日文字列変換

FlashLite1.1では配列変数が使えないため擬似的な方法を使います
(曜日程度ならばswitchとかでも良いんですががが)

week0 = "Sun";
week1 = "Mon";
week2 = "Tue";
week3 = "Wed";
week4 = "Thu";
week5 = "Fri";
week6 = "Sat";

のように文字+数字のものをあらかじめ作っておき

week = eval("week" add fscommand2("GetDateWeekday"));

とすれば配列のように曜日文字列が取得できます
evalを使うところがポイントです


ここでは使ってませんが
疑似配列のデータが何個あるかを取得したい時は

num_Week = 0;
while( eval("week" add num_Week) ne ""){num_Week++}

としておけばnum_Weekは6となります
nullやundefinedは使えませんので「""」としてあります

空白のデータも扱いたい時は
終わりを表す文字列を決めてやればOKです

上記weekの疑似配列に

week7 = ""
week8 = "ArrayEnd"

を追加して

num_Week = 0;
while( eval("week" add num_Week) ne "ArrayEnd"){num_Week++}

とするとnum_Weekは7となります
chr関数で通常では使わない文字を指定した方が確実かもしれません

年月日や時間を表示

上記の曜日文字列変換に加えて・・・・

year = fscommand2("GetDateYear");
mon = fscommand2("GetDateMonth");
if (mon < 10) { mon = "0" add mon}
day = fscommand2("GetDateDay");
if (day < 10) { day = "0" add day}
str_Date = year add "/" add mon add "/" add day add "(" add week add ")";

としてやると2010/01/01(Fri)のような桁あわせを含めた年月日を作れます
FlashLite1.1で文字列をくっつけるときは
+ でなく add を使います

時間は

hour = fscommand2("GetTimeHours");
if (hour < 10) { hour = "0" add hour}
min = fscommand2("GetTimeMinutes");
if (min < 10) { min = "0" add min}
sec = fscommand2("GetTimeSeconds");
if (sec < 10) { sec = "0" add sec}
str_Time = hour add ":" add min add ":" add sec;

となります

あとはダイナミックテキストをステージ上に配置して
プロパティ内の変数にstr_Dateやstr_Timeと指定してやれば表示されます
この方法はAS3.0では廃止されたので判らない人がいるかもしれませんねー
あと、デバイスフォントを使わない場合はテキスト埋め込み指定を忘れずに

時間を秒単位までしか取得出来ない

FlashLite1.1では時間取得にfscommand2を使用しますが
これは秒単位までしか時間が取得できません
Dateオブジェクトのような1/1000秒単位を使いたい場合は
getTimer()を併用する必要があります

昔に作ったマビノギの携帯用MG表の時計が等間隔で動かせているのは
getTimer()を併用して解決しているためです
(マビノギの時計を作ったことがある人しかわかりませんかそうですが)

FlashVars等を使ったAS3.0swfへの変数受け渡し

AS2.0ならば特に何もしなくても_rootに収まってましたが
AS3.0ではloaderInfo.parametersから引き出さなきゃいかんようです
資料がなかなか見つからずえらい苦労させられました

HTMLのタグから

OBJECT内
<param name="FlashVars" value="movie=MS1_St.Muscle.mp4&image=MS1_St.Muscle.png" />

EMBED内
FlashVars="movie=MS1_St.Muscle.mp4&image=MS1_St.Muscle.jpg"

とした場合、AS2.0ならば何もしなくても
_root.movie に MS1_St.Muscle.mp4 が
_root.image に MS1_St.Muscle.png が入ってますが
AS3.0の場合は
var mov:String = loaderInfo.parameters["movie"];
var img:String = loaderInfo.parameters["image"];
のように受け渡し処理をしないといかんそうです
ちくしょーやっぱりめんどくさくなってたかヽ(`Д´)ノ

AS2.0とAS3.0では命令も概要も別物になっていることと
携帯コンテンツはしばらくの間AS2.0で作る必要があるため
開発者はかなり苦労させられると思います(別の言語を二つ覚えるのと同じ)


PS:
ADOBEのマニュアルは不親切な上にサンプルコードが無いんでワケワカランですだ
おまけにWEBマニュアルとか非常に使いづらいんでまぢやめてくれ
macromediaの頃のマニュアルは下手なガイドブックより解りやすかったので
Flash5を買った時に基本操作の本を一冊買っただけで
あとはマニュアルとにらめっこだけで何とかなりました

ナビゲーション

PHP Blog