« 2007年7月 | メイン | 2007年9月 »

2007年8月 アーカイブ

2007年8月 1日

8.1 時計を作る (1)デジタル時計

■デジタル時計
Dateクラスを利用して時分秒のデジタル時計を作ります。Dateクラスのインスタンスを作ると、その時点の日時データがDateオブジェクトというかたちで作られます。DateオブジェクトのdateObjから年を調べるにはdateObj.getFullYear()、月はdateObj.getMonth()、日はdateObj.getDate()というようにメソッドを実行します。なお、getMonth()は1月が0、2月が1のように0からカウントするので注意してください。曜日を調べるgetDay()も日曜日から土曜日を0〜6で示します。このほうが月名や曜日名を配列に入れて参照する際にインデックス番号が一致して扱いやすいためです。

[:sample:] dateSample.fla
例:フレームアクション
var week:Array = ["日","月","火","水","木","金","土"];
var dateObj:Date = new Date();
var yyyy:Number = dateObj.getFullYear();
var mm:Number = dateObj.getMonth()+1;
var dd:Number = dateObj.getDate();
var youbiIndex:Number = dateObj.getDay();
var today:String = yyyy+"年"+mm+"月"+dd+"日("+week[youbiIndex]+")";
trace(today); //出力→ 2007年6月2日(土)

続きを読む "8.1 時計を作る (1)デジタル時計" »

2007年8月 5日

9.1 イメージファイルの読み込み(1)

■外部ファイル読み込みの手順
外部ファイルのSWFファイルおよびイメージファイル (JPG、PNG、GIF) を読み込んで再生表示することができます。これらの外部ファイルを読み込むにはLoaderクラスを使用します。

[:NOTE:]
AS2.0のMovieClipLoaderクラスはAS3.0ではLoaderクラスに置き換えられました。なお、テキストまたはバイナリデータをロードするにはURLLoaderクラスを使用します。(URLLoaderクラス→p.??)

Loaderクラスを使用して外部ファイルを読み込むには、LoaderクラスのインスタンスloaderObjを作り、loaderObjに対してloaderObj.load(urlReq)のようにload()メソッドを実行します。load()の引数のurlReqは読み込む外部ファイルのURLですが、ストリングのURLをそのままload()に引数として渡すのではなく、URLRequestクラスのオブジェクトにした値すなわちURLRequest(URL)をload()に渡します。
次のSimpleImageLoaderクラスは、外部のイメージファイルを読み込んで表示するという単純な機能のクラスです。イメージを表示する場所は、引数で渡したコンテナの中の指定座標(ローカル座標)になります。

[:NOTE:]
SWFと外部ファイルが異なったドメインにあるときはクロスドメインのポリシーファイルを外部ファイルを置いたパスに配置し、LoaderContextクラスでチェックします。なお、SWFを読み込む場合とイメージファイルを読み込み場合はセキュリティレベルが違っています。(クロスドメイン→P.??)

続きを読む "9.1 イメージファイルの読み込み(1)" »

2007年8月10日

10.1 外部テキストファイルの読み込み

■外部テキストファイルの読み込み
外部テキストファイルの読み込みにはURLLoaderクラスを使用します。基本的な手順は外部イメージファイルの読み込みと同じですが、Loaderインスタンスが表示オブジェクトなのに対し、URLLoaderクラスのインスタンスは表示オブジェクトではありません。URLLoaderクラスでダウンロードしたテキストを表示するには、ステージに表示されているダイナミックテキストフィールドやTextAreaコンポーネントにテキストを入れる必要があります。なお、Loaderクラスでイメージを読み込む場合と同様にSWFと外部テキストファイルが同じドメインにない場合はセキュリティエラーになります。これを解決するにはクロスドメインポリシーファイルを相手側サーバーに置き、アクセスが許可されているかどうかをチェックするする必要があります。(ポリシーファイルのチェック→p.??)
次のTextdataLoaderクラスでは、外部のテキストファイルを読み込み、そのテキストをステージに作ってあるTextAreaコンポーネントのインスタンスに表示します。

