top


総投稿数 本 
no_

スポンサーサイト

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

Flex:◇禁煙カウンタα+:ふと思いつき、実装に没頭。一応α+に昇格(その1) ・・・ 【Flex:8日目】

 2008-12-18
 拙作の「やったるで!禁煙カウンタ Flex3版
 なんか、利用していただいている方が何人かいらっしゃるようで・・・
 ありがとうございます。

 まだ、創りかけですみません。

 もちろん私も、ただ今「禁煙トライ中
もちろん私も、ただ今「禁煙トライ中」
 これなのですが・・・

 実はこれを眺めていて、頭がぼんやりしてきたときに
「ふと」思いついたのです。

 ・72円かぁ。本が1冊買えるなぁ・・・
 ・ん? 買える?
 ・そうだ、これから、AmazonECSにリンクしよう

 そして(現在すでにアップしていますが) α+ となりました。

さぁ、その顛末・内容は・・・
 ◎やったるで!禁煙カウンタ Flex3版:α+(その1)
 ※長いので分けた。

 追記に ▼

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

 あれ? 8日目と残り期日が合わないなぁ
 (試用期間の60日を超えてる!?) -> ははは、こちら理由


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


more**************************************************
やったるで!禁煙カウンタ Flex3版:α+(その1)
**************************************************
前回の投稿
 続きだ。


 ■仕様模索
 /*------------------------------------------*/

 ■現在「取得できている」金額で買える物を
  ※現在、(仮想的に)取得できている(はずの)金額で
   買えるものを、AmazonECS から取得して表示しよう。

   □取得は、500円単位で、行うことにする
   □取得件数は10円
   □それを閲覧することができて
    画像をクリックすると、Amazonの該当詳細頁に飛ぶ
   □何を取得するか
    ・Amazonのカテゴリを選んで
    ・キーワード設定できるようにしよう

   おおまかな「企画仕様」はこのように決定。


 ■設定部分
 /*------------------------------------------*/

 ■まず、設定を途中で変えられるように
  ■今まで、一番最初でしかできなかった「最初の設定」を
   [設定の変更]ボタンを常時表示にして、
    いつでも変更できるようにする。
[設定の変更]ボタンを常時表示
     > 完了

  ■「設定」に
   ・AmazonECS で提供しているカテゴリを選ぶ部分と
   ・キーワードを設定できる部分を 追加する
「設定」に追加する
     > 完了


 ■AmazonECS取得データ表示部分
 /*------------------------------------------*/

 ■タイトル と 画像 と 金額・URL
  ■まずは基本の4項目を表示できるよう
   画面レイアウトを編集
タイトル と 画像 と 金額・URL
     > 完了

  ■10件まで取得したデータの頁送り用のボタン
10件まで取得したデータの頁送り用のボタン
     > 完了

 ここまでの仕様実現で、メインのmxml は下記のようになった。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute" borderColor="#F0F8FF" color="#353D44"
backgroundColor="0x000000"
backgroundAlpha="0.0"
creationComplete="initApp()" width="158" height="346">

<mx:Script>
<![CDATA[
include "Script.as";
]]>
</mx:Script>

<mx:HTTPService id="searchAmazonService"
url="http://ecs.amazonaws.jp/onca/xml"
result="searchResult(event)" fault="searchFault(event)" resultFormat="e4x"/>

<mx:Image x="107.0" y="18.5" width="36" height="36" source="@Embed(source='./img/nosmoke_action01.gif')"></mx:Image>
<mx:Label x="3.0" y="3.3" text="禁煙やりますか?" id="lbl_title" fontFamily="A-OTF 新ゴ Pro R" fontSize="12" fontWeight="normal" width="147.9" height="22.8"/>
<mx:Button x="26.1" y="96.8" label="最初の設定" id="mv_set" width="121.9" height="20.0" click="goAc_init(1)" fontFamily="Arial" fontSize="10"/>
<mx:Button x="26.1" y="96.8" label="これで決定" id="mv_setfix" width="121.9" height="20.0" click="goAc_init(9)" fontFamily="Arial" fontSize="10"/>
<mx:Button x="26.1" y="73.5" label="始めるぞぉ!" id="mv_st" width="121.9" height="20.0" click="goAc_start(1)" fontFamily="Arial" fontSize="10"/>
<mx:Button x="26.1" y="73.5" label="ギブアップ?" id="mv_ed" width="121.9" height="20.0" click="goAc_start(5)" fontFamily="Arial" fontSize="10"/>
<mx:Button x="26.1" y="73.5" label="No!" id="mv_edst" width="42.9" height="20.0" click="goAc_start(7)" fontFamily="Arial" fontSize="10"/>
<mx:Button x="70.1" y="73.5" label="ギブアップ!" id="mv_edfix" width="77.9" height="20.0" click="goAc_start(9)" fontFamily="Arial" fontSize="10"/>
<mx:Text x="3.1" y="54.5" text="" id="display_text" width="144.6" height="22.6" fontFamily="Arial Black" fontSize="12"/>
<mx:Text x="3.3" y="29.0" text="" id="display_text_day" width="42.7" height="20.9" fontSize="12" fontFamily="Arial Black" textAlign="right"/>
<mx:Text x="65.3" y="295" text="" id="display_text_viewPrice" width="78.7" height="20.9" fontSize="12" fontFamily="Arial Black" textAlign="right"/>
<mx:Text x="46.8" y="29.2" text="" id="lbl_day" width="104.2" height="20.8" fontFamily="A-OTF 新ゴ Pro R" fontSize="12"/>
<mx:Text x="4.1" y="121" text="" id="Mes" width="144.7" height="36" fontFamily="MS ゴシック" fontSize="12"/>

