AS2.0で、特定のムービークリップをステージ基準にセンタリングする方法を記載します。
センタリングしたいMCがネスト(入れ子)していても問題なくセンタリングできます。


座標空間について

 FLASHの座標空間については以下がかなり参考になりました。(無断リンクごめんなさい)
 http://homepage3.nifty.com/ginga-b/MX/coordinatespace.html

 

中央寄せのサンプルコード

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
‌ 
    //  ここで、avMovieClipはセンタリングしたいムービークリップを示す
‌ 
‌ 
    // =========================================
    //  変換前のムービークリップの座標をテスト出力
    // =========================================
    trace("MCのデフォルトローカル座標 ==> x:" + avMovieClip._x+ "  y:" + avMovieClip._y
                     + "  width:" + avMovieClip._width + "  height:" + avMovieClip._height );
    trace("ステージの大きさと座標 ==> width:" + Stage.width + "  height:" + Stage.height );
‌ 
‌ 
    // =========================================
    //  グローバル座標空間でのムービークリップの中央座標を計算
    // =========================================
    var myGlobalCenter  : Object    = { x:(Stage.width / 2)-(avMovieClip._width / 2),
                                        y:(Stage.height / 2 )-(avMovieClip._height / 2) };
    trace("MCのグローバルセンター座標 ==> x:" + myGlobalCenter.x+ "  y:" + myGlobalCenter.y 
                + "  width:" + avMovieClip._width + "  height:" + avMovieClip._height );
‌ 
‌ 
    // =========================================
    //  グローバルな中央座標をローカルな中央座標に変換
    // =========================================
    var myLocalPos      : Object    = myGlobalCenter;
    avMovieClip.globalToLocal( myLocalPos );
    trace("MCのローカルセンター座標 ==> x:" + myLocalPos.x+ "  y:" + myLocalPos.y );
‌ 
‌ 
    // =========================================
    //  計算した座標をMCに設定
    // =========================================
    avMovieClip._x  = myLocalPos.x;
    avMovieClip._y  = myLocalPos.y;
‌ 
‌ 
このコードは CodePublisher で生成しています

コメント

  • コメントはまだありません。

コメントを投稿する

コメントを投稿する場合は以下に注意してください。

・記事に関係する内容であること
・特別な理由がない限り「全体公開」であること

これさえ守っていただければどんな内容でも投稿可能です。
皆様の質問やコメントは他の方の問題解決に繋がりますのでご協力ください。

コメント投稿フォーム
名前
メール
URL
コメント
閲覧制限

コメントを投稿するには、以下の問題に答えてください。
問題:「LEDの和名を漢字二文字+カタカナ五文字で入力してください」