top


総投稿数 本 
no_

スポンサーサイト

 --------
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
カテゴリ :スポンサー広告 トラックバック(-) コメント(-)
no_544

Flex:◇禁煙カウンタ移植:残り半分を切ったFlex3試用版。やれるところまでゆくぞ(2/2) ・・・ 【Flex:7日目】

 2008-12-14
 ははは。投稿数 稼いじゃいましたねぇ。
 長いので2つに分けました。ご容赦・・・

 前置きは、前回の投稿 見ていただくとして
早速、顛末の続きを・・・

 前回も書いたけど、最後に
 「驚きのカミングアウト」があるよ・・・

 ◎やったるで!禁煙カウンタ Flex3(試用)版:(2/2)
 ※長いので2回に分けた。

 追記に ▼

※この連載は、はじめて「Flex」に取り組んだmetaboyが、
 60日間体験版を利用して、ゆっくりと学んでゆく、詳細な記録です。
                      (昨日・本日の作業時間:6.0時間
【Flex:7日目】


FC2ブログランキングにほんブログ村 IT技術ブログ Webサイト構築へブログ王ランキング人気ブログランキング人気ホームページランキングへ


more**************************************************
やったるで!禁煙カウンタ Flex3(試用)版:(2/2)
**************************************************
前回の投稿
 続きだ。


 ■関数ソース
 /*------------------------------------------*/

 ■Functions.as の内容 その2
  前回記載したように、オブジェクトの入れ替えは
   ・同じ位置に複数のオブジェクトの配置
    表示プロパティの変更 で実現
    細かい部分をひとつにまとめた。


  ■細かい部分のまとめて 表示・非表示
private function onOff_sets(booVal:Boolean):void {
lbl_imamade.visible = booVal;
lbl_tabakowo.visible = booVal;
lbl_ichinichi.visible = booVal;
lbl_sutteta.visible = booVal;
set_yen.visible = booVal;
set_hon.visible = booVal;
mv_setfix.visible = booVal;
if(booVal==true){ mv_set.visible = false; Mes.visible = false;
}else{ mv_set.visible = true; }
}

   ・引数を Boolean の true か false かを与え、
    まとめて設定変更


  ■禁煙の
   実行コントロール部分
   ・スタート(最初)
   ・停止(ギブアップ?)
   ・再開(いやぁ、続けるよ)
   ・終了(無念、リタイア)
   の4つだ。

   ※いづれ整理するが今回は 力業で
    黙々と記述。
private function goAc_start(intVal:int):void {
//スタート
if(intVal==1){
lbl_title.text = "禁煙開始してから ...";
lbl_day.text = "日";
ticker.addEventListener(TimerEvent.TIMER, goCountDown);
ticker.start();

mv_ed.visible = true;
mv_st.visible = false;
mv_edst.visible = false;
mv_edfix.visible = false;

onOff_sets(false);
mv_set.visible = false;

lady_2.visible = true;
lady_3.visible = false;
lady_1.visible = false;

getStartDates();

}else{
//停止
if(intVal==5){

ticker.stop();
lbl_title.text = "えっ?あきらめるの!";
lbl_day.text = "日";
mv_edst.visible = true;
mv_edfix.visible = true;
mv_ed.visible = false;
mv_st.visible = false;

onOff_sets(false);
mv_set.visible = false;

lady_3.visible = true;
lady_2.visible = false;
lady_1.visible = false;

}else{
//再開
if(intVal==7){

ticker.start();
lbl_title.text = "禁煙開始してから ...";
lbl_day.text = "日";

mv_ed.visible = true;
mv_st.visible = false;
mv_edst.visible = false;
mv_edfix.visible = false;

mv_set.visible = false;
mv_setfix.visible = false;

lady_2.visible = true;
lady_3.visible = false;
lady_1.visible = false;

}else{
//終了
if(intVal==9){
var log:SharedObject = SharedObject.getLocal("save_smoking");
var obj:Object = log.data;

ticker.stop();

lbl_title.text = "再挑戦しますか?";
lbl_day.text = "日";

mv_st.visible = true;
mv_edst.visible = false;
mv_ed.visible = false;
mv_edfix.visible = false;

onOff_sets(false);

lady_1.visible = true;
lady_3.visible = false;
lady_2.visible = false;

startUTC=0;
obj.sdates=0;
}}}}
}



  ■禁煙の
   初期設定
   ・何円のタバコを
   ・1日何本吸っていたか
   の設定コントロール部分

private function goAc_init(intVal:int):void {
var log:SharedObject = SharedObject.getLocal("save_smoking");
var obj:Object = log.data;
if(intVal==1){
onOff_sets(true);
set_yen.text = obj.val_yen;
set_hon.text = obj.val_hon;
}else{
if(intVal==9){
val_yen = int(set_yen.text);
val_hon = int(set_hon.text);
obj.val_yen = val_yen;
obj.val_hon = val_hon;
onOff_sets(false);
}}
}


 ※これら、コントロールは細かいことはしていないので
  Flex3 や mxml 理解後、もっと
  ・スマート で
  ・効率的なソースに直すことにしよう

  まずは、動くこと、動くこと・・・



 ■時間関係のソース
 /*------------------------------------------*/

 ■Dates.as の内容
  このあたりは、いづれ汎用的なクラスにして
  今後も利用するところ、
  あるいはその検討箇所だ。

  ■与えた時間により UTC値を返す関数を用意
public static function getUTCDate(myDate:Date):Date {
return new Date(myDate.fullYearUTC, myDate.monthUTC, myDate.dateUTC,
myDate.hoursUTC, myDate.minutesUTC, myDate.secondsUTC,
myDate.millisecondsUTC);
}



  ■禁煙スタート だぞ
//時間の取得
private function getStartDates():void {
var log:SharedObject = SharedObject.getLocal("save_smoking");
var obj:Object = log.data;

if(startUTC> 0){
}else{
//Date オブジェクトを生成
var date_obj:Date = new Date();

startUTC = int(getUTCDate(date_obj));
obj.stas = 1;
obj.sdates = startUTC;



}
}

  ※クッキーの値を調べ
   はじめてで値が保存されていなければ
   ・現在の時間を上記関数で UTC時間に直し
    記録する


  ■禁煙スタート だぞ
//計算時間の表示
private function goCountDown( event:Event ):void {

var date_obj_now:Date = new Date();
nowUTC = int(getUTCDate(date_obj_now));
//表示処理を実行
viewDisplay();

}

  ※タイマー処理により
   繰り返し実行される部分だ。
   (MX版では、これを onEnterFrame で指定していた)
   ・今の時間を調べて
    表示用関数に送る


  ■実際の描写部分
public function viewDisplay():void {
//経過時間を秒単位に直す
if((nowUTC>0)&&(startUTC>0)){
var keika:Number = nowUTC - startUTC;
var temp_keika:Number = keika;

var day:Number = Math.floor( keika / millisecondsPerDay ); keika -= day * millisecondsPerDay;
display_text_day.text = String(day);

var hor:Number = Math.floor( keika / millisecondsPerHour ); keika -= hor * millisecondsPerHour;
var min:Number = Math.floor( keika / millisecondsPerMinute ); keika -= min * millisecondsPerMinute;
var sec:Number = Math.floor( keika / 1000 ); keika -= sec * 1000;
var mil:Number = Math.floor( keika );
var sDisplay:String = String(hor) + " 時間 " + String(min) + " 分 " + String(sec) + ":" + String(mil);
display_text.text = sDisplay;

if((val_yen>0)&&(val_hon>0)){
var tokutoku:Number = 0;
var temp_daycost:Number = ( val_yen / 20 ) * val_hon;
var temp_day:Number = temp_keika / millisecondsPerDay;

tokutoku = (temp_daycost * temp_day);
if(tokutoku){
if (tokutoku >= 0){
tokutoku = Math.floor(tokutoku*10+0.5)/10;
}else{
tokutoku = Math.ceil(tokutoku*10-0.5)/10;
}
}
Mes.text = String(tokutoku) + " 円獲得! ";;
Mes.visible = true;
}
}
}

  ※何円・何本の設定があれば、
   禁煙によりどれくらいのお金を生み出せたか
   を表示する。

で、とりあえず動いているので
このまま「α」として公開
やったるで、禁煙カウンタ Flex3(試用)版
こちらに用意した。



【 ちと、まとめ と 「驚きのカミングアウト」 】

 今回この作業をしていて、
 「とても楽しかった」
 まずい。いろいろしたいことが増えてきて、まずい。

 後 59日しかないのに!!!


  ん? 59日?
  29日じゃないの?

 はい、ここで「驚きのカミングアウト

 まず最初に私は
 「悪いことをしようとも思ってないし」
 「当然 確信犯ではありません」
 「何の情報もなく、こうなってしまったのですが」
 「だめ! といわれればやめますが」
 「でもできればこのまま 59日使いたいのだが」

 え~いっ、廻りくどい!

 実は、作業途中で、Flexのマイナーアップがあってと聞いたので
 なんの気なしに アップグレードしたのです。

 すると! なんと!


 なんか、また 60日始まっちゃったみたいなんですけど・・・

 できればこのまま使いたいので、
 正直に申し上げたので、よろしくお願いします。


commentsコメント
comment_post












管理者にだけ表示を許可する
commentトラックバック
トラックバックURL:
http://metaboy.blog23.fc2.com/tb.php/544-719fb112
ようこそ
Add to Google 創るmetaboy:RSSフィード
My Yahoo!に追加
最新記事のRSS | 問い合わせ

仕事検索、アルバイト検索、依頼仕事の検索ポータル - 仕事検索.COM - www.jobkensaku.com ツクルン

創るmetaboy - WEB創る、サイト創る、何創る - 創ったmetaboy

 

リンク集

 

最近の記事

 

ブロとも申請フォーム
Sponserd by

さくらのレンタルサーバ さくらのレンタルサーバ
大容量・高機能レンタルサーバー heteml 大容量・高機能レンタルサーバー heteml
XREA (ValueDomain)
お名前.com お名前.com
名づけてねっと名づけてねっと
ムームードメインムームードメイン

 

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。