<mx:Image x="22.2" y="159.9" id="lady_3" width="105.5" height="104.1" source="@Embed(source='./img/tomatoma3.jpg')"></mx:Image>
<mx:Image x="22.2" y="159.9" id="lady_2" width="105.5" height="104.1" source="@Embed(source='./img/tomatoma2.jpg')"></mx:Image>
<mx:Image x="22.2" y="159.9" id="lady_1" width="105.5" height="104.1" source="@Embed(source='./img/tomatoma1.jpg')" alpha="1.0"></mx:Image>
<mx:Panel x="22.2" y="159.9" id="pnl_back" width="105.5" height="104.1" layout="absolute" backgroundColor="#FFFFFF" borderColor="#E4E2E2" borderStyle="inset"></mx:Panel>
<mx:Image x="22.2" y="159.9" id="img_viewImage" width="105.5" height="104.1" source=""></mx:Image>
<mx:Label x="7" y="121" text="今まで" id="lbl_imamade" fontFamily="A-OTF 新ゴ Pro M" fontSize="8"/>
<mx:Label x="70" y="121" text="円 のタバコを、" id="lbl_tabakowo" fontFamily="A-OTF 新ゴ Pro M" fontSize="8" width="64"/>
<mx:Label x="15" y="140" text="1日" id="lbl_ichinichi" fontFamily="A-OTF 新ゴ Pro M" fontSize="8"/>
<mx:Label x="72" y="139" text="本 づつ吸ってた。" id="lbl_sutteta" fontFamily="A-OTF 新ゴ Pro M" fontSize="8" width="72"/>

<mx:TextInput x="39" y="119" width="28" height="18" fontFamily="Arial" fontSize="9" textAlign="right" id="set_yen" maxChars="3" editable="true"/>
<mx:TextInput x="39" y="138" width="28" height="19" fontFamily="Arial" fontSize="9" textAlign="right" id="set_hon" maxChars="3"/>

<mx:Label x="7" y="164" text="今、欲しいものは何ですか?" id="lbl_whats" fontFamily="A-OTF 新ゴ Pro M" fontSize="8" width="115"/>
<mx:Label x="7" y="210" text="キーワード:" id="lbl_keyword" fontFamily="A-OTF 新ゴ Pro M" fontSize="8" width="55"/>
<mx:TextInput x="59" y="208" width="85" height="19" fontFamily="Arial" fontSize="9" textAlign="right" id="set_keyword"/>

<mx:ComboBox id="sel_category" dataProvider="{categorys}" width="135"
x="9" y="181"
close="closeHandler(event);" />
<mx:Label x="11" y="269" text="円 のタバコを、" id="lbl_viewTitle" fontFamily="A-OTF 新ゴ Pro M" fontSize="8" width="130" height="30"/>
<mx:Button x="110" y="318" label=">" fontWeight="normal" width="34" fontFamily="Arial Black" fontSize="10" height="17" id="bt_next" click="pageMoveViewImage(1)"/>

</mx:Application>


【留意】
 ・オブジェクトを上にするにはソースの後に記述
  (インタプリンタだから当然か)
 ・現在は、各ボタンを役割ごとに用意
  (次のステップで、
   表示要素や実行functionを切り替える方法に変更必須)
 ・Amazon取得画像のバックに「<mx:Panel>」を使ってみた



 ■変数の準備
 /*------------------------------------------*/

 ■追加変数
  ■動きを制御するための変数を追加した
