FOTライブラリ - fairy.ouchi.to


忠告(たわごと)

こんなどこの馬の骨か分からん奴が作ったのなんて使うな。
ちゃんと広く使われてる有名ライブラリ使え。


概要と前置き

このサイトのJavaScriptで使ってるライブラリ/クラスの取説です。
これらのライブラリ/クラスは、このサイトで使うことだけを前提に、Firefox(100以降を想定)の実装を基準にして、 自分でいじり倒すためだけのオモチャ(プログラム)を作ったに過ぎません。

それぞれの取説は、中身を知りたい人のための説明を兼ねた、製作者本人の覚え書きです。 長く放置すると単純に中身を忘れるのと、取説書いたり読んだりしてると、たまに改善を思いつくのが大きい。 つまりはオモチャいじりの一環です。
取説の更新時点でのプログラムの仕様に基づいています。実際の仕様と取説が食い違っている可能性があります。 そもそもの話として、取説の通りに使用しても、それで正しく動作するという保証はありません。 というか、他人が使うことを想定していません。製作者以外に対しての位置付けは、 あくまで、動作を知りたい場合の手掛かりです。他人が使うためのサポートではありません。

原則として、他のライブラリとの併用などは考慮していません。
併用した場合にどのような副作用があるかは関知しません。

原則として、引数のチェックは一切やっていません。
取説に明記されている以外の使い方をすると、 致命的なエラーや無限ループや非常に分かりにくいバグを引き起こすことが多々あります。

原則として、JavaScript(ECMAScript)とHTML DOMの将来的な仕様の変更及び拡張に対して配慮していません。
将来の変更によって正常に動作しなくなる可能性があります。


共通する内容と使い方

ライブラリ/クラスと、それに対応するファイル名は以下の通り。

ライブラリ
FOT.load : load.js
FOT.param : (load.js)
FOT.task : task.js
FOT.elm : elm.js
FOT.event : (elm.js) + event.js + event.css
FOT.rand : rand.js
FOT.val : val.js
クラス
FOT.Time : time.js
FOT.Color : color.js
FOT.Dialog : (elm.js + event.js + event.css)
FOT.Figure : figure.js
FOT.Gif - gif.js

<head> 内で <script src="/js/fot/load.js"></script> で読み込みます。
全て同一フォルダに置いてある場合、load.js さえ読み込んでおけば、 他のライブラリはユーザーのプログラム内から FOT.load を使って読み込みできます。
個別に <script> で読み込んでもかまいません。重複しても大丈夫です。

event.js に含まれる FOT.event と FOT.Dialog は、elm.js を読み込むことを前提にしています。 elm.js を読み込んでいない場合、これらを使うとエラーが発生します。
これ以外は全て独立しているので、それぞれ単独で使用できます。

グローバル変数 FOT をハンドルにして、ライブラリ関数及びクラスのコンストラクタを呼び出します。
FOT.elm と FOT.event のみ、特定の HTML DOM API の prototype にメソッドを直接突っ込むという、 非常に行儀の悪いことをしています。
その他については FOT 以外に名前空間への影響はありません。


仕様変更する気のないあれこれ

UTF-8、lang="ja" での使用を前提にしています。他のエンコード及び言語は想定していません。

各クラスの取説でコンストラクタとして説明している関数は、JavaScript における厳密な意味でのコンストラクタではありません。 そのため、この関数には prototype は設定されていませんし、オブジェクトを作る時に new は必要ありません。
このような仕様にしているため、これらのクラスを継承しようとすると、内部実装への依存が不可避のはずです。 要するに継承の親クラスとしては全く適していません。

基本的に、20年ほど前からいじり倒してきたオモチャの成れの果てなので、古いものがちょくちょくあります。
しばらく前まで FOT.val.repeat や FOT.elm の definedClass / addClass / removeClass / toggleClass などがありましたが、 それぞれ String.repeat や classList.contains / add / remove / toggle に置き換えてこれらは削除しました。 この他、現状でも FOT.Dialog や FOT.Figure など、現在の標準機能で置き換え可能だと思われるものがいくつかあります。 同等の機能での置き換えが完了すれば、このライブラリの関数は削除します。