<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>STUDIO KINGDOM &#187; javascript</title>
	<atom:link href="http://www.studio-kingdom.com/category/javascript/feed" rel="self" type="application/rss+xml" />
	<link>http://www.studio-kingdom.com</link>
	<description>PHP、javaScriptによるプログラミングやAdobeソフトによるWEBデザインなどなど</description>
	<lastBuildDate>Tue, 29 Nov 2011 14:01:00 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>SenchaTouch入門</title>
		<link>http://www.studio-kingdom.com/javascript/senchatouch/617</link>
		<comments>http://www.studio-kingdom.com/javascript/senchatouch/617#comments</comments>
		<pubDate>Tue, 28 Sep 2010 01:00:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[SenchaTouch]]></category>

		<guid isPermaLink="false">http://www.studio-kingdom.com/?p=617</guid>
		<description><![CDATA[CSS NITE IN SHIZUOKAでLTしたSenchaTouchについてなんですが、LTに用いたソースが0.9.3用だったのですが、現在の0.9.5のバージョンでは動かない事が判明 orz。なので、補足として0. [...]]]></description>
			<content:encoded><![CDATA[				<p>CSS NITE IN SHIZUOKAでLTしたSenchaTouchについてなんですが、LTに用いたソースが0.9.3用だったのですが、現在の0.9.5のバージョンでは動かない事が判明 orz。なので、補足として0.9.5用にブログに残しておくことにしました。</p>
				<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Photo 9月 28, 0 08 49" src="http://www.studio-kingdom.com/wp-content/uploads/2010/09/Photo92800849.jpg" border="0" alt="Photo 9月 28, 0 08 49" width="320" height="480" /></p>
				<h3>Sencha Touch とは</h3>
				<ul>
				<li>iPhone、アンドロイド向けサイトを作成するためのjavaScriptライブラリ</li>
				<li>javaScriptの値を調整するようにプログラムを組むだけで、iPhoneアプリで見かけるようなエレガントで一貫したデザインのUIが簡単に作成可能。</li>
				</ul>
				<p>まぁ、百聞は一見にしかず。下のデモページをスマートフォン、PCの場合は<strong>Chrome</strong>か<strong>Safari</strong>でご確認ください。</p>
				<p><a href="http://dev.sencha.com/deploy/touch/examples/" target="_blank">SenchaTouchのデモページ</a></p>
				<p>かちびと.netさんも紹介されています。</p>
				<p><a href="http://kachibito.net/software/open-source/sencha-touch.html">iPhone等のWebアプリをHTML5で構築する為のフレームワーク・Sencha Touchを触ってみた &#8211; かちびと.net</a></p>
				<p><span id="more-617"></span></p>
				<h3>SenchaTouchの導入</h3>
				<p><a href="http://www.extjs.co.jp/products/touch/download.php?dl=publicbeta095" target="_blank">SenchaTouchのダウンロード</a></p>
				<p>所定の場所にダウンロード後、解凍してください。<br />
				フォルダの中にSenchaTouchを動かすうえで最低限必要なファイルとフォルダは下記のとおりです。</p>
				<ul>
				<li>ext-touch.js</li>
				<li>resourcesフォルダとその中身</li>
				</ul>
				<p>これを使って、リストがスライドして次々とページ遷移する簡単なページを作ってみました。<br />
				作成するファイルは以下の2つ。</p>
				<ul>
				<li>index.html</li>
				<li>index.js</li>
				</ul>
				<p>完成イメージは次のとおりです。</p>
				<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Photo 9月 28, 9 50 28" src="http://www.studio-kingdom.com/wp-content/uploads/2010/09/Photo92895028.jpg" border="0" alt="Photo 9月 28, 9 50 28" width="320" height="480" /></p>
				<p>それでは順番に見ていきます。</p>
				<h3>index.html</h3>
				<pre class="brush: html; gutter: true; first-line: 1; highlight: []; html-script: false">
&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot;&gt;
    &lt;title&gt;Nested List&lt;/title&gt;
        &lt;link rel=&quot;stylesheet&quot; href=&quot;../../resources/css/ext-touch.css&quot; type=&quot;text/css&quot;&gt;
        &lt;script type=&quot;text/javascript&quot; src=&quot;../../ext-touch.js&quot;&gt;&lt;/script&gt;
        &lt;script type=&quot;text/javascript&quot; src=&quot;index.js&quot;&gt;&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;&lt;/body&gt;
&lt;/html&gt;
</pre>
				<p>重要な部分は6行目～8行目。<br />
				6行目でresourcesフォルダ内のcss/ext-touch.cssを<br />
				7行目でext-touch.jsを<br />
				8行目でindex.jsをそれぞれ読み込みます。<br />
				パスは環境に合わせて変更してください。</p>
				<p>また、この例では&lt;body&gt;タグ内には何も書きません。</p>
				<h3>index.js</h3>
				<pre class="brush: javascript; gutter: true; first-line: 1; highlight: []; html-script: false">
Ext.setup({
    onReady: function(){
        var data = {
            text: 'トップ',
            items: [{
                text: '静岡中部',
                items: [{
                    text: '静岡市',
                    items: [{
                        text: '葵区',
                        leaf: true
                    },{
                        text: '駿河区',
                        leaf: true
                    },{
                        text: '清水区',
                        leaf: true
                    }]
                },{
                    text: '焼津',
                    leaf: true
                }]
            },{
                text: '静岡西部',
                items: [{
                    text: '浜松',
                    leaf: true
                },{
                    text: '掛川',
                    leaf: true
                }]
            },{
                text: '静岡東部',
                items: [{
                    text: '沼津',
                    leaf: true
                },{
                    text: '伊豆',
                    leaf: true
                },{
                    text: '三島',
                    leaf: true
                }]
            }]
        };

        Ext.regModel('ListItem', {
            fields: [{name: 'text', type: 'string'}]
        });

        var store = new Ext.data.TreeStore({
            model: 'ListItem',
            root: data,
            proxy: {
                type: 'ajax',
                reader: {
                    type: 'tree',
                    root: 'items'
                }
            }
        });

        var nestedList = new Ext.NestedList({
            fullscreen: true,
            title: '静岡県',
            displayField: 'text',
            store: store
        });
    }

});
</pre>
				<p> index.jsの中身はほとんどがjsonになっています。各項目に値を指定することで、ページ構成がデザインされます。SenchaTouchではこのjsonを上手く使いこなすことが重要になってきます。  とりあえず、これで完成となります。実際のサイトは下記URL先をご確認ください。 </p>
				<p> <a href="http://sencha-demo.studio-kingdom.com/">http://sencha-demo.studio-kingdom.com/</a></p>
				<p> また、0.9.3に比べて0.9.5では色々と複雑になっていますので、それについて少し載せておきます。</p>
				<ul>
				<li>47～48行目では、リストに表示するjsonデータについて、モデル指定を行っています。これはデータベースで言う「カラム名」と「型」といったところでしょうか。jsonデータを使うにはこのモデル指定が必須になったのかもしれません。</li>
				<li>51～61行目はjsonデータを入力データとして各コンポーネントで扱えるようにしているようです。modelは上記のモデル指定、rootはjsonデータのオブジェクト名と思われますが、proxyの意味がいまいち分かりません…。</li>
				</ul>
				<p>本格的に作る場合にはAPIを熟読する必要がありますね。英語ですが(^-^;)  </p>
				<p><a href="http://dev.sencha.com/deploy/touch/docs/">Sencha Touch API Documentation</a> </p>
				<p>また、肝となるjsonについてですが、自分はこの本で習いました。10日で覚えるシリーズは根本から丁寧に説明してくれる良書が結構あったりしておススメです。</p>
				<div id="scid:81867AAF-BB02-476b-AE5D-12BDAC2E750D:90126dd8-2d15-4679-b8a9-ba77a90bdade" class="wlWriterSmartContent" style="padding-bottom: 0px; margin: 0px; padding-left: 30px; padding-right: 0px; display: inline; float: none; padding-top: 0px"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4798112968/cagylogic-22/ref=nosim" target="_blank"><img src="http://ecx.images-amazon.com/images/I/41EIwLc32RL._SL160_.jpg" alt="10日でおぼえるAjax 入門教室" /></a> <a href="http://www.amazon.co.jp/exec/obidos/ASIN/4798112968/cagylogic-22/ref=nosim" target="_blank">10日でおぼえるAjax 入門教室 漆尾 貴義 </a></div>
				</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.studio-kingdom.com/javascript/senchatouch/617/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Yahoo UIに入門してみた</title>
		<link>http://www.studio-kingdom.com/javascript/410</link>
		<comments>http://www.studio-kingdom.com/javascript/410#comments</comments>
		<pubDate>Sun, 25 Jan 2009 12:23:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.studio-kingdom.com/?p=410</guid>
		<description><![CDATA[最近浅く広い、この手のエントリ多いです。Yahoo UIが何気に優秀という噂を聞きつけて、どうしても試してみたくなったので。 Ajaxのおさらいをしていて、ちょうどYahooUIの項目もあったのでサンプルプログラムを改良 [...]]]></description>
			<content:encoded><![CDATA[				<p>最近浅く広い、この手のエントリ多いです。Yahoo UIが何気に優秀という噂を聞きつけて、どうしても試してみたくなったので。<br />
				Ajaxのおさらいをしていて、ちょうどYahooUIの項目もあったのでサンプルプログラムを改良して、多少実践向けにして晒してみたくなったという事情もあります。<br />
				おさらいに使用した本はこちら。</p>
				<div class="amazlet-box" style="margin:10px 30px">
				<div class="amazlet-image" style="float: left"><a name="amazletlink" href="http://www.amazon.co.jp/exec/obidos/ASIN/4798112968/studiokingdom-22/ref=nosim/" target="_blank"><img style="border-top-style: none; border-right-style: none; border-left-style: none; border-bottom-style: none" src="http://ecx.images-amazon.com/images/I/41EIwLc32RL._SL160_.jpg" alt="10日でおぼえるAjax 入門教室" /></a></div>
				<div class="amazlet-info" style="float: left; margin-left: 15px; line-height: 120%">
				<div class="amazlet-name" style="margin-bottom: 10px; line-height: 120%"><a name="amazletlink" href="http://www.amazon.co.jp/exec/obidos/ASIN/4798112968/studiokingdom-22/ref=nosim/" target="_blank">10日でおぼえるAjax 入門教室</a></p>
				<div class="amazlet-powered-date" style="margin-top: 5px; font-size: 7pt; line-height: 120%; font-family: verdana">posted with <a title="10日でおぼえるAjax 入門教室" href="http://www.amazlet.com/browse/ASIN/4798112968/studiokingdom-22/ref=nosim/" target="_blank">amazlet</a> at 09.01.25</div>
				</div>
				<div class="amazlet-detail">漆尾 貴義<br />
				翔泳社<br />
				売り上げランキング: 120488</div>
				<div class="amazlet-link" style="margin-top: 5px"><a name="amazletlink" href="http://www.amazon.co.jp/exec/obidos/ASIN/4798112968/studiokingdom-22/ref=nosim/" target="_blank">Amazon.co.jp で詳細を見る</a></div>
				</div>
				</div>
				<div style="clear:both"></div>
				<p>この本、結構おススメ。IEでAjaxする方法を解説⇒次はFireFoxで⇒各ブラウザ毎に処理を振り分け⇒innterHTMLやCSSの説明⇒prototype.js登場といった感じで、Ajaxに必要なことを基礎から追って順に説明してくれるので分かりやすいです。<br />
				<a href="http://www.openspc2.org/JavaScript/Ajax/ref/YahooUI/ver2.2.0/">Yahoo UI Library リファレンス</a>の[■Calendar]⇒[Calendar]も参考にしてます。<br />
				で、カスタマイズしたプログラムはこんな感じ。</p>
				<p><img style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" title="image" src="http://www.studio-kingdom.com/wp-content/uploads/2009/01/image11.png" border="0" alt="image" width="210" height="241" /></p>
				<ul>
				<li>カレンダー表示リンクを押すとカレンダーが表示。</li>
				<li>入力欄が空でリンクを押された場合は当月を表示、日付が入力されていたら対象月を表示。</li>
				<li>カレンダー上で日付をクリックするとyyyy/mm/dd形式で入力欄に日付が入り、カレンダーが閉じる。</li>
				<li><span style="color: #ff0000;">(入力欄の日付エラーチェックはしてません。アルファベットとか入れるとトンデモカレンダーが表示されます(&gt;_&lt;))</span></li>
				</ul>
				<p>では、実際に作ってみましょう。まずはYahooUIをダウンロードしてきます。<br />
				<a title="http://developer.yahoo.com/yui/" href="http://developer.yahoo.com/yui/">http://developer.yahoo.com/yui/</a></p>
				<p><img style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" title="image" src="http://www.studio-kingdom.com/wp-content/uploads/2009/01/image12.png" border="0" alt="image" width="430" height="275" /></p>
				<p>使用するのはbuildフォルダ内のファイル群になります。作成するプログラムと同じフォルダ階層にbuildフォルダを移し、フォルダ名をyuiに変更してください。<br />
				肝心のプログラムは、下記の通り。</p>
				<pre class="brush: javascript; gutter: true; first-line: 1; highlight: []; html-script: false">
<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01//EN' 'http://www.w3.org/TR/html4/strict.dtd'>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="yui/yahoo/yahoo.js"></script>
<script type="text/javascript" src="yui/dom/dom.js"></script>
<script type="text/javascript" src="yui/event/event.js"></script>
<script type="text/javascript" src="yui/calendar/calendar.js"></script>
<script type="text/javascript" src="prototype.js"></script>
<link type="text/css" rel="stylesheet" href="yui/calendar/assets/calendar.css">
<script type="text/javascript" language="javascript">
// <![CDATA[
function onloaded(){
Element.hide("cal1Container");
}

function showCal(arg){
var cal1;

var ary_arg;
var json_arg;
var json_pagedate;
var json_selected;

var tmp_dt;
var tmp_dt_year;
var tmp_dt_month;
var tmp_dt_date;

//YAHOO.widget.Calendarオブジェクトに渡すjson引数値
//josn引数設定例　{ pagedate:"2/2007",selected:"2/10/2007-2/15/2007"}
if(arg){
ary_arg = arg.split("/");	//[0]=年　[1]=月　[2]=日
json_pagedate = ary_arg[1] + "/" + ary_arg[0];
json_selected = ary_arg[1] + "/" + ary_arg[2] + "/" + ary_arg[0];
json_arg = '{ pagedate:"' + json_pagedate + '",selected:"' + json_selected + '"}';
}

//カレンダー描画
if(arg){
cal1 = new YAHOO.widget.Calendar("cal1","cal1Container", eval("("+json_arg+")"));
} else {
cal1 = new YAHOO.widget.Calendar("cal1","cal1Container");
}

cal1.selectEvent.subscribe(function(type,args) {
//alert(cal1.getSelectedDates()[0]);
tmp_dt = cal1.getSelectedDates()[0];
tmp_dt_year = tmp_dt.getFullYear();
tmp_dt_month = tmp_dt.getMonth() + 1;
tmp_dt_date = tmp_dt.getDate();
document.form1.set_dt.value = tmp_dt_year + "/" + tmp_dt_month + "/" + tmp_dt_date;
Element.hide("cal1Container");
});
cal1.render();
Element.show("cal1Container");
}
// ]]&gt;
</script>
</head>
<body onload="onloaded()">
<form name="form1">
<input id="set_dt" type="text" value="" size="12" />
<a href="javascript:void(0)" onclick="showCal(document.form1.set_dt.value)">カレンダー表示</a>
<div id="cal1Container"></div>
</form>

</body>
</html>
</pre>
				<p>変数がやたら多くて美しくないですなぁ、即興で作ったのでご勘弁を。<br />
				バグ等あったら教えてください。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.studio-kingdom.com/javascript/410/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