public var getItemPerPrice:int = 500; // 何円ごとに取得するか
public var val_cat:String; // カテゴリ保存用
public var val_key:String; // キーワード保存用
public var val_pri:Number; // 現在の金額格納
public var val_nxt:Number; // getItemPerPrice ごとに増加する取得タイミング

[Bindable]
public var getViewItem:int = 0; // 取得したアイテム数
[Bindable]
public var nowViewImg:int = 0; // 現在表示している配列引数

[Bindable]
public var datas:Array=[]; // 取得したデータを格納する配列


【留意】
 ・[Bindable]の使い方が今ひとつの理解
  (上記すべて、不要かもしれない)
 ・配列の初期化は、datas=[]; で大丈夫か



 ■アマゾンカテゴリの配列変数格納
  ■AmazonECSで提供しているカテゴリ(ストア)を
   配列に格納
[Bindable]
public var categorys:ArrayCollection = new ArrayCollection(
[
{label:"本(和書) ", data:"Books"},
{label:"洋書", data:"ForeignBooks"},
{label:"エレクトロニクス", data:"Electronics"},
{label:"ホーム&キッチン", data:"Kitchen"},
{label:"DVD", data:"DVD"},
{label:"ソフトウェア", data:"Software"},
{label:"ゲーム", data:"VideoGames"},
{label:"おもちゃ", data:"Toys"},
{label:"ホビー", data:"Hobbies"},
{label:"スポーツ&アウトドア", data:"SportingGoods"},
{label:"ヘルス&ビューティー", data:"HealthPersonalCare"},
{label:"時計", data:"Watches"},
{label:"ベビー&マタニティ", data:"Baby"},
{label:"アパレル", data:"Apparel"}
]);


【留意】
 ・これらカテゴリごとに、
  「MaximumPrice」がうまく効くか調べる必要有



 ■アマゾンからデータを取得する関数
  ■前に一度行ったことを関数化する
   (結果OKの場合)
public function searchResult(event:ResultEvent):void{
default xml namespace = new Namespace("http://webservices.amazon.com/AWSECommerceService/2005-10-05");

var xml:XMLList = XML(event.result)..Item;
datas=[]; // 格納用配列初期化
var l:int = xml.length(); // 取得件数
var okl:int = 0; // 実際の取得件数初期化
for(var i:int=0;i<l;i++){ // 取得件数でloop
var data:Object = {}; // オブジェクトとして用意

data.Title = xml[i]..Title[0]?xml[i]..Title[0].toString():"";
if(String(data.Title) != ''){ // タイトル値があるもののみ処理
data.DetailPageURL = xml[i]..DetailPageURL[0]?xml[i]..DetailPageURL[0].toString():"";
data.SmallImage = xml[i]..SmallImage.URL[0]; // 予備取得
data.MediumImage = xml[i]..MediumImage.URL[0]; // 予備取得
data.LargeImage = xml[i]..LargeImage.URL[0];
data.Image = (data.SmallImage?data.SmallImage:data.MediumImage);
data.Price = xml[i]..ItemAttributes.ListPrice[0].FormattedPrice[0];
datas.push(data); // 取得格納変数に入れる
okl++; // 実際の取得件数 をプラス
}
}
if(okl>=1){ // 実際の取得件数があれば
getViewItem=okl; // 実際の取得件数をpublic変数に格納し
nowViewImg=0; // 現在表示の引数添え字を初期化
goViewImage(); // 表示ルーチンを呼ぶ
}else{

}
}


    (結果NGの場合)
public function searchFault(event:FaultEvent):void{
Alert.show("error:");
}


【留意】
  ・NGの場合、
  的確なエラーメッセージ必要



 ■実際に表示する部分
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) + " 円獲得! ";

// ここから追加部分
// カテゴリとキーワード設定されば
if((val_cat!='')&&(val_key!='')){
var ck_pri:Number = tokutoku; // 現在の取得金額

if(ck_pri >= val_nxt){ // Check金額を超えていれば
searchAmazon(val_cat,String(val_key),val_nxt); // 実行

var log:SharedObject = SharedObject.getLocal("save_smoking");
var obj:Object = log.data;
val_nxt = val_nxt + getItemPerPrice; // 次のCheck金額設定
obj.val_pri = val_nxt;

}
}
}
}
}


まずは、ここまで。


 (α版にも関わらず)ご利用いただいている方
 最初の設定の
  ・タバコ金額 と 本数の設定は
   継承されるようカスタマイズしています



commentsコメント
comment_post












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

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

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

 

リンク集

 

最近の記事

 

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

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

 

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