Thursday, December 28, 2006

Flashに読み込んだテキストをフォーマットする。

最近MySpaceでもみられるような、XMLを使ったmp3 playerを作ろうと思い、色々テストしています。
昨日のコードにフォーマッティング機能をつけてみました。
読み込んだテキストは、普通にテキストとして扱えるみたいです。

TextFormatという便利なクラスがあり、それにある特定のフォーマットを記録しておく事ができます。
TextFormat.size, TextFormat.borderColor等、色々と設定しておいて、それをsetTextFormatでTextFieldオブジェクトにアタッチする事ができます。スタイルシートなんかも読めるみたいです。

ただ、TextFieldの外観等、直接でないとフォーマットできない部分もあるので、それは、そちらでやる事になります。


// myList は、ステージ上に作ったMultiline Dynamic Text
// XMLを使っていますが、別に普通にテキストでも大丈夫です。
var myXML:XML = new XML();
var listFormat:TextFormat = new TextFormat();
listFormat.size = 10;
listFormat.color = 0xff0000;
listFormat.bold = true;
listFormat.align = "left";

myXML.onLoad = xmlLoaded;
myXML.load("illium.xml");


function xmlLoaded () {
_root.myList.text = this;
_root.myList.borderColor = 0x444444;
_root.myList.setTextFormat(listFormat);
}



次は、選択の出来るリスト形式にして、それをコンポーネント無しでやるには、どうすれば良いかを見ていきたいと思います。

Flash & XML

今日は、FlashでXMLを扱える様にしようと色々試行錯誤してみた。

チュートリアル、本、ドキュメントを片っ端からあさって、firstChildで一つ下をリファレンスする事が出来るという事が判明したけど、どうしてもnull, undefinedと出てきてしまって、4時間位何も進まない状況が続いた。何にも頼れなくなって来ても、幾度も幾度もXMLを再確認したり、色々やった結果、firstChildの使い方が、僕の環境ではなのか、全然違う事を発見した。

childNodesを使ってarrayとして求めないといけないらしい。しかも[]の中は、0から始まらず1から始まるという最悪ぶり。
やっとの事で、一応アクセスというか読み取る事位は出来る様になった。


var myXML:XML = new XML();

myXML.onLoad = xmlLoaded;
myXML.load("data.xml");

function xmlLoaded (){
trace(this);
trace(myXML.childNodes[1].nodeName);
trace(myXML.childNodes[1].childNodes[1].firstChild.nodeValue);

}



でも、これが原因で、どの本のサンプルも動かなかったというのが解って、ちょっと一安心。でも、なぜでしょう?本に載っているサンプルなんかで、かんたんな奴は、普通は大体動くはず。全くの謎です。

PHP:PEAR

ここ何ヶ月もずっとPEARが使えない・・どこに言ってもLinux/windowsの説明ばかりだし、macに優しい人は居ないのかと探していたんですが、やっと動かす事ができました。

しかも、できなかった理由は、なんとPathが間違ってただけでした!!!お恥ずかしい・・・
自分が忘れない為にも、どうしたら動かす事が出来るのかを書いておきます。

pearは、include_pathにパスを記入して使うのが一般的な様なので、まず、include_pathを決めるために、php.iniを使います。
肝心の場所ですが、phpinfo()関数が非常に役に立ちます。これのOutputをブラウザで見て、"検索" Command + F で、php.iniと検索すると見つかります。

そのパスまでTerminalを使って移動します。で、open ./でフォルダをファインダーで開いて、php.iniファイルをテキストエディタ(僕は、miというテキストエディタを長年愛用しています。)で開いて、又検索をかけ include_path を探します。 ここで、MacはUNIXベースなので、そっちの方をエディットします。
この実際のパスを書く所の少し上に、丁寧に書き方が書いてあるので、それを参考にしましょう。

そこに書くパスですが
terminalで、

which pear

コマンドを実行すると得られます・・簡単・・・(pearがインストールされている事が前提です)

で、環境設定から、サーバをリスタートして、動いた。うわ、かんたん・・・
一旦、解ってしまうと簡単すぎて余計に泣けてきます。

これで何ヶ月も悩んでた俺ってバカじゃん・・・いや、そうじゃなく、WEB上には、自分の環境の事を書き回っている人があまりにも多いのがいけないんだ!とアメリカ流、自分でなくて他の誰かのせいにする作戦を使っておいて・・・

まぁ、これで色々出来る様になるので、遅れを取り戻さないと・・・
お騒がせしました。

Photoshop CS 3 Public beta

Photoshop CS 3 Public Beta版が公開されています。

http://www.adobe.com/cfusion/entitlement/index.cfm?e=labs%5Fphotoshop


2日以上の使用には、CS2のSerial Numberが必要な所が、玉に傷。
肝心のIntel Mac対応度ですが・・それほど高くないみたいです。

http://labs.adobe.com/technologies/photoshopcs3/

まぁ、もうそろそろ発売される(多分、年始のMacWorldで)という事なんで、いいか。それまでには、なんとかして欲しい物です。

XML と PHP

僕が音楽バカだと思っている方も多々居ると思いますので、今日は、気分を変えて、全く音楽とは関係ない話題です。

今日までXMLてなんぞや????って感じだったんですが、(ウソ)今日、初めて実際に使えるレベルまで理解する努力をしました。

普段、マニュアルからは、逃げてばっかりの自分なんですが、少しいじり回してみると、全然難しい事は無かったです。というのも、PHP5は、PHP4よりは偉いので、SimpleXMLElementとかいう、変なネーミングのオブジェクトを使って簡単に、なんもインストールせずに、XMLをparseできました。DOMがなんとかっていうやり方もあるみたいなんですが、そっちの方は、ちょっとドキュメントが怪しい(php4とphp5で仕様が根本から違う)ので、やめました。

とにかく、これで僕が、PHPでXMLが使える様になったので、カタログ位のサイトのコードは、データベースを使わずに書く事ができます。(パケットだの、ソケットだのはまだ良くわかっていません・・こうなったら、ソープ直行!です。)

ただ、PEARに関しては、相変わらずテストサーバで使えません・・・なんでだろう・・
include_pathの設定をphp.iniでやってるんですが、include_pathが変わりません!お手上げ状態。

何か知っている方は、教えてくださいm(_ _)m