主にFlashのTIPSを紹介するページです。
カレンダー
カテゴリー
最新記事
最古記事
(03/04)
(03/04)
(03/09)
(03/09)
(03/18)
ブログ内検索
P R
アクセス解析
[1]
[2]
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
ちょっとしたTIPSです。
引数がArray型のファンクションにパラメータを渡すには、
ダミーの配列を作って、それに格納してから引き渡してる方も
多いかと思いますが、以下の方法が楽で見た目にも分かりやすいです。
例)
var foo:Array = new Array();
foo.push("abc");
foo.push("xyz");
hoge(foo);
↓↓↓
hoge(["abc","xyz"]);
後からfooを使うのなら別ですが、
ただパラメータを渡したいだけならこれで十分です。
「こんなの常識だよ!」と思われるかもしれませんが、
意外に盲点かと思われます。
なぜなら、私が上記の書き方をしていたからです(笑)
いや~、全然気づかなかったですよ。間抜けですね。
久しぶりの記事が他愛もない話ですいません……。
引数がArray型のファンクションにパラメータを渡すには、
ダミーの配列を作って、それに格納してから引き渡してる方も
多いかと思いますが、以下の方法が楽で見た目にも分かりやすいです。
例)
var foo:Array = new Array();
foo.push("abc");
foo.push("xyz");
hoge(foo);
↓↓↓
hoge(["abc","xyz"]);
後からfooを使うのなら別ですが、
ただパラメータを渡したいだけならこれで十分です。
「こんなの常識だよ!」と思われるかもしれませんが、
意外に盲点かと思われます。
なぜなら、私が上記の書き方をしていたからです(笑)
いや~、全然気づかなかったですよ。間抜けですね。
久しぶりの記事が他愛もない話ですいません……。
PR
※[AS2.0]の場合は、こちらを参照してください
htmlファイルのembedタグからswfファイルにパラメータを渡すには、
AS2.0同様FlashVarsが使える。ただし、Flash側の処理が異なる。
・<param>タグを1行追加。
・<embed>タグに項目を追加。
[例] 変数名「option」にパラメータを渡す
<param name="FlashVars" value="option=value" />
<embed FlashVars="option=value" ... />
↑ここまでは、AS2.0の時と同じになる。
■Flash側の処理
var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters;
trace( paramObj["option"] );
のように取り出す。
また、AS2.0同様「&」で区切ることで、複数指定することができる。
[例]
<embed FlashVars="option=1&version=2" />
htmlファイルのembedタグからswfファイルにパラメータを渡すには、
AS2.0同様FlashVarsが使える。ただし、Flash側の処理が異なる。
・<param>タグを1行追加。
・<embed>タグに項目を追加。
[例] 変数名「option」にパラメータを渡す
<param name="FlashVars" value="option=value" />
<embed FlashVars="option=value" ... />
↑ここまでは、AS2.0の時と同じになる。
■Flash側の処理
var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters;
trace( paramObj["option"] );
のように取り出す。
また、AS2.0同様「&」で区切ることで、複数指定することができる。
[例]
<embed FlashVars="option=1&version=2" />
※[AS3.0]の場合は、こちらを参照してください
htmlファイルのembedタグからswfファイルにパラメータを渡すには、FlashVarsを使う。
・<param>タグを1行追加。
・<embed>タグに項目を追加。
[例] 変数名「option」にパラメータを渡す
<param name="FlashVars" value="option=value" />
<embed FlashVars="option=value" ... />
■Flash側の処理
trace( _root.option );
のように取り出す。
また、「&」で区切ることで、複数指定することができる。
[例]
<embed FlashVars="option=1&version=2" />
htmlファイルのembedタグからswfファイルにパラメータを渡すには、FlashVarsを使う。
・<param>タグを1行追加。
・<embed>タグに項目を追加。
[例] 変数名「option」にパラメータを渡す
<param name="FlashVars" value="option=value" />
<embed FlashVars="option=value" ... />
■Flash側の処理
trace( _root.option );
のように取り出す。
また、「&」で区切ることで、複数指定することができる。
[例]
<embed FlashVars="option=1&version=2" />
通常「addEventListener」を使うときは
addEventListener(イベントタイプ, 関数名);
と記述し、イベントが発生したら「関数名」で指定した関数が呼び出される。
そして処理が終わったら「removeEventListener」で削除する。
removeEventListener(イベントタイプ, 関数名);
これが基本パターンだが「関数名」の箇所に直接処理を書いてしまうこともできる。
↓こんな感じ
addEventListener(イベントタイプ, function(e:Event):void{ trace("hoge"); });
しかしこうすると、この関数は名前を持たないので「removeEventListener」する時に困ってしまう。
これを解決するには「arguments.callee」を使う。
↓こんな感じ
removeEventListener(イベントタイプ, arguments.callee);
※「arguments.callee」のヘルプを見ると「現在実行中の関数への参照です」と記述されている
[プログラム例]:traceを10回実行して、終了する
public function Main()
{
var cnt:int = 0;
addEventListener(Event.ENTER_FRAME,
function(e:Event):void
{
trace("count:"+cnt);
cnt++;
if(cnt==10)
{
removeEventListener(Event.ENTER_FRAME, arguments.callee);
}
}
);
}
本当はちゃんと関数を作った方がいいんだろうけど「フラグをセットするだけ」とか、単純な使い方ならプログラムがスッキリする気がしないでもない。。。
でも、あまり使わないかな?
addEventListener(イベントタイプ, 関数名);
と記述し、イベントが発生したら「関数名」で指定した関数が呼び出される。
そして処理が終わったら「removeEventListener」で削除する。
removeEventListener(イベントタイプ, 関数名);
これが基本パターンだが「関数名」の箇所に直接処理を書いてしまうこともできる。
↓こんな感じ
addEventListener(イベントタイプ, function(e:Event):void{ trace("hoge"); });
しかしこうすると、この関数は名前を持たないので「removeEventListener」する時に困ってしまう。
これを解決するには「arguments.callee」を使う。
↓こんな感じ
removeEventListener(イベントタイプ, arguments.callee);
※「arguments.callee」のヘルプを見ると「現在実行中の関数への参照です」と記述されている
[プログラム例]:traceを10回実行して、終了する
public function Main()
{
var cnt:int = 0;
addEventListener(Event.ENTER_FRAME,
function(e:Event):void
{
trace("count:"+cnt);
cnt++;
if(cnt==10)
{
removeEventListener(Event.ENTER_FRAME, arguments.callee);
}
}
);
}
本当はちゃんと関数を作った方がいいんだろうけど「フラグをセットするだけ」とか、単純な使い方ならプログラムがスッキリする気がしないでもない。。。
でも、あまり使わないかな?
親クラス内で外部クラスをaddChildした後でなければ、外部クラス内でstageを参照することはできない。
↓で、自分自身がaddChildされたことを検知できる。
public class Test extends Sprite
{
public function Test()
{
trace(stage); // null と表示される
addEventListener(Event.ADDED_TO_STAGE, onAdded); // class TestがaddChildされたらonAddedへ
}
private function onAdded(e:Event)
{
// この段階でstageが使用可能になる
trace(stage); // [object Stage] と表示される
}
}
↓で、自分自身がaddChildされたことを検知できる。
public class Test extends Sprite
{
public function Test()
{
trace(stage); // null と表示される
addEventListener(Event.ADDED_TO_STAGE, onAdded); // class TestがaddChildされたらonAddedへ
}
private function onAdded(e:Event)
{
// この段階でstageが使用可能になる
trace(stage); // [object Stage] と表示される
}
}
次のページ
>>