背負い投げとENTER_FRAME

Icon

なんちゃってWebクリエイターがFlashやらActionScriptやらを淡々と書く。ときとき柔道の話しもする。

3.0練習ではまった、外部にあるMCを動的配置

一ヶ月ずっと、帰宅時間が
終点か朝4時の二択な日々が続いてた。
やっと、仕事が落ち付いてAS3.0の勉強でもしようっと!
簡単な実験をちょっとやってみた。


3.0を仕事で使うには、最低限慣れておくべきもの

==========================================

mcの生成

var インスタン名:MovieClip = new MovieClip();

「createEmptyMovieClip」じゃなくなって
概念が違うからちょっと戸惑った。

==========================================

ライブラリから動的MCを配置

var インスタン名 = new リンケージ名();
addChild(インスタン名);

2.0でいうとアタッチ(attachMovie)ってやつ
最後に「addChild」をやらないと表示しない。なるほど。

==========================================

外部swfの読み込み

var ローダー名:Loader = new Loader();
var URL変数 = new URLRequest(“XXXX.swf”);
ローダー名.load( URL変数 );
addChild(ローダー名);

URLは直接構えなくなってかならず「URLRequest」を経由。
ん、めんどくさい。最後はやっばり「addChild」。

==========================================

親から外部swfのライブラリのMCを動的に配置

親:Main.swf
子:content_1.swf(ライブラリにmc_boxを配置)
親が「content_1.swf」をロード → mc_boxを配置

というふうにやりたかったが、2時間はまった。
mc_boxが見つからない。

いろいろ調べた結果、「ApplicationDomain」を使えば解決できるみたい。
2.0のリンケージでいうものは、
3.0じゃクラスとして書き出されるようになった。
外部swfを読み込んでもクラスは読み込まないのが原因みたい。

var context:LoaderContext = new LoaderContext();
context.applicationDomain = ApplicationDomain.currentDomain;

で親にクラスを読み込む。

ローダー名.load( Myrequest , context );

loadの第二引数に宣言した「context」を渡せば読み込みOK。
配置するときは、動的にクラスを生成することになるから、
クラス名作成 → 代入&new
でやらないとだめ。それがまためんどくさい。

var ContentClass:Class = getDefinitionByName(“mc_box”) as Class;
var Mc_1:MovieClip = new ContentClass() as MovieClip;

サンプルどうぞ

このエントリーをはてなブックマークに追加  

Category: Action Script 3.0

Tagged: ,

2 Responses

  1. Zoearth より:

    すごいね
    わたしいまもAS3勉きゅです
    いしょにがんばろ!

  2. RENOWAN より:

    Zoearthさんありがとうございます。
    がんばりましょう。

Leave a Reply

中の人のプロフィール

柔道歴約20年だが諸理由で未だ初段。162cm、60kgくらいの軽量級。得意は背負い投げと巴投げ。2009年、左ヒザ前十字靭帯損傷。ただ今柔道復帰を企んでいる真っ最中。仕事では最近、ActionScriptを書いたり、WordPressをいじったりの日々が続いてる。@renowanにてつぶやいてる。

アーカイブ

Flicker

This movie requires Flash Player 9.0.0