2012-03-27 13 views
1

基本的に私は揺れる芝生効果を作り出しています。このエラーが出てきます。私はフラッシュファイルに埋め込みしようとしています。

シーン1、レイヤー 'アクション'、フレーム1、ライン19 1180:おそらく定義されていないメソッドduplicateMovieClipを呼び出します。

シーン1-アクションフレーム1:

import flash.display.MovieClip; 

function duplicate(name:MovieClip, amount:Number):void 
{ 
    for(var i = 1; i<= amount; i++) 
    { 
     duplicateMovieClip(name, name+"_"+i, i); 
    } 


} 
duplicate(grass_mc, 50); 

草アクションフレーム1つの

onClipEvent(load) 
{ 
    this.height= random(70)+5 
    this.width = random(15)+5 
    this._x = random(Stage.width); 
    this.gotoAndPlay(random(20)); 

} 
+0

使用しているアクションスクリプトのバージョンは何ですか? – Steve

答えて

0

duplicateMovieClip方法がActionScript2からであり、それは今

することができますActionScriptの3以内に廃止されましたもはやムービークリップを '複製'することはできませんが、同じ結果を達成するにはいくつかの方法があります。オブジェクトの複数のインスタンスを作成する新しいクラスを作成することに自信がない場合は、this linkを参照して、プロセスの説明に役立ててください。

+0

新しいメソッドの例がありますか?申し訳ありませんが、私は現時点ではかなり失われています! –

+0

提供されたリンクには良いコードサンプルが含まれていますが、特定の時点で失われていますか? – Steve

1

したがって、基本的に、as2のas2のgood ol 'duplicateMovieClipメソッドが必要です。そこ同様の結果を達成するために、いくつかの方法がありますが、すべての最初は、私はあなたがたとえばthis one from kirupaため、クラスオブジェクトとActionScript3のための一般的なOOPにいくつかのチュートリアルを読むことをお勧めするつもりです。

あなたがトリックを行うためにできるよりも多くなければならないことを読みますが、ここではとにかくウォークスルーになると、物事をシンプルに保つためにしよう:

ゴーあなた図書館に、あなたの芝生の上で右クリックしシンボルを選択し、プロパティを選択し、Export for ActionScriptExport in frame 1をチェックします。 クラス名としてGrassを書く、それがあるとして(それはflash.display.MovieClipとを言うだろう基本クラスを残す。あなたは今のクラスが見つからなかったことを言ってプロンプトを得るだろう、それはOKですこれを行うと、var my_mc:MovieClip = new Grass();のグラスオブジェクトが作成され、addChildというステージ(または既にステージにあるムービークリップ)に作成されるたびに、元のグラスムービークリップの「コピー」が作成されます。

たとえば、このコードでは、グラスムービークリップのインスタンスを50個作成します。

import flash.display.MovieClip; 

createGrass(50); 

function createGrass(amount:uint):void 
{ 
    var grass_mc:MovieClip; 
    for(var i:uint = 1; i<= amount; i++) 
    { 
     grass_mc = new Grass(); 
     grass_mc.name = "grass_mc"+i; 

     initGrass(grass_mc); 
     addChildAt(grass_mc,i); 
    } 

} 

//grass-Action Frames 1 
function initGrass(mc:MovieClip):void 
{ 
    mc.height= Math.random()*70+5; 
    mc.width = Math.random()*15+5; 
    mc.x = Math.random()*stage.width; 
    mc.gotoAndPlay(Math.ceil(Math.random()*20)); 

} 

また、と表示されたコードgrass-Action Frames 1はすべてas2です。私はas3に変換し、タイムライン上で関数としてタイムライン上に書き込んでいますので、あなたの芝生の中からそれを削除する必要がありますビデオクリップ。

希望すると便利です。

関連する問題