FC2ブログ
  • 08 «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • » 10
ASOK?
ActionScriptでFlashつくるよ
ずっと放置していたJavaScriptドキュメントツール。
JsDoc Toolkitを試してみた。

JsDoc Toolkit
wiki.metatype » javascript/JsDoc Toolkit
JsDoc ToolkitでJavascriptのドキュメントを自動生成 - 大人になったら肺呼吸

Yahoo式のコードは認識してくれないみたいで、自作モジュールのドキュメントが生成されない。
あと対象パス指定ができないみたいで、とてもめんどくさい。
他にはjsdocとnatural docというのがあるそうな。

JSDoc Homepage - JavaScript Documentation Tool
Natural Docs
page top

htmlに埋め込んだWindows MediaをJSでコントロール。IEでしかできないと思われがちだが、(怪しげな)アドオンをインストールすればFirefoxでも動く。

Mozilla Japan - Firefox 用アドオン - プラグイン

ほとんどIEと同じ仕様だが、微妙に違う箇所が。違いについてのメモ。

Windows Medaのhtml記述

通常Firefoxなら<embed>で記述するが、<object>で記述しないとJSでコントロールできない。
<object>の書き方は基本IEと同じだが、classid属性を記述するとFirefoxで表示されないので、classid属性は省略する。

IE
<object src="all.asx" id="wmp" type="application/x-ms-wmp" width="320" height="60" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6">
Firefox
<object src="all.asx" id="wmp" type="application/x-ms-wmp" width="320" height="60" >

イベント

<script for形式の記述も動作するが、一部Firefoxでは動かない。

外部jsファイル

動く

<script type="text/javascript" for="wmp" event="playStateChange(newState)" >
onPlayStateChange(newState);
</script>

動かない

<script type="text/javascript" for="wmp" event="PlayStateChange(e)" src="playstatechange.js"></script>

上記のように外部ファイル化すると動かない。外部ファイル化したい場合は、jsファイル内でfunction定義してそれを呼ぶようにする。

<script type="text/javascript" src="playstatechange.js"></script>
<script type="text/javascript" for="wmp" event="playStateChange(newState)" >
onPlayStateChange(newState);
</script>

こんな感じで。

for="window"

for="window"イベントは動かないので、ロード、アンロードイベントにはaddEventListenerを使う。

page top

prototype.jsの$R関数で有名な(?)ObjectRangeオブジェクトが面白い。

ObjectRangeオブジェクトとは、始端から終端までの範囲を表すもので、繰り返し(each)や判定(include)で用いると便利だ。始端と終端はリスト6で示すように数値や文字が指定できる。

【連載】いまからはじめるPrototype.js (1) Prototype.jsの概要と$で始まるメソッド | エンタープライズ | マイコミジャーナル

実装

最初はArrayの拡張なのかと思ったが、そうではなかった。

プロパティとしては、開始値と終了値ぐらいしかもたず、繰り返すだけのまさにEnumerableなオブジェクト。
文字周りの実装が気になるが、特別なことしてそうではない。不思議。

page top
JS圧縮ツールをJSMinからYUI Compressorに切り替えようと思う。
たしかJavaのランタイムを入れるのがめんどくさくてJSMinにしたんだけど、いつのまにかJava入ってるので、圧縮率高いほうがいいやってことで。

Yahoo! UI Library: YUI Compressor

使い方

java -jar yuicompressor-x.y.z.jar myfile.js -o myfile-min.js


こういうのはbatにしちゃったほうが楽だと思う。

yuicomp.bat

@echo off
java -jar yuicompressor-x.y.z.jar %1 -o %2

とか。
page top
Copyright © 2005 ASOK?. all rights reserved.