No.1ベストアンサー
- 回答日時:
配置する10個のMC(ムービークリップ)は
例えば違う絵柄や違うアニメーションが入っているような別物であるものとします。
つまり10個のMCはシンボルとしても別物であるとします。
(各MCの "基準点" の位置はご自身でしっかり把握しておいてください。)
MCを用意した後のさらに下準備として
作成した10個のMCシンボルに別々のクラス名を付けます。
クラス名を付けることや
その先のことも含めて次のページのようなことをして行きます。
「[AS3] クラスを文字列で参照したい」
http://f-site.org/articles/2008/01/17051234.html
上記ページではMCシンボルに「Pen」というクラス名を付けていますが
ここでは「MC0」「MC1」「MC2」…「MC9」という
10個のクラス名を付けるとしておきます【添付図↓】。
そしてフレームに次のようなスクリプトを書きます。
---------------------------
//「MC0」を配置するx座標を設定
var start_x:Number = 80;
//「MC0」を配置するy座標を設定
var start_y:Number = 40;
//ランダム配置するMCの個数を設定
var haiti_n:int = 8;
//横に並べる個数を設定
var yoko_n:int = 4;
//MCを配置する横間隔を設定
var kankaku_x:Number = 100;
//MCを配置する縦間隔を設定
var kankaku_y:Number = 60;
//クラス名を入れる配列
var name_arr:Array = new Array();
//「MC0」~「MC9」を配列の要素に代入
for (var i:int = 0; i<=9; i++) {
name_arr[i] = "MC" + i;
}
for (i = 0; i<haiti_n; i++) {
//配列の要素分の乱数を取得
var rand_n:int = Math.floor(Math.random() * name_arr.length);
//その要素を抜きとり取得
var name_str:String = name_arr.splice(rand_n,1);
//文字列のクラス化
var myClass:Class = Class(getDefinitionByName(name_str));
//そのクラスを呼び出して配置
this["mc" + i] = new myClass();
this["mc" + i].x = i % yoko_n * kankaku_x + start_x;
this["mc" + i].y = Math.floor(i / yoko_n) * kankaku_y + start_y;
addChild(this["mc" + i]);
}
//(※後の使用方法例)
this.mc2.rotation = 30;
---------------------------
これでパブリッシュします。
上のスクリプトでは
このMCの重複出没を防ぐために
Arrayクラスの splice() メソッドを使っています。
このメソッドを使わずに
配列の中身をあらかじめランダムシャッフルしておいた上で
要素0から順に8つの要素を取り出しても良いと思います。
※人間的にはこちらの方が難しいですが
PC的には多分こちらの方が処理が速いと思います。
「配列を偏りなくランダムに並替える」
http://fumiononaka.com/TechNotes/Flash/FN0212003 …
それと「%」は剰余演算子です。
その他
Google検索「配列アクセス演算子」
http://www.google.co.jp/search?q=%94z%97%F1%83A% …
この回答へのお礼
お礼日時:2011/02/09 21:16
できました!(T.Tぶわっ
ちょうどfor文とか配列とか覚え始めたころなので不安でしたが
説明がとても解りやすくて助かりました!ありがとうございます
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBAでユークリッド距離を用いて1番近い物を表示 表 裏 縦 横 高さ 縦 横 高さ 名前 1 45 9 2022/10/23 16:52
- その他(IT・Webサービス) googleカレンダーについて質問です スマホ版を使っています 週表示で使用してますが 1、デフォル 1 2023/02/26 20:35
- WordPress(ワードプレス) ワードプレスで、左寄せ画像と文字を横並びにせず、画像の下に文字を表示される方法を教えてください 1 2022/04/24 11:06
- その他(ブラウザ) webサイトに表示する画像の向きを変える(左右に回す)方法 3 2023/01/20 08:28
- Word(ワード) Word2013 縦書き上下二段の表、改行を続けると次ページに情報が表示されるようにしたい 3 2022/06/16 09:24
- その他(動画サービス) VLCメディアプレーヤーについて 1 2022/11/29 14:19
- 画像編集・動画編集・音楽編集 premier elements 2020でのガベージマットについて 1 2023/04/02 09:59
- Excel(エクセル) エクセルで対象日に該当するデータがある場合に別表へ全対象者を表示させたい。 3 2023/07/12 09:48
- Word(ワード) word縦書き文書の分数が縦にならない 2 2023/01/07 13:27
- その他(Microsoft Office) outlookのツールバーが縦になってしまいました。。。直す方法はないでしょうか 2 2023/01/16 09:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スマホでサイトの画像を長押し→...
-
arduino プログラムについて
-
uwscでExcelに自動記入
-
Giam
-
laptop go2からの買い替え、lap...
-
私のコンピューター上のファイ...
-
Flashコンテンツを使ったWebサイト
-
Flashをブロックしないで
-
Adobe Flash Player
-
Windows10重い
-
パソコンのリカバリーについて
-
ロック画面に天気を表示したい
-
Adobe(マクロメディア)のFLAS...
-
adobe flash playerは無料です...
-
自分でチラシを作りたいです!...
-
ヘッダーデザインをするさい形...
-
FLASH MX で作成した、flashやA...
-
この曲のタイトルを教えてください
-
Flash MXで作成したフラッシュ...
-
キャラクター設定について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NET の配列の要素数
-
変な質問ですみません、n番目の...
-
配列の要素番号を取得するには?
-
VBでボタンを押すと画像をラン...
-
Vba 配列の中の特定文字列の位...
-
DataGridでCTRLキーを押さずに...
-
IDの自動採番について
-
複数の変数宣言を、for文で一気...
-
VB6 複数行のテキストをリスト...
-
重複しない乱数の生成
-
重複しない乱数整数を発生させる。
-
C言語のsizeof(サイズオブ)演算...
-
入れ替える処理
-
絵を描き、その都度のxy座標を...
-
正規表現でタグの中身を抜き取...
-
2次元配列 ソート
-
Action Script 2.0 配列の比較
-
画像をランダムに表示するには
-
ランダムに数字を並び変える方法は
-
景品パネルの作り方
おすすめ情報