2008 年 12 月 のアーカイブ

Loaderクラスについて

2008 年 12 月 29 日 月曜日

Loaderクラスはswfやjpg,gifなどの外部ファイルを読み込むクラス。読み込まれた画像を子として持つことができるが子はひとつのみしか持つことができない。(つまり画像を同時に複数表示させたい場合はその都度Loaderオブジェクトを作成する)

// Loaderオブジェクトの作成
var my_loader:Loader = new Loader();

これだけでは何も表示はされず、画像を読み込むことで初めて表示される。画像表示までの手順。

  1. Loaderクラス(オブジェクト)を作成
  2. URLRequestクラスでファイルのパスを取得する
  3. Loader.load()メソッドで画像を読み込む(引数には2で取得したurlを入れる)
  4. addChildメソッドで配置する

var my_loader:Loader = new Loader(); //Loaderオブジェクトの作成
var my_url:URLRequest = new URL Request(“sample.jpg”); //画像のパスを取得

my_loader.load(my_url); //作成したLoaderオブジェクトに画像を読み込む
addChild(my_loader); //オブジェクトを配置

Loaderオブジェクトの子として読み込まれたファイルのプロパティを設定するにはLoader.contentプロパティを、ファイルサイズや幅などオブジェクトの情報を取得するにはLoader.contentLoaderInfoプロパティにアクセスする。ただし、読み込みが完了していないオブジェクトのプロパティにアクセスをしようとするとエラーになる。

// 読み込まれたオブジェクトにアクセスしてみる
trace(my_loader.content ); // 出力:null
my_loader.content.alpha = 0.9; // 出力:Error

