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. |
|
|
|
|
|
|
|
|
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 ); |
|
|
|
|
|
avMovieClip._x = myLocalPos.x; |
avMovieClip._y = myLocalPos.y; |
|
|
|