遂に出ました!

[rakuten:book:12522272:detail]
本日、購入してきました。
曲げセンサ、赤外線センサ、LEDアレイを光らせるなど、とても興味深い内容です。
これはかなり楽しめそう!
このGainer本の近くに、こんな本が置いてありました。

ActionScript 3.0 アニメーション

ActionScript 3.0 アニメーション

Keith Petersさんの『Foundation ActionScript 3 Animation: Making Things Move! 』の日本語訳。
遂に出ましたね!
お値段は7350円(税込み)とちょっとお高め。
英語がちょっと苦手で敬遠していた方も、この本ならば!
マストバイです。

GAINER本が発売!

『MASHUP++』でおなじみの九天社さんから、今月末に『+GAINER』という書籍が発売されるみたいです。
GainerFlashを使って何か楽しいことをしたい! って方には、もってこいの本。
電子回路の基礎知識から、Gainerを使った作品の作り方まで掲載されているみたいです。
これは、要チェックですね!

ヒアドキュメント

PHPで長い文字列を出力(または変数に代入)する際、文字列を連結する演算子「.」を使って、長々と記述するよりは、ヒアドキュメントを使った方が視覚的にも分かりやすい。

<?php
$name="山田太郎";
$email="hogehoge@hoge.com";
$info="私の名前は".$name."です。メールアドレスは".$email."です。";
print $info;
?>

このスクリプトを実行すると、画面には「私の名前は山田太郎です。メールアドレスはhogehoge@hoge.comです。」と表示されます。
さらに情報が増えていったりしたら、「.」で繋げていくという作業が続きます。
そんなときに、ヒアドキュメントを使います。

<?php
$name="山田太郎";
$email="hogehoge@hoge.com";
$info= <<< EOF
私の名前は
{$name}です。
メールアドレスは
{$email}です。
EOF;
print $info;
?>

このスクリプトを実行すると、画面には先のサンプルと同じく「私の名前は山田太郎です。メールアドレスはhogehoge@hoge.comです。」と表示されます。
こちらの方が見た目にも分かりやすいし、情報が増えたときにもすんなり対応出来るかと思います。


気を付ける事は、EOF;の行です。
この行には、半角スペースやインデントを入れてしまうと、エラーになります。
ですので、EOF;のみを記述しましょう!
ちなみにEOFでなければいけないということはありません。自分で設定出来ます。
一文字目はアンダースコアか英字。二文字目からは数字も使えます。


出力が一行になるのが嫌だ! という場合は<pre>〜〜〜</pre>で囲うか、<br />タグを使いましょう!

preを使う場合

<?php
$name="山田太郎";
$email="hogehoge@hoge.com";
$info= <<< EOF
<pre>
私の名前は
{$name}です。
メールアドレスは
{$email}です。
</pre>
EOF;
print $info;
?>

brを使う場合

<?php
$name="山田太郎";
$email="hogehoge@hoge.com";
$info= <<< EOF
私の名前は<br />
{$name}です。<br />
メールアドレスは<br />
{$email}です。<br />
EOF;
print $info;
?>

Water

現在、東京ミッドタウン内の21_21 DESIGN SIGHTで『Water』という企画展が開催されている。
ロッテ・キシリトールガムや明治・おいしい牛乳などのデザインを手掛けた佐藤卓さんが、ディレクションされています。
一昨日TBSで放送された『情熱大陸』にも出演されていましたね。
何だかとても面白そうな企画展です。


あと、上記サイト内にリンクされているaqua scape(地球の水の聴診器)というサイト。
とても綺麗なFlashのサイトです!

XMLファイルの作成

XMLファイルを作成する場合、DreamWeaverや他のテキストエディタなどで、コピペを繰り返して地道に作成していくことが多いのではないだろうか?
そんなやり方に飽きてしまった場合、XMLファイルを吐き出してくれるMovableTypeなどのCMSを使ってみるのはどうだろう?

<?xml version="1.0" encoding="UTF-8"?>
<article>
	<entry>
		<title>記事のタイトル</title>
		<contents>記事の内容</contents>
		<date>記事を書いた日時</date>
	</entry>
</article>

こんなXMLファイルを作成したい場合は、MovableTypeのテンプレートで新しいテンプレートを作成する。
そこにコードをこんな感じで記述していく。

<?xml version="1.0" encoding="UTF-8"?>
<article>
  <MTEntries>
	<entry>
		<title><$MTEntryTitle encode_xml="1"$></title>
		<contents><$MTEntryBody encode_xml="1"$></contents>
		<date><$MTEntryDate format="%x" language="ja"$></date>
	</entry>
  </MTEntries>
</article>

このような雛形を作っておけば、あとはブログの様に記事を書いていくだけで、自然とXMLファイルが作成されていく。
こんなやり方もありかなぁ… と思います。

おさらい

まずXMLファイルを用意する。ファイル名はlist.xml

<?xml version="1.0" encoding="UTF-8"?>
<sports>
	<soccer>サッカー</soccer>
	<basketball>バスケットボール</basketball>
	<football>アメリカンフットボール</football>
	<soccer>フットサル</soccer>
	<swim>水泳</swim>
</sports>

そんでもって今回はXMLファイルからXPathを使って「soccer」だけリストアップしてみる。

import mx.xpath.XPathAPI;
var my_xml:XML = new XML();
my_xml.ignoreWhite = true;
my_xml.onLoad = function() {
  var SportsList:Array;
  var SportsString:String = "/sports/soccer/*";
  //条件を満たすノードを配列に格納
  SportsList = XPathAPI.selectNodeList(this.firstChild, SportsString);
  //配列に格納されたノードに対してループ処理
  for (var i:Number = 0 ; i<SportsList.length;i++){
    trace(SportsList[i]);
  }
};
my_xml.load("list.xml");

そうするとサッカー、フットサルが出力パネルに表示される。

おさらい

FlashXMLを読み込むおさらい。

まずXMLファイルを用意する。ファイル名はlist.xml

<?xml version="1.0" encoding="UTF-8"?>
<sports>
	<soccer>サッカー</soccer>
	<basketball>バスケットボール</basketball>
	<football>アメリカンフットボール</football>
	<tennis>テニス</tennis>
	<swim>水泳</swim>
</sports>

そんでもってFlashを起動し、1フレーム目に以下のスクリプトを記述。

var my_xml:XML = new XML();
my_xml.ignoreWhite = true;
my_xml.onLoad = function (success:Boolean):Void{
	if (success){
		var sportslist:Array = my_xml.firstChild.childNodes;
		for (var i:Number = 0 ; i<my_xml.firstChild.childNodes.length; i++){
			trace(sportslist[i].firstChild.nodeValue);
		}
	} else{
		trace ("読み込みエラーです!");
	}
}
my_xml.load("list.xml");

そうすると出力パネルには以下の様に表示される。

サッカー
バスケットボール
アメリカンフットボール
テニス
水泳