« 2006年10月 | メイン | 2006年12月 »

ダウンロードファイル追加しました

「FLASH ActionScript スーパーサンプル集 1.0/2.0対応版」サポートページにダウンロードファイルを追加しました。ActionScript 2.0のクラス定義の研究に役立ててください。ほかのサンプルファイルや解説を読みたい人は本を買ってね。ぜひ。
*全てのソースファイルは書籍の付属CD-ROMに入っています。

「FLASH ActionScript スーパーサンプル集 1.0/2.0対応版」サポートページ

投稿者 oshige : 00:14

ネコ温度計リリース

ネコ温度計v.2を正式リリースしました。
設置場所のタイムゾーンに合わせた時計、摂氏+華氏の表示など新機能も盛り込みました。設置用のHTMLコードを生成するページもFlashで作っています。

フランス・パリ↓

ネコ温度計を作るための技術的課題と解決

課題1.米国のお天気サーバーからXMLを取得するたにクロスドメイン制限に引っかかる。
課題2.cat.oshige.comのネコ温度計swfに直リンクしてwebページに貼ったとき、ムービークリップに外置きのswfを読み込むとクロスドメイン制限に引っかかる。
課題3.直リンクしているswfをバージョンアップしても、ブラウザのキャッシュがじゃまして更新が反映されない。かと言ってバージョンアップのたびにswfのファイル名を変えるとそれに伴って設置コードも書き換えてもらう必要が出てくる。これは現実的には難しい。

課題1→解決:PHPの簡単proxyを使い、swfはあくまでも同一ドメイン内とやり取りしているように見せかける。
*当初配布していた物にはセキュリティーホールが発覚。さっそく対応。
課題2→解決:cat.oshige.comにクロスドメインポリシィファイルを置き、それをswfで読み込んで他のドメインからのアクセスを許可する。
課題3→解決:ActiveX コントロールをアクティブ化するためのJavaScriptを修正し、HTMLを生成する際にswfのurlにキャッシュ対策用のダミー引数を付加する関数を付け加えた。

*解決策に使ったファイル類はアップロード版のネコ温度計ファイルに同梱しています。
詳しくは、ネコ温度計ホームページのダウンロードへ。

課題3→解決:対応変更しました
コードメーカーで生成する配置コードにキャッシュ対策のJavaScriptを埋め込み、標準のAC_RunActiveContent.jsはそのまま使うことにしました。どのような手法かなのかは配置コードを見るとわかります

投稿者 oshige : 21:32

アナログクロック

ネコ温度計には時計が付いています。アナログ時計は次のAnalogClockクラスで作ることができます。
ただ、ネコ温度計の時計は設置場所のタイムゾーンを反映する世界時計です。世界時計にするにはどうすればいいでしょうか?ちょっと考えてみてください。

class AnalogClock {
	var choushin:MovieClip;
	var tanshin:MovieClip;
	var clockInterval:Number;
	//コンストラクタ
	function AnalogClock(H_mc:MovieClip, M_mc:MovieClip) {
		choushin = H_mc;
		tanshin = M_mc;
		//現在の時刻にセット
		updateClock();
		//1分間隔で更新
		clockInterval = setInterval(this, "updateClock", 1*60*1000);
	}
	//時針の回転
	function updateClock():Void {
		tanshin._rotation = getTanshin();
		choushin._rotation = getChoushin();
	}
	//短針の角度
	function getTanshin():Number {
		var now:Date = new Date();
		var h:Number = now.getHours()%12;
		var m:Number = now.getMinutes();
		h += m/60;
		var d:Number = Math.floor(360/12*h);
		return d;
	}
	//長針の角度
	function getChoushin():Number {
		var now:Date = new Date();
		var m:Number = now.getMinutes();
		var d:Number = Math.floor(360/60*m);
		return d;
	}
}

投稿者 oshige : 14:35

フランチャイズ

これまでセミナーなどで、クラスとインスタンスの関係を「工場と車」などいろいろなものに例えて説明してきました。そしてついに最強のたとえを思いつきました。
それは「フランチャイズ」です。牛丼チェーン店とかのことです。本社がクラスであり、契約店はインスタンスです。どうです。わかりやすいでしょ。え?もっと詳しく書いてくれなきゃわからない?
今日は時間がないのでまた今度。

投稿者 oshige : 11:59

Flash ActionScript3.0入門ノート

書かないとスグに忘れてしまうので、メモのような感じでFlash ActionScript3.0入門ノートをぼちぼち始めました。

投稿者 oshige : 23:10