そこで、読み込みの完了時に送出されるイベントリスナーを登録する。(Event.COMPLETE

読み込みの最中に一定の間隔(どのくらいかは解らない)で送出されるイベントリスナー(ProgressEvent.PROGRESS
ProgressEventは読み込み状況を監視、参照する場合などに頻繁に利用される。

また、読み込み開始時に何らかの処理を行う場合も同様に読み込み開始時に送出されるイベントリスナーを登録する(Event.INIT

my_loader.contentLoaderInfo.addEventListener(Event.INIT,loadInit);
my_loader.contentLoaderInfo.addEventListener(Event.COMPLETE,loadComplete);

// 読み込み開始時のイベント
function loadInit (event:Event) :void {
trace(“読み込み開始”);
}

// 読み込み完了時のイベント
function loadComplete (event:Event) :void {
trace(“読み込み完了”);
}

イベントリスナーはLoaderオブジェクトではなく、contentLoaderInfoオブジェクトからリスナー登録をするので注意。

addChildメソッド

2008 年 12 月 24 日 水曜日

addChildメソッドはコンテナ上(DisplayObjectContainer)にインスタンスを配置(追加)するメソッド。インスタンスは表示オブジェクトの最前面(一番手前)に表示される。

表示オブジェクトの最背面に表示させたい場合はaddChildAtメソッドを実行する。

配置したインスタンスの表示順(深度)を設定したい場合はsetChildIndexメソッドを実行する。

TextFieldクラスの主なプロパティ

2008 年 12 月 22 日 月曜日

文字列を表示させるにはTextFieldクラスを生成する。

my_Fld:TextField = new TextField();

TextFieldクラスの主なプロパティ

alpha:Number // 透明度(0.0~1.0)
height:Number // 高さ
rotation:Number // 回転(0~360)
x:Number // x座標
y:Number // y座標
autoSize:String // オートサイズ TextFieldAutoSize.[NONE,LEFT,RIGHT,CENTER]寄せ
border:Boolean // 枠の表示・非表示(true/false)
length:int // 文字の長さ(読込専用)
selectable:Boolean // 選択の可能・不可能(true/false)
text:String // 表示するテキスト
textColor:uint // テキストの色
textWidth:Number // テキストフィールドの幅(読込専用)
textHeight:Number // テキストフィールドの高さ(読込専用)
type:String // 種別 TextFieldType.DYNAMIC:ユーザーが編集不可能 TextFieldType.INPUT:ユーザーが編集可能

関数定義の基本と戻り値の型宣言

2008 年 12 月 21 日 日曜日

ActionScript3.0の関数の宣言。

function sampleEvent(引数:型):戻り値の型 {
    //処理内容
}

戻り値は処理によって戻される値。戻り値が無い場合は「void」を指定する。
以下は足し算の例。

function tashizan (a:int,b:int):int {
 var c:int = a + b;
 return c;
}
trace(tashizan(3,5)); //出力:8

上の例のように戻り値があるのに「void」を指定した場合、以下のようにエラーになる。

function tashizan (a:int,b:int):void {
 var c:int = a + b;
 return c;
}
trace(tashizan(3,5)); //出力:error 「戻り値は未定義でなければなりません」

つまり、「void」を指定しているので戻り値を返してはいけません」ってことですな。

トラックバックって何?ブログを始めておきながら、、、

2008 年 12 月 19 日 金曜日

トラックバックやらトラックバック・ピングやら、ブログの構築はできるのにこの辺全く知らなかったのでググってみました。

トラックバックとは、記事内容で他のブログ記事にリンクを貼ったり参照させてもらった場合、それを参照元に知らせる機能とのこと。これによって参照元の相手も被リンクを確認できるというわけですね。

トラックバック・ピングというのはこの通知のことらしい。そういえばピングを飛ばすってなんかに書いてあった、納得です。

web系の言語でよく使用される英単語をまとめてみる

2008 年 12 月 18 日 木曜日

web系の言語なんかでは英単語が出てくるけど、英単語をなんとなく暗記するのと意味(訳)を理解して使用するのとではだいぶ効率が違うと思う。

なので様々な言語で一般的に使用される英単語、また識別子などで利用できるような英単語を訳付きでこのページでまとめておきます。随時追加していく予定。

utility
有用, 有益, 実用, 有用性
transition
(位置・状態などの)移り変わり, 推移,
static
静的な, 静止の,動きのない
dynamic
(webでは主にこれを指す)動的な
extend
拡張させる,引き伸ばす,展開させる
direction
方向,方角
angle
(かく), 角度
degree
度,角度
sprite
妖精(画面上を動き回るグラフィックを妖精になぞらえたというのが語源らしい)
progress
進行, 進展
container
入れ物, 容器
move
動く, 移動する, 位置を変える
create
創造する, 生み出す
velocity
(運動・動作の)素早さ, 速さ, 速力, 速度
gravity
《理》重力, (地球)引力
matrix
行列, マトリックス
radian
ラジアン, 弧度:角度の単位;57.29578°(略:rad).
radius
(円・球の)半径,半径の長さ.
result
結果, 結末, 成り行き

floatされたボックスの末尾テキストが複製されるIE6のバグ

2008 年 12 月 15 日 月曜日

IE6で起きた現象。今回の例は左側にナビゲーション用カラム、右側にメインコンテンツという2カラムレイアウトを作成した時に、メインコンテンツの末尾テキストが複製されてしまいました。

回避方法を探していたら何件か記事が公開されていました。THE HAM MEDIAさんのblog
http://h2ham.seesaa.net/article/109568808.html

原因としては親ボックスに対して子ボックスが隙間なく入っていること(横幅ね)、またfloatされたボックス周辺にコメントが入っていることのようです。もし同様のバグが起きたら、、

  • 親ボックスのwidthを少し広げてあげる(厳密には3px以内だとバグ発生とのこと)
  • floatされたボックス周辺のコメントを削除する

ただ親ボックスの領域を変更するというのは本末転倒というか、バグのためになんで変更しなくちゃいけない訳?ってIEに愚痴ってしまいそうだ。

データ型や値のチェックに使用するメソッド、演算子。

2008 年 12 月 7 日 日曜日

出力ウィンドウに値を表示させる。

trace(“Hello World”)  //出力: Hello World

データ型のチェックに使用できる演算子 is、as、typeof

//変数の定義
var myPrice:int = 250;
var myColor:String = “Red”
var my_mc:MovieClip = new MovieClip();

//is演算子: 型が一致の場合はtrue、それ以外はfalseを返す
trace(myPrice is int); //出力結果: true
trace(myPrice is String) //出力結果: false
trace(myPrice is Number) //出力結果: true

//as演算子: 型が一致の場合は値を、それ以外はnullを返す
trace(myPrice as int); //出力: 250
trace(myColor as int); //出力: null;
trace(my_mc as MovieClip //出力: [object MovieClip]

//typeof演算子: データの型をストリングで返す
trace(typeof myPrice); //出力 [number]
trace(typeof myColor); //出力 [string]
trace(typeof my_mc); //出力[object]

プログレスバーの設置

2008 年 12 月 5 日 金曜日

swfのサイズが重くなってきた時のため、読込状況に応じたプログレスバーを設置したい。今回は一番シンプルなライン型のプログレスバーに挑戦。

1フレーム目のスクリプト

var BytesInfo:LoaderInfo = root.LoaderInfo;
var loadedContentsPercent:Number = Math.round(Bytesinfo.bytesLoaded/BytesInfo.bytesTotal*100);
percentTextArea.text = loadedContentsPercent + “%”;
progressBar_mc.scaleX = loadedContentsPercent/100;

2フレーム目のスクリプト

if(loadedContentsPercent == 100){
    gotoAndPlay(3);
}else{
    gotoAndPlay(1);
}

(続きを読む…)

減速運動(イーズアウト)の公式

2008 年 12 月 4 日 木曜日

プロパティ +=(ゴール値 – 自分の値)×減速率

例えば座標(10,10)に配置されたmy_mcインスタンスを座標(100,10)へ減速しながら移動させる場合はこうなる。

var nDeceleration:Number = 0.6; //変数nDecelerationに減速率をメモる
var goal_X:Number = 100; //goal_Xにゴール地点のx座標をメモる
my_mc.x = 10; // インスタンスのスタート地点は10です、とメモる

my_mc.x +=(goal_X – my_mc.x)×nDeceleration; //イーズアウトの公式