<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>memo-memo</title>
	
	<link>http://blog.jokerstyle.org</link>
	<description>web制作に便利そうな情報をメモるブログ</description>
	<lastBuildDate>Mon, 07 Nov 2011 10:59:47 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Memo-memo" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="memo-memo" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>八千代ｂ夜</title>
		<link>http://blog.jokerstyle.org/archives/796</link>
		<comments>http://blog.jokerstyle.org/archives/796#comments</comments>
		<pubDate>Mon, 07 Nov 2011 10:59:47 +0000</pubDate>
		<dc:creator>ishiken</dc:creator>
				<category><![CDATA[WEB制作]]></category>

		<guid isPermaLink="false">http://blog.jokerstyle.org/?p=796</guid>
		<description><![CDATA[八千代]]></description>
			<content:encoded><![CDATA[<p>八千代</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jokerstyle.org/archives/796/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>igoogleを自分好みにカスタマイズ</title>
		<link>http://blog.jokerstyle.org/archives/780</link>
		<comments>http://blog.jokerstyle.org/archives/780#comments</comments>
		<pubDate>Mon, 22 Aug 2011 16:26:13 +0000</pubDate>
		<dc:creator>ishiken</dc:creator>
				<category><![CDATA[others]]></category>

		<guid isPermaLink="false">http://blog.jokerstyle.org/?p=780</guid>
		<description><![CDATA[私は、igoogleに色々なサイトのフィードを登録して、ブラウザのホームページに設定しています。 こうしておくと、ブラウザを開くだけで、読みたいブログ等の更新状況が一目で分かるし、 タグの機能がついているので、管理もしや [...]]]></description>
			<content:encoded><![CDATA[<p>私は、igoogleに色々なサイトのフィードを登録して、ブラウザのホームページに設定しています。</p>
<p>こうしておくと、ブラウザを開くだけで、読みたいブログ等の更新状況が一目で分かるし、</p>
<p>タグの機能がついているので、管理もしやすいです。</p>
<p>igoogleにフィードを登録する方法をメモ。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>1.igoogleのページに飛んで、右にある、「ガジェットを追加」をクリック。</p>
<p><img class="alignnone size-large wp-image-781" title="made-in-aviary" src="http://blog.jokerstyle.org/wp-content/uploads/made-in-aviary-1024x154.png" alt="" width="600" height="90" /></p>
<p>&nbsp;</p>
<p>2.登録したいブログのフィードの絶対パスをコピーする。フィードが見つからない場合、サイトのURLでもOKな場合があります。</p>
<p><img class="alignnone size-full wp-image-782" title="made-in-aviary" src="http://blog.jokerstyle.org/wp-content/uploads/made-in-aviary1.png" alt="" width="329" height="134" /></p>
<p>&nbsp;</p>
<p>3.igoogleのガジェットを追加するページの左側にある、「フィードやガジェットを追加」をクリック。</p>
<p><img class="alignnone size-medium wp-image-783" title="made-in-aviary" src="http://blog.jokerstyle.org/wp-content/uploads/made-in-aviary2-300x192.png" alt="" width="300" height="192" /></p>
<p>&nbsp;</p>
<p>4.テキスト入力エリアが表示されるので、2でコピーしたフィード（もしくはサイトURL）をペーストし、「追加」をクリック。</p>
<p><img class="alignnone size-medium wp-image-785" title="made-in-aviary" src="http://blog.jokerstyle.org/wp-content/uploads/made-in-aviary4-300x130.png" alt="" width="300" height="130" /></p>
<p>&nbsp;</p>
<p>5.下図の様に「次が追加されました」と表示されれば完成です。</p>
<p><img class="alignnone size-medium wp-image-784" title="made-in-aviary" src="http://blog.jokerstyle.org/wp-content/uploads/made-in-aviary3-300x88.png" alt="" width="300" height="88" /></p>
<p>&nbsp;</p>
<p>6.igoogleのページに戻ると、フィードが登録されています。</p>
<p><img class="alignnone size-medium wp-image-786" title="made-in-aviary" src="http://blog.jokerstyle.org/wp-content/uploads/made-in-aviary5-300x146.png" alt="" width="300" height="146" /></p>
<p>覚え書きでした。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jokerstyle.org/archives/780/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Illustratorで、おにぎり型の三角形を描く</title>
		<link>http://blog.jokerstyle.org/archives/772</link>
		<comments>http://blog.jokerstyle.org/archives/772#comments</comments>
		<pubDate>Thu, 11 Aug 2011 14:01:34 +0000</pubDate>
		<dc:creator>ishiken</dc:creator>
				<category><![CDATA[WEB制作]]></category>
		<category><![CDATA[Illustrator]]></category>

		<guid isPermaLink="false">http://blog.jokerstyle.org/?p=772</guid>
		<description><![CDATA[こんな感じの三角形の書き方。 単純に、多角形ツールで三角形を書いて、「効果」→「スタイライズ」→「角を丸くする」だと、 下の様に、角のみが丸い三角形になってしまいます。 そこで考えた方法が下記の方法です。 １.多角形ツー [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.jokerstyle.org/wp-content/uploads/d8eddf5329882d76f0b5323c6fd8e79a1.png"><img class="alignnone size-full wp-image-774" title="ピクチャ 3" src="http://blog.jokerstyle.org/wp-content/uploads/d8eddf5329882d76f0b5323c6fd8e79a1.png" alt="" width="232" height="214" /></a></p>
<p>こんな感じの三角形の書き方。</p>
<p>単純に、多角形ツールで三角形を書いて、「効果」→「スタイライズ」→「角を丸くする」だと、</p>
<p>下の様に、角のみが丸い三角形になってしまいます。</p>
<p><a href="http://blog.jokerstyle.org/wp-content/uploads/2bfc96a45921677282a36721a07709ca1.png"><img title="ピクチャ 2" src="http://blog.jokerstyle.org/wp-content/uploads/2bfc96a45921677282a36721a07709ca1.png" alt="" width="192" height="179" /></a></p>
<p>そこで考えた方法が下記の方法です。</p>
<p>１.多角形ツールで、三角形を書く。</p>
<p>2.グリッドを表示する。</p>
<p>3.グリッドにぴったり合う様に、三角形の頂点を配置する。</p>
<p><a href="http://blog.jokerstyle.org/wp-content/uploads/7ba1f0a8ac2230876c7ad091cc32c8cc1.png"><img class="alignnone size-medium wp-image-775" title="ピクチャ 4" src="http://blog.jokerstyle.org/wp-content/uploads/7ba1f0a8ac2230876c7ad091cc32c8cc1-300x227.png" alt="" width="300" height="227" /></a></p>
<p>4.アンカーポイント切り替えツールで、グリッドにぴったり合う様に方向線を延ばす。</p>
<p><a href="http://blog.jokerstyle.org/wp-content/uploads/84c613cb4c92d02030dd3307951127671.png"><img class="alignnone size-medium wp-image-776" title="ピクチャ 6" src="http://blog.jokerstyle.org/wp-content/uploads/84c613cb4c92d02030dd3307951127671-300x153.png" alt="" width="300" height="153" /></a></p>
<p>5.三角形を、120度回転させて、別の頂点も手順3,4を繰り返して、同じ長さに方向線を延ばせば完成。</p>
<p><a href="http://blog.jokerstyle.org/wp-content/uploads/564bed646e82e4fa3756c6184c9dede11.png"><img class="alignnone size-medium wp-image-777" title="ピクチャ 7" src="http://blog.jokerstyle.org/wp-content/uploads/564bed646e82e4fa3756c6184c9dede11-300x288.png" alt="" width="300" height="288" /></a></p>
<p>他に方法が無いか、もう少し考えてみよう。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jokerstyle.org/archives/772/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google AJAX Feed APIを使って、複数のRSSから、指定した文字が含まれている物のみを表示する。</title>
		<link>http://blog.jokerstyle.org/archives/761</link>
		<comments>http://blog.jokerstyle.org/archives/761#comments</comments>
		<pubDate>Wed, 10 Aug 2011 10:04:45 +0000</pubDate>
		<dc:creator>ishiken</dc:creator>
				<category><![CDATA[WEB制作]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://blog.jokerstyle.org/?p=761</guid>
		<description><![CDATA[依然書いた、「Google AJAX Feed APIを使ってみた」の、応用版です。 複数のRSSを読み込んで、指定した文字が含まれている記事のみ表示します。 サンプルは、トヨタ、日産、ホンダの三社のRSSを取得して、「 [...]]]></description>
			<content:encoded><![CDATA[<p>依然書いた、「<a href="http://blog.jokerstyle.org/archives/522">Google AJAX Feed APIを使ってみた</a>」の、応用版です。</p>
<p>複数のRSSを読み込んで、指定した文字が含まれている記事のみ表示します。</p>
<p>サンプルは、トヨタ、日産、ホンダの三社のRSSを取得して、「ハイブリッド」という文字が、記事のタイトルか内容に含まれている場合のみ、表示しています。</p>
<h2>html</h2>
<pre>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /&gt;
&lt;title&gt;RSSリーダーサンプル&lt;/title&gt;
&lt;script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://www.google.com/jsapi?key=ABQIAAAARRyJD439CKrHDwanT8Fq0RROytLWb0IPRySwZrSZnSrYgPFbDRS8wX6SHXCMp5HCtXxVIHdRlc5bxQ"&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;
google.load("feeds", "1");
&lt;/script&gt;
&lt;script type="text/javascript" src="js/main.js"&gt;&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;h1&gt;RSSリーダーのサンプル&lt;/h1&gt;

&lt;div id="feed_area"&gt;&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>&nbsp;</p>
<h2>js</h2>
<pre>// JavaScript Document

var rss_arr = new Array();
var delay = 500;
var keyword = "ハイブリッド";
//rssのリスト
var rss_list = ["http://www2.toyota.co.jp/toyotajp/toyota/jp/news_all_rss.xml",
		   "http://www.nissan.co.jp/NEWS/rss.xml",
		   "http://www.honda.co.jp/hotnews/rss/auto.rdf"];

google.setOnLoadCallback(function(){
	$("#feed_area").html("読み込み中...");
	for(var k = 0; k&lt;rss_list.length; k++){
		var feed = new google.feeds.Feed(rss_list[k]);
		feed.setNumEntries(50);
		feed.load(function(result){
			if(!result.error){
				for(var i = 0; i&lt;result.feed.entries.length; i++){
					if(result.feed.entries[i].title.match(keyword) || result.feed.entries[i].content.match(keyword)){
						var rss_obj = new Object();
						rss_obj = { title : result.feed.entries[i].title, url : result.feed.entries[i].link, cont : result.feed.entries[i].contentSnippet, date : new Date(result.feed.entries[i].publishedDate).getTime()};
						rss_arr.push(rss_obj);
					}
				}
			}
		});
	}
	setTimeout(arr_sort,delay);
});

function arr_sort(){
	rss_arr.sort(
		function(a,b){
			var a_date = a["date"];
			var b_date = b["date"];
			if(a_date &gt; b_date) return -1;
			if(a_date &lt; b_date) return 1;
			return 0;
		}
	);
	setTimeout(html_write, delay);
}

function html_write(){
	var html = "";
	for(var j = 0; j&lt;rss_arr.length; j++){

		html += "&lt;dl&gt;";
		html += "&lt;dt&gt;";
		html += "&lt;a href='";
		html += rss_arr[j]["url"];
		html += "' target='_blank'&gt;";
		html += rss_arr[j]["title"];
		html += "&lt;/a&gt;---";
		html += date_change(rss_arr[j]["date"]);
		html += "&lt;/dt&gt;";
		html += "&lt;dd&gt;";
		html += rss_arr[j]["cont"];
		html += "&lt;/dd&gt;"
		html += "&lt;/dl&gt;";
	}

	$("#feed_area").html(html);
}

function date_change(n){
	var renewal_day = "";
	var date = new Date(n);
	var year = date.getFullYear();
	var month = date.getMonth() + 1;
	var day = date.getDay();
	renuwal_day = year + "年" + month + "月" + day + "日";
	return renuwal_day;
}</pre>
<p>最終的に、htmlの、</p>
<p>&lt;div id=&#8221;feed_area&#8221;&gt;&lt;/div&gt;</p>
<p>に、取得して精査した記事を入力します。</p>
<pre>var rss_arr = new Array();
var delay = 500;
var keyword = "ハイブリッド";
//rssのリスト
var rss_list = ["http://www2.toyota.co.jp/toyotajp/toyota/jp/news_all_rss.xml",
"http://www.nissan.co.jp/NEWS/rss.xml",
"http://www.honda.co.jp/hotnews/rss/auto.rdf"];</pre>
<p>最初に、グローバル変数を宣言しています。<br />
var rss_arrは、最終的に表示する記事を、各々連想配列として入力するための配列です。<br />
var delayは、for文の処理を待つための時間です。<br />
var keywordは、チェックする文字列です。<br />
var rss_listは、取得するRSSのURLが格納された配列です。今回は、トヨタ、日産、ホンダのRSS。</p>
<pre>google.setOnLoadCallback(function(){
	$("#feed_area").html("読み込み中...");
	<span style="color: #0000ff;">for(var k = 0; k&lt;rss_list.length; k++){</span>
		<span style="color: #339966;">var feed = new google.feeds.Feed(rss_list[k]);</span>
		<span style="color: #339966;">feed.setNumEntries(50);</span>
		<span style="color: #339966;">feed.load(function(result){</span>
			<span style="color: #339966;">if(!result.error){</span>
				<span style="color: #adad00;">for(var i = 0; i&lt;result.feed.entries.length; i++){</span>
					<span style="color: #ff0000;">if(result.feed.entries[i].title.match(keyword) || result.feed.entries[i].content.match(keyword)){</span>
						<span style="color: #ff0000;">var rss_obj = new Object();</span>
						<span style="color: #ff0000;">rss_obj = { title : result.feed.entries[i].title, url : result.feed.entries[i].link, cont : result.feed.entries[i].contentSnippet, date : new Date(result.feed.entries[i].publishedDate).getTime()};</span>
						<span style="color: #ff0000;">rss_arr.push(rss_obj);</span>
					<span style="color: #ff0000;">}</span>
				}
			}
		});
	}
	setTimeout(arr_sort,delay);
});</pre>
<p>この処理で、rssを読み込んで、精査して、連想配列を作って、出来た連想配列を配列に格納しています。</p>
<p><span style="color: #0000ff;">青文字</span>のfor文は、変数rss_listの数だけ、（今回は3回）繰り返します。</p>
<p><span style="color: #339966;">緑文字</span>で、google apiに、RSSを指定して、取得する記事数を指定しています。</p>
<pre>if(!result.error){</pre>
<p>以降が、読み込んだRSSに対する処理です。</p>
<p><span style="color: #adad00;">黄色文字</span>は、取得した記事分の繰り返し処理です。</p>
<p><span style="color: #ff0000;">赤文字</span>のif文の条件が、記事のタイトルか記事の本文に、「ハイブリッド」という言葉があるかないかです。</p>
<p>もしあったら、そのつど新しいオブジェクトを作成して、連想配列を作って、記事のタイトルとURLと、記事の本文と、更新日を格納しています。更新日は、その後の処理でソートさせたいので、getTime()で、数値に変換しています。ひょっとしたら、変換しなくてもソート出来るかも？出来た連想配列を、配列rss_arrに格納します。</p>
<p>黒文字のsetTimeout(arr_sort,delay)で、for文の処理をちょっと待ってから、関数arr_sortを実行しています。</p>
<pre>function arr_sort(){
	rss_arr.sort(
		function(a,b){
			var a_date = a["date"];
			var b_date = b["date"];
			if(a_date &gt; b_date) return -1;
			if(a_date &lt; b_date) return 1;
			return 0;
		}
	);
	setTimeout(html_write, delay);
}

function html_write(){
	var html = "";
	for(var j = 0; j&lt;rss_arr.length; j++){
		html += "&lt;dl&gt;";
		html += "&lt;dt&gt;";
		html += "&lt;a href='";
		html += rss_arr[j]["url"];
		html += "' target='_blank'&gt;";
		html += rss_arr[j]["title"];
		html += "&lt;/a&gt;---";
		html += date_change(rss_arr[j]["date"]);
		html += "&lt;/dt&gt;";
		html += "&lt;dd&gt;";
		html += rss_arr[j]["cont"];
		html += "&lt;/dd&gt;"
		html += "&lt;/dl&gt;";
	}

	$("#feed_area").html(html);
}

function date_change(n){
	var renewal_day = "";
	var date = new Date(n);
	var year = date.getFullYear();
	var month = date.getMonth() + 1;
	var day = date.getDay();
	renuwal_day = year + "年" + month + "月" + day + "日";
	return renuwal_day;
}</pre>
<p>関数arr_sortは、配列の中身を、連想配列のdateでソートしています。</p>
<p><a href="http://crocro.com/write/manga_javascript/wiki.cgi?p=%C7%DB%CE%F3%A4%CE%A5%BD%A1%BC%A5%C8%A4%C8%CC%B5%CC%BE%B4%D8%BF%F4" target="_blank">ソートに関しては、この記事がとっても参考になりました。</a></p>
<p>さらにsetTimeoutで処理を待って、htmlに書き出す関数html_writeを実行しています。</p>
<pre>html += date_change(rss_arr[j]["date"])</pre>
<p>は、そのまま出力すると数値なので、関数date_changeで、日付のフォーマットを作ってます。</p>
<p><a href="http://portfolio.uh-oh.jp/rss_sample/" target="_blank">ｒｓｓリーダーサンプル</a></p>
<div id="_mcePaste" class="mcePaste" style="position: absolute; left: -10000px; top: 469px; width: 1px; height: 1px; overflow: hidden;">
<p>// JavaScript Document</p>
<p>var rss_arr = new Array();<br />
var delay = 500;<br />
var keyword = &#8220;ハイブリッド&#8221;;<br />
//rssのリスト<br />
var rss_list = ["http://www2.toyota.co.jp/toyotajp/toyota/jp/news_all_rss.xml",<br />
"http://www.nissan.co.jp/NEWS/rss.xml",<br />
"http://www.honda.co.jp/hotnews/rss/auto.rdf"];</p>
<p>google.setOnLoadCallback(function(){<br />
$(&#8220;#feed_area&#8221;).html(&#8220;読み込み中&#8230;&#8221;);<br />
for(var k = 0; k&lt;rss_list.length; k++){<br />
var feed = new google.feeds.Feed(rss_list[k]);<br />
feed.setNumEntries(50);<br />
feed.load(function(result){<br />
if(!result.error){<br />
for(var i = 0; i&lt;result.feed.entries.length; i++){<br />
if(result.feed.entries[i].title.match(keyword) || result.feed.entries[i].content.match(keyword)){<br />
var rss_obj = new Object();<br />
rss_obj = { title : result.feed.entries[i].title, url : result.feed.entries[i].link, cont : result.feed.entries[i].contentSnippet, date : new Date(result.feed.entries[i].publishedDate).getTime()};<br />
rss_arr.push(rss_obj);<br />
}<br />
}<br />
}<br />
});<br />
}<br />
setTimeout(arr_sort,delay);<br />
});</p>
<p>function arr_sort(){<br />
rss_arr.sort(<br />
function(a,b){<br />
var a_date = a["date"];<br />
var b_date = b["date"];<br />
if(a_date &gt; b_date) return -1;<br />
if(a_date &lt; b_date) return 1;<br />
return 0;<br />
}<br />
);<br />
setTimeout(html_write, delay);<br />
}</p>
<p>function html_write(){<br />
var html = &#8220;&#8221;;<br />
for(var j = 0; j&lt;rss_arr.length; j++){</p>
<p>html += &#8220;&lt;dl&gt;&#8221;;<br />
html += &#8220;&lt;dt&gt;&#8221;;<br />
html += &#8220;&lt;a href=&#8217;&#8221;;<br />
html += rss_arr[j]["url"];<br />
html += &#8220;&#8216; target=&#8217;_blank&#8217;&gt;&#8221;;<br />
html += rss_arr[j]["title"];<br />
html += &#8220;&lt;/a&gt;&#8212;&#8221;;<br />
html += date_change(rss_arr[j]["date"]);<br />
html += &#8220;&lt;/dt&gt;&#8221;;<br />
html += &#8220;&lt;dd&gt;&#8221;;<br />
html += rss_arr[j]["cont"];<br />
html += &#8220;&lt;/dd&gt;&#8221;<br />
html += &#8220;&lt;/dl&gt;&#8221;;<br />
}</p>
<p>$(&#8220;#feed_area&#8221;).html(html);<br />
}</p>
<p>function date_change(n){<br />
var renewal_day = &#8220;&#8221;;<br />
var date = new Date(n);<br />
var year = date.getFullYear();<br />
var month = date.getMonth() + 1;<br />
var day = date.getDay();<br />
renuwal_day = year + &#8220;年&#8221; + month + &#8220;月&#8221; + day + &#8220;日&#8221;;<br />
return renuwal_day;<br />
}</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.jokerstyle.org/archives/761/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>as3で、オブジェクトをドラッグさせる方法</title>
		<link>http://blog.jokerstyle.org/archives/746</link>
		<comments>http://blog.jokerstyle.org/archives/746#comments</comments>
		<pubDate>Wed, 10 Aug 2011 08:06:49 +0000</pubDate>
		<dc:creator>ishiken</dc:creator>
				<category><![CDATA[WEB制作]]></category>
		<category><![CDATA[ActionScript3.0]]></category>

		<guid isPermaLink="false">http://blog.jokerstyle.org/?p=746</guid>
		<description><![CDATA[めちゃめちゃ久々の更新です。 しかも内容は若干しょぼい。。。。 &#160; 今まで、何かオブジェクトをドラッグさせる様な場合、 ball.addEventListener(MouseEvent.MOUSE_DOWN,  [...]]]></description>
			<content:encoded><![CDATA[<p>めちゃめちゃ久々の更新です。</p>
<p>しかも内容は若干しょぼい。。。。</p>
<p>&nbsp;</p>
<p>今まで、何かオブジェクトをドラッグさせる様な場合、</p>
<pre><span style="color: #ff0000;">ball</span>.addEventListener(MouseEvent.MOUSE_DOWN, ballDown);
stage.addEventListener(MouseEvent.MOUSE_UP, ballUp);

function ballDown(e:MouseEvent):void{
 ball.addEventListener(Event.ENTER_FRAME, ballEnter);
}

function ballUp(e:MouseEvent):void{
 ball.removeEventListener(Event.ENTER_FRAME, ballEnter);
}

function ballEnter(e:Event):void{
 ball.x += stage.mouseX - ball.x;
 ball.y += stage.mouseY - ball.y;
}</pre>
<p>こんな感じの書き方をしてました。赤文字のballは、ドラッグして動かしたいオブジェクトのインスタンス名です。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>これでも動くけど、もっと簡単に書ける方法を、いまさら知ったので、メモしときます。</p>
<pre>ball.addEventListener(MouseEvent.MOUSE_DOWN, ballDown);
ball.addEventListener(MouseEvent.MOUSE_UP, ballUp);

function ballDown(e:MouseEvent):void{
 ball.<span style="color: #ff0000;">startDrag()</span>;
}

function ballUp(e:MouseEvent):void{
 ball.<span style="color: #ff0000;">stopDrag()</span>;
}</pre>
<p>&nbsp;</p>
<p>startDrag()、stopDrag()&#8230;.</p>
<p>こんなメソッドがあったのね。。。。。</p>
<p><a href="http://help.adobe.com/ja_JP/FlashPlatform/reference/actionscript/3/flash/display/Sprite.html?filter_flash=cs5&amp;filter_flashplayer=10.2&amp;filter_air=2.6#startDrag%28%29" target="_blank">リファレンスはこちら。</a></p>
<p>
<object width="300" height="300">
<param name="movie" value="http://blog.jokerstyle.org/wp-content/uploads/dragTest.swf"></param>
<param name="quality" value="high"></param>
<param name="wmode" value="window"></param>
<param name="menu" value="false"></param>
<param name="bgcolor" value="#FFFFFF"></param>
<embed type="application/x-shockwave-flash" width="300" height="300" src="http://blog.jokerstyle.org/wp-content/uploads/dragTest.swf" quality="high" bgcolor="#FFFFFF" wmode="window" menu="false" ></embed>
</object>
</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jokerstyle.org/archives/746/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>オルゴールメッセージ</title>
		<link>http://blog.jokerstyle.org/archives/742</link>
		<comments>http://blog.jokerstyle.org/archives/742#comments</comments>
		<pubDate>Mon, 21 Feb 2011 10:42:13 +0000</pubDate>
		<dc:creator>ishiken</dc:creator>
				<category><![CDATA[others]]></category>

		<guid isPermaLink="false">http://blog.jokerstyle.org/?p=742</guid>
		<description><![CDATA[writeParts("%7B%22name%5Fto%22%3A%22%E6%98%86%E8%92%BC%E7%A9%BA%22%2C%22message%22%3A%22%E3%81%93%E3%82%93%E3% [...]]]></description>
			<content:encoded><![CDATA[<p><script type="text/javascript" src="http://www.kai-group.com/jp/kaitouch/message/swf/writeParts.js"></script><script type="text/javascript">writeParts("%7B%22name%5Fto%22%3A%22%E6%98%86%E8%92%BC%E7%A9%BA%22%2C%22message%22%3A%22%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E2%98%86%E3%81%BE%E3%81%9F%E6%A5%BD%E3%81%97%E3%81%8F%E3%81%82%E3%81%9D%E3%81%B3%E3%81%BE%E3%81%97%E3%82%87%E3%83%BC%22%2C%22sound%5Fcode%22%3A%22%22%2C%22message%5Fid%22%3A%22f6ec5d33b90b3ebe%22%2C%22name%5Ffrom%22%3A%22%E7%9F%B3%E5%B7%9D%E5%81%A5%E5%A4%AA%22%7D");</script></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jokerstyle.org/archives/742/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>flocessingを使ったサンプル</title>
		<link>http://blog.jokerstyle.org/archives/733</link>
		<comments>http://blog.jokerstyle.org/archives/733#comments</comments>
		<pubDate>Wed, 15 Dec 2010 21:56:36 +0000</pubDate>
		<dc:creator>ishiken</dc:creator>
				<category><![CDATA[WEB制作]]></category>
		<category><![CDATA[ActionScript3.0]]></category>

		<guid isPermaLink="false">http://blog.jokerstyle.org/?p=733</guid>
		<description><![CDATA[ジグザグ時計 &#8211; wonderfl build flash online コードは、 http://wonderfl.net/c/dEsm にあります。 flocessingのドキュメントはこちら。 今回はf [...]]]></description>
			<content:encoded><![CDATA[<p><script type="text/javascript" src="http://wonderfl.net/blogparts/dEsm/js"></script>
<p class="ttlBpWonderfl" style="width: 465px; margin: 0; text-align: right; font-size: 11px;"><a href="http://wonderfl.net/c/dEsm" title="ジグザグ時計">ジグザグ時計 &#8211; wonderfl build flash online</a></p>
<p>コードは、<br />
<a href="http://wonderfl.net/c/dEsm" target="_blank">http://wonderfl.net/c/dEsm</a><br />
にあります。</p>
<p>flocessingのドキュメントは<a href="http://www.libspark.org/htdocs/as3/frocessing/" target="_blank">こちら</a>。</p>
<p>今回はflocessingを使ってみたくて、簡単なサンプルを作ってみました。</p>
<h2>コンストラクタ</h2>
<p>39〜51行目のコンストラクタで、初期設定をしています。</p>
<h2>drawDefaultLine</h2>
<p>41行目のdrawDefaultLineメソッドの処理内容は、108〜113行目に書いてあります。<br />
flocessingで使えるメソッドであるstrokeとlineを使ってます。<br />
109行目のstroke(0xffffff,1);は、線の色を設定しています。第一引数が色で、第二引数がアルファ。<br />
110〜112行目のlineメソッドの使い方は、</p>
<pre>line(x1,y1,x2,y2);</pre>
<p>上記の様な感じで、線を開始する点と終わる点を記述します。</p>
<h2>addText</h2>
<p>43〜45行目のメソッドaddTextは、「hours」、「minutes」、「seconds」を画面に表示させてるメソッドです。<br />
内容は、115行目〜127行目に書いてあります。<br />
まず、116行目〜118行目でテキストの設定をしています。今回は、117行目で色を白に設定し、118行目でサイズを30にしました。<br />
次に、120行目〜122行目でテキストフィールドのインスタンス化と設定を行ってます。<br />
123行目の</p>
<pre>addField.text = word;</pre>
<p>で、第一引数に指定された文字列を入れてます。<br />
125行目の</p>
<pre>addField.y = (stage.stageHeight / 3) * lineNumber - addField.height;</pre>
<p>で、第二引数lineNumberを使って、yの値を設定しています。</p>
<p>ここで考えたのが、今回は縦に3分割するレイアウトとしたので、lineNumberには上から何番目かの数字を代入する様にしました。<br />
例えば、minutesだったら、上から2番目なので44行目にある様に、addText(&#8220;minutes&#8221;, 2)と呼び出す様にしてあります。</p>
<p>これはあんまり汎用的ではないかも&#8230;&#8230;.<br />
126行目でaddChildして表示させます。</p>
<h2>addHoursTextField</h2>
<p>48行目〜50行目のaddHoursTextFieldメソッドは、数字が表示されるテキストフィールドを配置するメソッドです。<br />
基本的には、addTextと殆ど同じです。128行目〜136行目にあります。<br />
129行目〜132行目で、テキストフィールドの設定を行ってます。今回は、第一引数にテキストフィールドのインスタンスが指定されてます。<br />
133行目〜135行目で、xとyと位置を決めて、addChildしてます。yの値の出し方は、addTextと同様。<br />
この時点では、テキストフィールドは配置されたけど、その中には何も書かれてません。<br />
最終的にDateで取得した時間が入ります。<br />
ここまでで、コンストラクタ内にあるメソッドの説明は終了です。</p>
<p>次はdrawメソッドです。<span style="color: #ff0000;">flocessignを使った場合、クラス内にdraw（）を書くと、勝手にenterframeで</span><br />
<span style="color: #ff0000;">繰り返してくれるらしいです。</span>初期設定で止める事も出来るけど、今回は止めずに使ってみました。<br />
54行目〜57行目で、現在の時間を取得して、時間、分、秒を各々変数に格納してます。<br />
で、58〜66行目のif文ですが、条件の(nowSeconds != seconds)は、一秒毎に処理される様に書いてます。<br />
65行目のnowSeconds = seconds;で、今の秒数を変数nowSecondsに格納して、それと等しくなければ（1秒経ったら）<br />
if文を実行します。drawメソッドは、enterframeで実行されていているけど、if文の中身は、1秒に一回だけの処理でいいので、<br />
こうしました。<br />
で、今度はif文の中。</p>
<h2>createPoints</h2>
<p>59行目〜61行目で実行しているcreatePointsメソッドについて。<br />
このメソッドは、最終的にジグザグの波形を作る時のポイントを格納する配列を返すメソッドです。<br />
第一引数に時間（ジグザグの数）、第二引数に、中心となるyの値を指定します。<br />
メソッドの内容は75行目〜99行目です。<br />
まず77行目のif文で、第一引数が０じゃないかどうかを分岐してます。<br />
もし０なら、（０分とか、０秒とか）ジグザグにする必要がないので分岐してます。<br />
で、その中の78行目〜94行目のfor文で、ポイントを配列に格納していきます。<br />
79行目〜81行目は変数の定義<br />
82行目の</p>
<pre>xPoint = stageWidth/3*2-25 - (halfBase*(points - i));</pre>
<p>は、格納するポイントのxの値です。<br />
stageWidth/3*2-25は、画面の右側の、ジグザグが表示されるスペースの幅の中央です。<br />
そこから、第一引数pointからi分引いた数と、山の半分の値である変数halfBaceをかけた値を引けば、<br />
一番最初の山のxポイントが解ります。説明がむずかしい&#8230;..<br />
<a href="http://blog.jokerstyle.org/wp-content/uploads/P101216063019.jpg"><img class="alignnone size-medium wp-image-736" title="P101216063019" src="http://blog.jokerstyle.org/wp-content/uploads/P101216063019-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p>次は、yの値ですが、ジグザグにするには、偶数か奇数かをif文で分岐し、さらに繰り返し処理の最初と最後もyの値を変えなくちゃなりません。その処理が、83行目〜91行目です。<br />
最初の条件の(i==0 || i == points*2)は、最初と最後の繰り返しです。<br />
この時のyの値は第二引数で指定したHeightになります。<br />
次の条件(i%2)は奇数の時です。<br />
この時のyの値は第二引数で指定したHeightから50を引いた値になります。<br />
最後は偶数のとき。<br />
この時のyの値は第二引数で指定したHeightに50を足した値になります。<br />
92行目で変数xPointと変数yPointを使ってPointのインスタンス化をしています。<br />
で、93行目で配列newArrayに格納します。<br />
96行目と97行目で、ジグザグ線の開始位置と終了位置のポイントを配列に格納しています。<br />
開始位置はunshiftで最初に、終了位置はpushで最後に格納しています。<br />
で、98行目でreturnします。</p>
<h2>drawLine</h2>
<p>次に62行目〜64行目で使っているdrwLineメソッドです。このメソッドは、第一引数に（ポイントが入った）配列を、第二引数に数値を取ります。第二引数の数値は、色の情報です。<br />
内容は、101行目〜106行目です。<br />
これはfor文とflocessingのstrokeとlineを使って、配列に格納されたポイントを順番に読み取って、線を書いていっています。<br />
104行目の</p>
<pre>line(point[i].x,point[i].y,point[i+1].x,point[i+1].y);</pre>
<p>は、配列pointの、今の繰り返し番号？(iの事)の、xおよびyの値から、<br />
その次の繰り返し番号(i+1)のxおよびyまで線を引いています。(日本語にすると余計難しい&#8230;)<br />
67行目〜69行目で、addTextFieldで作った空っぽのテキストフィールドに時間を入れてます。</p>
<p>右側のString(hours + 100).substring(1)等の説明は、以前の記事に書いてあります。</p>
<p><a href="http://blog.jokerstyle.org/archives/420" target="_blank">http://blog.jokerstyle.org/archives/420</a><br />
70行目〜72行目で、colorTransformで、色を消していってます。</p>
<p>以上で説明終了です。</p>
<p>終了ですが、とっても解りづらい説明になってしまった&#8230;&#8230;</p>
<p>それに、正直もう少しブラッシュアップ出来そうな気がしてます。特にポイントを配列に格納したりする処理は、</p>
<p>別のクラスの方がいい気がする&#8230;..</p>
<p>もう少し勉強しなきゃ。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jokerstyle.org/archives/733/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>テキストをActionScript3.0で書く</title>
		<link>http://blog.jokerstyle.org/archives/724</link>
		<comments>http://blog.jokerstyle.org/archives/724#comments</comments>
		<pubDate>Wed, 15 Dec 2010 12:12:11 +0000</pubDate>
		<dc:creator>ishiken</dc:creator>
				<category><![CDATA[WEB制作]]></category>
		<category><![CDATA[ActionScript3.0]]></category>

		<guid isPermaLink="false">http://blog.jokerstyle.org/?p=724</guid>
		<description><![CDATA[久々の更新になってしまいました。 表題の件、 スクプトを使って、テキストフィールドを作成して、文字を書く(配置する？)方法。 package{ import flash.display.Sprite; import fl [...]]]></description>
			<content:encoded><![CDATA[<p>久々の更新になってしまいました。<br />
表題の件、<br />
スクプトを使って、テキストフィールドを作成して、文字を書く(配置する？)方法。</p>
<pre>package{
	import flash.display.Sprite;
	import flash.text.TextField;
	import flash.text.TextFormat;
	import flash.text.TextFieldAutoSize;
	public class textFieldTest extends Sprite{
		private var label:TextField;

		public function textFieldTest(){
			addTextField();
		}

		private function addTextField():void{
			<span style="color: #ff0000;">label = new TextField();</span>
			<span style="color: #339966;">label.autoSize = TextFieldAutoSize.LEFT;</span>
			<span style="color: #339966;">label.background = true;</span>

			<span style="color: #0000ff;">var format:TextFormat = new TextFormat();</span>
			<span style="color: #ffcc00;">format.color = 0x000000;</span>
			<span style="color: #ffcc00;">format.size = 50;</span>

			<span style="color: #ff00ff;">label.defaultTextFormat = format;</span>
			label.text = "123456789";
			label.x = (stage.stageWidth - label.width)/2;
			label.y = (stage.stageHeight - label.height)/2;
			addChild(label);
		}
	}
}
</pre>
<p>こんな感じで動きます。</p>
<p>コンストラクタをtextFieldTestとして、その中でaddTextField関数を実行してます。</p>
<p>まず、<span style="color: #ff0000;">赤文字</span>の部分でTextFieldをインスタンス化します。</p>
<p><span style="color: #339966;">緑文字</span>の部分は設定です。今回は左揃えにするTextFieldAutoSize.LEFTと、背景の塗りを有効にするbackgroundを使用しました。(塗りの色の設定をして忘れたので、白ですが)</p>
<p>次に<span style="color: #0000ff;">青文字</span>の部分でTextFormatをインスタンス化して、プロパティを<span style="color: #ffcc00;">橙色文字</span>で設定。</p>
<p>今回はテキストの色を黒にして、サイズを50としました。</p>
<p><span style="color: #ff00ff;">紫文字</span>でプロパティを設定したTextFormatをプロパティに追加。</p>
<p>以下、同様にプロパティを設定していく。テキストを「123456789」として、xとyの値を設定して、</p>
<p>最後にaddChildする。</p>
<p>下記の様になります。</p>
<p>
<object width="300" height="150">
<param name="movie" value="http://blog.jokerstyle.org/wp-content/uploads/textFieldTest-.swf"></param>
<param name="quality" value="high"></param>
<param name="wmode" value="window"></param>
<param name="menu" value="false"></param>
<param name="bgcolor" value="#FFFFFF"></param>
<embed type="application/x-shockwave-flash" width="300" height="150" src="http://blog.jokerstyle.org/wp-content/uploads/textFieldTest-.swf" quality="high" bgcolor="#FFFFFF" wmode="window" menu="false" ></embed>
</object>
</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jokerstyle.org/archives/724/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>tweenerで、CurveModifiersを使う</title>
		<link>http://blog.jokerstyle.org/archives/699</link>
		<comments>http://blog.jokerstyle.org/archives/699#comments</comments>
		<pubDate>Tue, 19 Oct 2010 17:30:47 +0000</pubDate>
		<dc:creator>ishiken</dc:creator>
				<category><![CDATA[WEB制作]]></category>
		<category><![CDATA[ActionScript3.0]]></category>

		<guid isPermaLink="false">http://blog.jokerstyle.org/?p=699</guid>
		<description><![CDATA[今日は、CurveModifiersを使ってみた。 インスタンスを動かす時に、直線ではなく、 中間のポイントを指定してやる事で、曲線的に動かすことが出来る。 import caurina.transitions.Twee [...]]]></description>
			<content:encoded><![CDATA[<p>今日は、CurveModifiersを使ってみた。<br />
インスタンスを動かす時に、直線ではなく、<br />
中間のポイントを指定してやる事で、曲線的に動かすことが出来る。</p>
<pre>import caurina.transitions.Tweener;
<span style="color: #ff0000;">import caurina.transitions.properties.CurveModifiers;

CurveModifiers.init();
</span>
start_mc.buttonMode = true;

start_mc.addEventListener(MouseEvent.CLICK, tween);

function tween(event:MouseEvent){
	start_mc.removeEventListener(MouseEvent.CLICK, tween);
	Tweener.addTween(memo_mc,
                        {<span style="color: #ff0000;">_bezier:[{x:125,y:200},{x:275,y:0}]</span>,
                          x:350,y:100,time:3,transition:"linear"});
}</pre>
<p>こんな感じ。<br />
赤文字の部分が、CurveModifiersの部分。<br />
ポイントは、いくらでも増やせるみたい。<br />

<object width="400" height="200">
<param name="movie" value="http://blog.jokerstyle.org/wp-content/uploads/bezier.swf"></param>
<param name="quality" value="high"></param>
<param name="wmode" value="window"></param>
<param name="menu" value="false"></param>
<param name="bgcolor" value="#FFFFFF"></param>
<embed type="application/x-shockwave-flash" width="400" height="200" src="http://blog.jokerstyle.org/wp-content/uploads/bezier.swf" quality="high" bgcolor="#FFFFFF" wmode="window" menu="false" ></embed>
</object>
<br />
どんどん記事もコードも大雑把になっていく&#8230;<br />
とりあえずメモって事で。<br />
ぼちぼち、tweenerの機能をまとめた様な記事が書きたいな。<br />
時間がない!!!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jokerstyle.org/archives/699/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>tweenerで、FilterShortcuts、ColorShortcutsを使う</title>
		<link>http://blog.jokerstyle.org/archives/694</link>
		<comments>http://blog.jokerstyle.org/archives/694#comments</comments>
		<pubDate>Mon, 18 Oct 2010 17:38:45 +0000</pubDate>
		<dc:creator>ishiken</dc:creator>
				<category><![CDATA[WEB制作]]></category>
		<category><![CDATA[ActionScript3.0]]></category>

		<guid isPermaLink="false">http://blog.jokerstyle.org/?p=694</guid>
		<description><![CDATA[若干手抜きだけど、サンプルを作ってみました。 どうやら、tweenerには、特殊なプロパティなるものが存在して、 それらを使うには、各々クラスを読み込まなきゃならないらしい。 FilterShortcutsを使う為には、 [...]]]></description>
			<content:encoded><![CDATA[<p>若干手抜きだけど、サンプルを作ってみました。<br />
どうやら、tweenerには、特殊なプロパティなるものが存在して、<br />
それらを使うには、各々クラスを読み込まなきゃならないらしい。<br />
FilterShortcutsを使う為には、</p>
<pre>import caurina.transitions.properties.FilterShortcuts;
FilterShortcuts.init();</pre>
<p>が、ColorShortcutsを使う為には、</p>
<pre>import caurina.transitions.properties.ColorShortcuts;
ColorShortcuts.init();</pre>
<p>が、各々必要。<br />
必要なクラスを読み込んで、初期化しているっぽい。<br />
で、その二つを使ったサンプルを作りました。<br />
時間無くて、若干手抜き&#8230;</p>
<pre>//Tweener読み込み
import caurina.transitions.Tweener
<span style="color: #ff0000;">import caurina.transitions.properties.FilterShortcuts;
</span><span style="color: #0000ff;">import caurina.transitions.properties.ColorShortcuts;
</span>
//初期化
Tweener.init(stage);
<span style="color: #ff0000;">FilterShortcuts.init();
</span><span style="color: #0000ff;">ColorShortcuts.init();
</span>
//グローバル変数
var timer;
var cont;
var ball;
var check = 1;

//ボタンモード
switch_mc.buttonMode = true;

//インスタンス化
cont = new Container();
timer = new Timer(100);

//タイマーイベント
timer.addEventListener(TimerEvent.TIMER, tween);
//stageをクリックしたら、on/off
switch_mc.addEventListener(MouseEvent.CLICK, repeat);

function tween(event){
	//場所をランダムにして、コンテナーの上にaddChild
	ball = new Ball();
	ball.x = Math.floor(Math.random()*300);
	ball.y = Math.floor(Math.random()*300);
	trace(ball.x);
	trace(ball.y);
	cont.addChild(ball);
	//tweenerで、addChildしたものをアニメーション
	Tweener.addTween(ball,{time:0.5,
　　　　　　　　<span style="color: #0000ff;">_color:0x3E64FD</span>,
　　　　　　　　<span style="color: #ff0000;">_Blur_blurX:10</span>,
　　　　　　　　_Blur_blurY:10,_Blur_quality:100, transition:"easeOutQuart"});
}

//stageをクリックしたら、アニメーションのon/off
function repeat(event){
	if(check == 0){
		switch_mc.gotoAndStop(1);
		timer.stop();
		check = 1;
	}else if(check == 1){
		switch_mc.gotoAndStop(2);
		timer.start();
		stage.addChild(cont);
		check = 0;
	}
}
</pre>
<p>リンケージの設定は、丸いボールが、Ball<br />
空っぽのmcが、Container<br />
赤文字の部分が、FilterShortcuts。青文字の部分が、ColorShortcuts。<br />

<object width="300" height="300">
<param name="movie" value="http://blog.jokerstyle.org/wp-content/uploads/blur.swf"></param>
<param name="quality" value="high"></param>
<param name="wmode" value="window"></param>
<param name="menu" value="false"></param>
<param name="bgcolor" value="#FFFFFF"></param>
<embed type="application/x-shockwave-flash" width="300" height="300" src="http://blog.jokerstyle.org/wp-content/uploads/blur.swf" quality="high" bgcolor="#FFFFFF" wmode="window" menu="false" ></embed>
</object>
<br />
このブログも、若干手抜きになってる&#8230;<br />
次は、もうちょい解りやすく書かなきゃ。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jokerstyle.org/archives/694/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

