2010年04月26日

ジュール逆算・計算機

簡易的にですが、Flash(swf)で作ってみました。たまにはデジハリ臭を発していかないとネ!
ジュール逆算・計算機
※追記:日ごろの行いが悪いと読み込まなかったりするみたいです。僕のね。
※更に追記:困ったときのiframe!非推奨なんて関係ねぇ!!!


昨日の夜に追加したので気づいた部員もいるかもしれませんが、左のサイドバーにありますのでデバッグ使ってみてください。
「弾の重量」と「初速」から「ジュール」を算出するツールは割と在ります。 が、ジュールの上限(約、ですが)が決まっている今、または室内ゲーム用威力制限ルール等のため、「弾の重量」「初速」「ジュール」のそれぞれを算出するツール(を統合したもの)の需要は、きっと、あるんじゃ、ない、か、と。

僕の勉強不足のせいで使い勝手が悪いのですが、ひとまず動くようになったので公開処刑公開してみます。

以下、ActionScriot(2.0)のソース。こっちこそ公開処刑ェ・・・

//J=G*M*M/2000 ←ジュール計算式メモ書き
var Gram:Number;
var Meter:Number;
var Joule:Number;

var mouse_obj = new Object ();
mouse_obj.onMouseDown = function(){
 if(txt_j.text==""){
  Meter = Number(txt_m.text);
  Gram = Number(txt_g.text);
  Joule = Number(txt_j.text);
  Joule = Gram * Meter * Meter / 2000;
  txt_j.variable="Joule";
  //trace(Joule);
  txt_j.setTextFormat(format);
 }
 if(txt_m.text==""){
  Meter = Number(txt_m.text);
  Gram = Number(txt_g.text);
  Joule = Number(txt_j.text);
  Meter=Joule*2000/Gram;
  Meter=Math.sqrt(Meter);
  txt_m.variable="Meter";
  //trace(Meter);
  txt_m.setTextFormat(format);
 }
 if(txt_g.text==""){
  Meter = Number(txt_m.text);
  Gram = Number(txt_g.text);
  Joule = Number(txt_j.text);
  Gram=Joule/Meter/Meter*2000;
  txt_g.variable="Gram";
  //trace(Gram);
  txt_g.setTextFormat(format);
 }
}
Mouse.addListener( mouse_obj );

//テキストに書式を設定
var format = new TextFormat();
 format.align = "left";// 整列
 format.font = "MS Pゴシック";// フォント名
 format.size = "30"; // 文字のポイントサイズ
 format.color = 0x000000;// 文字の色

//テキストフィールド作成
var txt_g:TextField = this.createTextField("txt_g",101,75,80,70,40);//("インスタンス名",深度,x座標,y座標,幅,高さ)
 txt_g.text = "0.2";// 文字列を表示
 //txt_g.variable="Gram";
 txt_g.background = true;// 背景の塗りがあるか?
 txt_g.backgroundColor = 0xFFFFFF;// 背景の色
 txt_g.border = true;// 境界線があるか?
 txt_g.borderColor =0x000000;// 境界線の色
 txt_g.multiline = false;// 複数行か?
 txt_g.selectable = true;// 選択可能か?
 //txt_g.textColor = 0x000000;// テキストの色
 txt_g.type = "input";// テキストフィールドのタイプ
 txt_g.wordWrap = false;// 折り返すか?
 txt_g.restrict = "0-9.";// これを書いている文字のみ表示 & 入力
 txt_g.maxChars = 5;
 txt_g.setTextFormat(format);

var txt_m:TextField = this.createTextField("tf_m",102,75,150,70,40);//("インスタンス名",深度,x座標,y座標,幅,高さ)
 txt_m.text = "80";// 文字列を表示
 //txt_m.variable="Meter";
 txt_m.background = true;// 背景の塗りがあるか?
 txt_m.backgroundColor = 0xFFFFFF;// 背景の色
 txt_m.border = true;// 境界線があるか?
 txt_m.borderColor =0xEE0000;// 境界線の色
 txt_m.multiline = false;// 複数行か?
 txt_m.selectable = true;// 選択可能か?
 ///txt_m.textColor = 0x000000;// テキストの色
 txt_m.type = "input";// テキストフィールドのタイプ
 txt_m.wordWrap = false;// 折り返すか?
 txt_m.restrict = "0-9.";// これを書いている文字のみ表示 & 入力
 txt_m.maxChars = 5;
 txt_m.setTextFormat(format);

var txt_j:TextField = this.createTextField("txt_j",103,75,220,70,40);//("インスタンス名",深度,x座標,y座標,幅,高さ)
 txt_j.text = "";// 文字列を表示
 //txt_j.variable="Joule";
 txt_j.background = true;// 背景の塗りがあるか?
 txt_j.backgroundColor = 0xFFFFFF;// 背景の色
 txt_j.border = true;// 境界線があるか?
 txt_j.borderColor =0xEE0000;// 境界線の色
 txt_j.multiline = false;// 複数行か?
 txt_j.selectable = true;// 選択可能か?
 //txt_j.textColor = 0x000000;// テキストの色
 txt_j.type = "input";// テキストフィールドのタイプ
 txt_j.wordWrap = false;// 折り返すか?
 txt_j.restrict = "0-9.";// これを書いている文字のみ表示 & 入力
 txt_j.maxChars = 5;
 txt_j.setTextFormat(format);

以上。
結構アレな部分が多いのに、なんだかんだで動いてくれるAS2.0の優しさに泣いた。
改良したい箇所、
 1.クリックではなく入力した瞬間に(インタラクティブ感モリモリで)算出させたい。→onKeyDown等でやればいいのですが、そうすると入力しているテキストフィールドはいいとしてそれ以外のどちらを算出するのかでちょっとうまいこと思い付かずにいます。(需要のなさそうな重量をハブるという方向で考えてはいますが…)
 2.絵。
 3.背景。→2と3手伝ってくれる人求む



同じカテゴリー(小林)の記事画像
あたしって、ほんとバカ
セミオートが南無ってたM4を直しました
【1月16日】|  ^o^ | はSPLASHにいくようです
ふたりはブロガー MaxHeartman
グロック純正ホルスター
チャリで秋葉原に行ってきた
同じカテゴリー(小林)の記事
 あたしって、ほんとバカ (2011-06-29 02:03)
 セミオートが南無ってたM4を直しました (2011-02-07 22:14)
 ふぁびこん (2011-02-03 21:15)
 【1月16日】|  ^o^ | はSPLASHにいくようです (2011-01-25 22:18)
 ふたりはブロガー MaxHeartman (2010-11-23 01:09)
 グロック純正ホルスター (2010-10-29 01:13)

Posted by ミリタリー研究会  at 17:10 │Comments(0)小林

上の画像に書かれている文字を入力して下さい
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。