[:NOTE:]
変数の読み込み、PerlやPHPなどのサーバーサイドスクリプトとのやり取りにもURLLoaderクラスを使います。AS2.0のLoadVarsクラスはAS3.0ではURLLoaderクラスに置き換えられました。なお、SWFファイルおよびイメージファイルをロードするにはLoaderクラスを使用します(Loaderクラス→p.??)。

fig10-01-01 外部テキストファイルから読み込んだテキストをTextAreaに表示します。


[:sample:] TextdataLoader.as
例:外部テキストファイルを読み込むTextdataLoaderクラス
package {
	import fl.controls.TextArea;
	import flash.net.URLLoader;
	import flash.net.URLLoaderDataFormat;
	import flash.net.URLRequest;
	import flash.system.System;
	import flash.events.Event;
	import flash.text.TextFormat;

	public class TextdataLoader {
		var txtArea:TextArea;
		
		//コンストラクタ
		function TextdataLoader(ta:TextArea, url:String, shiftJIS:Boolean) {
			txtArea = ta;
			var format:TextFormat = new TextFormat();
			format.size = 18;
			txtArea.setStyle("textFormat",format);
			//URLLoader作成
			var txtLoader:URLLoader = new URLLoader();
			txtLoader.dataFormat = URLLoaderDataFormat.TEXT;
			txtLoader.addEventListener(Event.COMPLETE, onLoaded);
			//URL
			var urlReq:URLRequest = new URLRequest(url);
			//Shift-JISならばtrue
			System.useCodePage = shiftJIS;
			//読み込み開始
			txtLoader.load(urlReq);
		}
		//読み込んだテキストを表示する
		function onLoaded(event:Event):void {
			txtArea.text = txtLoader.data;
		}
	}
}

続きを読む "10.1 外部テキストファイルの読み込み" »

2007年8月13日

p23

図の表示オブジェクトのツリー構造の例で、ツリーの一番下の3個がどれもLoaderになっています。これでも間違いではないのですけど、元原稿ではBitMap、MovieClip、Loaderでした。

p30

parentの説明の2行目
誤:parentは表示リストでの並びにおいて1つ手前の表示オブジェクトを相対的に
正:parentは表示オブジェクトがaddChild()されているコンテナを相対的に

p136

1行目
誤:"sing"を含む単語"singer"はマッチしません。
正:これに対し、"season"にはマッチする部分がないのでnullを返します。

p212

ドキュメントクラスの説明において、「メインのタイムラインのフレームアクションに代わって動作します」と書いていますが、この表現には誤りがあります。実際にはドキュメントクラスのスクリプトとフレームアクションが組み合わさるようなかっこうで動作します。
つまり、ムービーに書いておいたフレームアクションもそのまま動作し、両者に同じ変数名や関数名が存在すると重複して宣言しているというエラーになります。フレームアクションからドキュメントクラスのメソッドを使うこともできます。

本書の正誤としては、簡単ですが、次のように訂正しておきます。訂正は2箇所あります。

上から4行目、上から8行目
誤:フレームアクションに代わって動作します。
正:フレームアクションと合わさって動作します。

p271

「指定スケールにバネのように弾んで止まる」のSpringScaleクラスのスクリプトの3行目でPontクラスをimportしていますが、Pointクラスは使用していないのでimportする必要がありません。

誤:import flash.geom.Point;
正:不要です。(この行があっても影響はありません)

p301〜p331

CHAPTER 07ではスプライトに絵を描くクラスがたくさん掲載されています。これらのクラスにおいて描画のためにGraphicsクラスのメソッドを使いますが、GraphicsクラスのメソッドにはSpriteクラスのgraphicsプロパティを介してアクセスするので、Graphicsクラスをimportする必要はありません。

誤:import flash.display.Graphics;
正:不要です。(この行があっても影響はありません)

