D0803242 外部からでなくattachMovieでムービークリップを読み込むにはどうしたら?
Name ゆう
Date 2008年03月24日 (月) 16時21分
Message 皆さんこんにちは

JpgとSwfを読み込ませランダム表示させたい」の書き込みで
TOYAMAさんの作品で
外部読み込みではなく
ライブラリからattachMovieでムービークリップを読み込むにはどうしたらよいでしょうか?
リンケージ名がth0,th1,th2,th3な感じで

ちょっと応用した感じでできますでしょうか?

お助けお願いします。
Response 01
2008年03月24日 (月) 21時02分> TOYAMA 
1フレーム(1フレームのみ)に下記のアクションを書けばよいでしょう。
しかし、「th0」、「th1」、「th2」、「th3」、「th4」、「th4」、「th5」はライブラのムービークリップ名の書き出し名です。

var myclip:String = "th0,th1,th2,th3,th4,th5";//文字列を作成
var clipArray:Array = new Array();//配列を作成
var m:Number;
var n:Number;
this.createEmptyMovieClip("mymc", 1);//空ムービークリップ作成
clipArray = myclip.split(",");//配列の設定
function displayClip() {//ムービークリップのアタッチ関数
removeMovieClip(mymc["my_mc"]);//ムービークリップの削除
m = clipArray.length;//配列の長さの取得
if (m>0) {//配列の要素があるときの処理
n = Math.floor(Math.random()*m);//配列のからランダムに要素を抜き出す
mymc.attachMovie(clipArray[n], "my_mc", mymc.getNextHighestDepth());//アタッチを行う
clipArray.splice(n, 1);//アタッチした要素を削除
} else {//配列の要素がなくなったときの処理
clipArray = myclip.split(",");//配列の再設定
m = clipArray.length;//配列の要素数を取得
n = Math.floor(Math.random()*m);//ランダムに数を決定
mymc.attachMovie(clipArray[n], "my_mc", mymc.getNextHighestDepth())//アッタチする
clipArray.splice(n, 1);//アッタチした要素を削除
}
}
displayClip();//アタッチ関数呼び出し
setInterval(displayClip, 2000);//アタッチ関数を2秒ごとに呼び出し
http://www.geocities.jp/jin_toyama/index.html
Response 02
2008年03月25日 (火) 15時42分> TOYAMA 
配列は何回も繰り返して再設定、消滅を繰り返す訳ですが、配列の変わり目で同じ要素が稀に続くことがあります。これを避けるには若干の修正をすればよいでしょう。
oldname、newname、と同じ要素が続いた場合の処理をするfunction selectclip()関数を追加します。

var myclip:String = "th0,th1,th2,th3,th4,th5";
//文字列を作成
var clipArray:Array = new Array();
//配列を作成
var m:Number;
var n:Number;
var s:Number;
var newname:String;
var oldname:String;
this.createEmptyMovieClip("mymc", 1);
//空ムービークリップ作成
clipArray = myclip.split(",");
//配列の設定
function displayClip() {
//ムービークリップのアタッチ関数
removeMovieClip(mymc["my_mc"]);
//ムービークリップの削除
m = clipArray.length;
//配列の長さの取得
if (m>0) {
//配列の要素があるときの処理
n = Math.floor(Math.random()*m);
//配列のからランダムに要素を抜き出す
s = mymc.getNextHighestDepth();
mymc.attachMovie(clipArray[n], "my_mc", s);
//アタッチを行う
if (m == 1) {
oldname = clipArray[n];
}
clipArray.splice(n, 1);
//アタッチした要素を削除
} else {
//配列の要素がなくなったときの処理
clipArray = myclip.split(",");
//配列の再設定
m = clipArray.length;
//配列の要素数を取得
n = Math.floor(Math.random()*m);
//ランダムに数を決定
newname = clipArray[n];
if (oldname == newname) {
selectclip();
} else {
s = mymc.getNextHighestDepth();
mymc.attachMovie(clipArray[n], "my_mc", s);
//アッタチする
clipArray.splice(n, 1);
//アッタチした要素を削除
}
}
}
function selectclip() {
m = clipArray.length;
while (oldname == newname) {
//配列の要素数を取得
n = Math.floor(Math.random()*m);
newname = clipArray[n];
}
s = mymc.getNextHighestDepth();
mymc.attachMovie(clipArray[n], "my_mc", s);
clipArray.splice(n, 1);
}
displayClip();
//アタッチ関数呼び出し
setInterval(displayClip, 2000);
//アタッチ関数を2秒ごとに呼び出し
http://www.geocities.jp/jin_toyama/index.html
Response 03
2008年03月26日 (水) 12時07分> ゆう 
TOYAMAさん
はじめまして。
ご返信ありがとございました。

本当にたすかりました。
よくscriptを見て勉強します。

私はパソコンを触り始めて今年で二年目です。
htmlのコーディングから始め
個人のホームページぐらいは作れるようになりました。
しかしflashをやり始め苦戦の嵐です。
まず、数学と言うより算数の低学年レベルしかわからず
今は勉強しとけばよかったと悔やみます。
いまさら勉強しても遅いなど言われますが
独学を支援くださる皆様には感謝です。

今は1フレームにすべてのscriptを書くというのが私の課題です。

このページの先頭へ