DATE : 2006/08/05 (Sat)
「ぼく、ドラえもんでした。 涙と笑いの26年うちあけ話」(大山のぶ代・著)を読みました。26年間声優を務められたアニメ「ドラえもん」に関するエッセイです。
(;゚Д゚)私は本を読むのが遅いので、毎日1章ずつ、全部で8章、約8日間かかって読むつもりが、4時間ぐらいで一気に読んでしまいました
(´;ω;)藤子先生が亡くなられたところではウッ…… 大山さん自身が声を上げて泣くと、元々ドラえもんに近い地声から、ドラえもんが泣いているように聞こえたというくだりでさらに(´;ω;)ブワッときました。
大山さんはドラえもんに出会ってから、『アイツ』に一目ぼれしたそうです。しかし、放送局がなかなか決まらず、やきもきした気分を味わったそうです。そこからテレビ朝日に決まり、放送開始から絶大な人気を誇って映画「のび太の恐竜」へとなだれ込んでいきます。この勢いにのせられていくように、私もどんどんページをめくっていました(;゚∀゚)=3
(ちなみに、放送局がなかなか決まらなかったのは、今では「旧ドラ」と呼ばれる、日本テレビ版のドラえもんが失敗に終わってしまったためだと考えられます。この記事を書くために Wikipedia を見てみたのですが、旧ドラの最終回は「次回をお楽しみに」で終わっているようです。当時のスタッフたちが、ドラえもんアニメの復活を願ってのことらしく、(´;ω;`) →「日本テレビ動画版における最終回」)
大山さんら5人の声優陣の方々は、非常に楽しくドラえもんを演じてこられたようです。スタジオ内では、失敗をすると誰かが必ずジョークにしてみんな笑ってしまうそうです。もちろん、洋画の吹き替えや舞台などの経験が豊富だからこそできる余裕なのでしょう。私もそのような余裕を持てるように頑張っていきたいものです(`・ω・´)
DATE : 2006/08/05 (Sat)
忘れたときのために、JavaScript で DOM オブジェクトを取得する方法をメモしておきます。
スクリプトが埋め込まれている HTML(XHTML) を表す DOM オブジェクト
document オブジェクトが HTMLDocument インタフェースを実装しているので、document オブジェクトを使えば DOM オブジェクトを取得できます。
HTMLDocumen インタフェースは Document インタフェースを継承しているので、ここからルート要素を取得することもできます(ルート要素は<html>になります)。
// HTMLDocument
var htmlDocument = document;
// ルート要素
var rootElement = document.documentElement;
XML を表す DOM オブジェクト
XMLHttpRequest オブジェクトを使って XML ファイルを読み込んだ後に、responseXML プロパティを取得することで Document オブジェクトを取得できます。
// xmlHttpRequest は、XML をロード済みの XMLHttpRequest オブジェクト
var rootElement = xmlHttpRequest.responseXML;
なんとなく、「responseXML」という名前からメソッドのように見えますが、プロパティなので注意が必要です。
参考文献
DATE : 2006/08/02 (Wed)
DOM でノードの種類(要素、テキスト、コメントなど)を調べるには、Node インタフェースの nodeType プロパティを調べます。
例えば、次のような XML があったとします。
<?xml version="1.0" encoding="UTF-8"?>
<root>
<child1>text</child1>
<child2>text2</child2>
</root>
この XML にある root 要素の子ノードの内容を取り出すコードは、次のようになりそうな気がします。(getElementsByTagName メソッドを使う方法もありますが、以下のコードではルートノードから辿る方法を使います)
// root 変数には、root 要素の Node が格納されている
// root 要素の子ノードを取得
var children = root.nodeList();
var results = [];
// 子ノードの内容を結果を表す配列に追加
for (var i = 0; i < children.length; i++) {
var aChild = children.item(i);
results.push(aChild.nodeValue);
}
このコードでは、root 要素の子ノードの内容を結果として格納しています。しかし、この方法は間違いです。上の XML を見ると、root 要素の中に child1 要素と child2 要素があるので、一見間違いなさそうに見えます。しかし、 child1 要素、child2 要素のそれぞれの両端には、改行と半角スペースがあります。この一見何もないように見える部分も、立派な root 要素の子ノードです。child1, child2 要素が Element 型であるのに対し、その外側の空白や改行、child1 や child2 タグに囲まれた文字列は Text 型になります。
そこで、取得できたノードが Element 型かどうかを判別する必要がでてきます。ノードが Element 型かどうかは、JavaScript の場合、以下のようになります。
// node 変数に、取得できたノードが格納されている
node.nodeType == 1
nodeType プロパティを参照すると、そのノードの型が分かります。ノードの型は整数で定義されており、Element 型は「1」になっています(実際には、1は定数としてどこかに定義しておいた方がよさそうです)。型と nodeType プロパティの値との対応は、DOM Level1 に定義されています。
すると、上の間違ったコードは、次のように書きなおせます。
// root 変数には、root 要素の Node が格納されている
// root 要素の子ノードを取得
var children = root.nodeList();
var results = [];
var NODE_TYPE_ELEMENT = 1;
// 子ノードの内容を結果を表す配列に追加
for (var i = 0; i < children.length; i++) {
var aChild = children.item(i);
if (aChild.nodeType == NODE_TYPE_ELEMENT) {
results.push(aChild.nodeValue);
}
}
参考文献
DATE : 2006/08/01 (Tue)
JavaScript には、名前空間がありません。例えば、HTML の script 要素で読み込んだライブラリの中で 「func」という関数があった場合で自作のスクリプトの中でも func という関数を定義するとします。この場合、自分のスクリプトの中で func 関数を呼び出した場合でも、ライブラリの中で func 関数を呼び出した場合でも、自作スクリプト中の func 関数が呼び出されてしまいます。
この程度の場合は、ライブラリ中にある関数と同名のものを作らないように気をつければ良いだけの話となります。しかし、ライブラリを2つ以上読み込む場合はどうでしょうか。場合によっては、ライブラリ中の関数が後に読み込まれたライブラリの関数に上書きされて、ライブラリの動作がおかしくなる場合があります。
例えば、jQueryというライブラリがあります。このライブラリは、$関数を利用して DOM オブジェクトを簡単に取得できます。例えば、次のコードでページ中の全ての画像を非表示にできます。
$("img").hide();
$関数の引数には、CSS セレクタの表記や XPath を使用することもできます。
$(".target").hide(); // target クラスの要素を非表示にする
$("p:last").hide(); // 最後の p 要素を非表示にする
しかし、prototype.js というライブラリでも、$関数は利用されています。prototype.js では、引数に指定された ID を持つ DOM オブジェクトを返します。
そのため、prototype.js と jQuery を併用すると、問題が発生する場合があります。一応、対処法は「Prototype and jQuety」に書かれています。
しかし、これは prototype.js と jQuety のみをライブラリとして使用し、他のライブラリは使用しないという条件を基に書かれています。prototype.js に依存したライブラリや jQuery に依存したライブラリも追加した場合の保証はありません。
そのため、ライブラリを採用する際には、用意されている関数やオブジェクトが重複していないか注意を払わなければなりません。
DATE : 2006/07/31 (Mon)
、> .|
>________ .|
 ̄ .|./_ _\ | | ____________
| / ヽ/ ヽ | | /
. | | ・ | ・ | V⌒i | 7がつのくせに
_ |.\ 人__ノ 6 | <
\ ̄ ○ / | 雨降り過ぎだぞ
. \ 厂 \
/ _____/  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄, -/へ/\/`- 、
/./ ./o i. \
6月に雨が全然降らないので不思議に思っていたら、7月になってから大量に降ってきました orz
(;´Д`)1週間ぐらいで1ヶ月分は降ったような気がします。
そして、今日からはギンギンに晴れるらしいです。(υ´Д`)また暑い夏がやってきます……
(;^ω^)どうも近頃、天候が両極端で困りますね。