同様の不要なimport文は以下のページのクラス定義にもあります。
p301、p303、p306、p309、p311、p314、p317、p321、p324、p328、p331

p405

TextdataLoaderクラスのクラス定義において、txtLoader変数をインスタンスプロパティとして宣言してください。修正箇所は2箇所です。

誤:スクリプト10行目
public class TextdataLoader {
 var txtArea:TextArea;
 //コンストラクタ

正:(挿入)
public class TextdataLoader {
 var txtLoader:URLLoader;
 var txtArea:TextArea;
 //コンストラクタ

誤:スクリプト18行目
 //URLLoader作成
 var txtLoader:URLLoader = new URLLoader();

正:(訂正)
 //URLLoader作成
 txtLoader = new URLLoader();

2007年8月14日

AS3.0入門ノート販売開始です。

書店、ネット書店で販売開始になりました。
よろしくお願いしま〜す。

Adobe Flash CS3 詳細! ActionScript 3.0 入門ノート (DVD付)Adobe Flash CS3 詳細! ActionScript 3.0 入門ノート (DVD付)
大重美幸


Amazonで詳しく見る
by G-Tools

目次は→こちら

2007年8月24日

11.1 XMLファイルを読み込む

■外部XMLファイルの読み込み
外部のXMLファイルを利用するには、まず最初にXMLファイルを読み込み、読み込み完了後にXMLデータの解析を行います。XMLファイルは実際にはテキストファイルなので、通常のテキストファイルと同様にURLLoaderクラスを使って読み込みます(URLLoaderクラス→p.??)。
なお、外部テキストファイルの読み込みで説明したように、SWFとXMLファイルが同じドメインにない場合はセキュリティエラーになります。これを解決するにはクロスドメインポリシーファイルを相手側サーバーに置き、アクセスが許可されているかどうかをチェックする必要があります。(ポリシーファイルのチェック→p.??)
用意するXMLファイルにはXML宣言やエンコード情報なども実際には必要ありません。ファイル拡張子も.xmlではなく.txtでも構いません。テキストエンコードの初期値はUnicodeですが、ShiftJISにも対応できます。

[:sample:] photolist.xml 例:読み込むXMLファイル
<?xml version="1.0" encoding="Shift_JIS" ?>
<data>
<photo tag="sea" fname="R0010834.jpg" >雪の漁港</photo>
<photo tag="sea" fname="R0011823.jpg" >サザンビーチモニュメント</photo>
<photo tag="sea" fname="R0010760.jpg" >冬晴れの海</photo>
<photo tag="cat" fname="R0016100.jpg" >漁港の猫</photo>
</data>

続きを読む "11.1 XMLファイルを読み込む" »

2007年8月27日

アップルストア銀座でAS3セミナー

アップルストア銀座でActionScript 3.0入門セミナーをやります。
60分と短いのでぎゅぎゅ〜っと内容圧縮ですが、無料セミナーなのでお気軽にどうぞ。
本に書いてないことも少ししゃべる予定・・・イベントのバブリングとか。

9月6日(木)Webデザイン pm7:00-8:00
67WS presents大重美幸のActionScript3.0入門+もう1歩
*事前の申し込みは必要ありません。当日、早い者順。

台風9号の中、終了しました。この日は新iPod発表の日でもありました。
台風の中、来場された方ありがとうございました。無事に帰宅できたでしょうか。
60分はやっぱ短いですね〜。ここで「イベントバブリングの話するかも」と書いていたので強引に入れましたが、中途半端だったなあ・・・と反省してます。
o_016.jpg
名前から可愛い女性と信じている人もいるようですけど・・・男です。

About 2007年8月

2007年8月にブログ「ActionScript3.0入門ノート」に投稿されたすべてのエントリーです。過去のものから新しいものへ順番に並んでいます。

前のアーカイブは2007年7月です。

次のアーカイブは2007年9月です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。