0

親としてSpriteクラスを持つシンボルに対してFlashProfessionalIDEでリンケージを与えることが可能であることがわかりました。以前は、唯一のオプションはMovieClipであると確信していました。

質問は:

実行時にアニメーションを再生するためにこれらのシンボルを作成するにはどうすればよいですか?IDEのステージに配置すると、親のタイムラインを延長し、ループまたはPlay Firstプロパティを使用して、スプライト内のアニメーションを制御できます。しかし、実行時にそのSprite派生クラスをインスタンス化した場合、それをアニメーション化するのが難しいとは思いません:( play()がなく、そのタイムラインを親のタイムラインにリンクする方法がわかりません。助けてください。

更新:おそらく、ShapeクラスとSpriteクラスの違いを誤解しています。だから私はShapeまたはSpriteインスタンスを必要としています:)

4

2 に答える 2

2

IDE に、ムービークリップである bear_animation と呼ばれるリンク付きのシンボルがあるとします。

次に、次のようなコードでそのインスタンスを作成できます。

// create an instance of your bear_animation symbol in library
var bearAnimation:MovieClip = new bear_animation;

次に、それをステージに追加して、次のように再生できます。

addChild(bearAnimation);
bearAnimation.gotoAndPlay(1);

また、スプライトとは何かについて混乱していると思います。スプライトは静的なグラフィック イメージであり、タイムラインがないため、アニメーション化されません。したがって、アニメーションを再生するオプションはありません。

ムービークリップにはタイムラインがあるため、再生できるフレームのコレクションを持つことができます。したがって、次のように使用します。

yourMovieClip.gotoAndPlay(<frame_number_to_start_on>);

そのコード行は、指定したフレームから始まる yourMovieClip のアニメーションを再生します。

スプライトをアニメーション化することはできないため、この質問の最初の前提と 2 番目の部分を組み合わせると、元に戻すことができます。アニメーション化する場合は、MovieClip が必要です。私の提案は、アニメーション付きのシンボルがある場合は、IDE でそれをムービークリップに変更する必要があるということです。

于 2012-12-18T00:04:35.817 に答える
1

他の人が述べたように、Sprite オブジェクトにはタイムライン/フレームがありません。Sprite クラス API リファレンスから:

Sprite オブジェクトはムービー クリップに似ていますが、タイムラインがありません。スプライトは、タイムラインを必要としないオブジェクトに適した基本クラスです。たとえば、Sprite は、通常はタイムラインを使用しないユーザー インターフェイス (UI) コンポーネントの論理基本クラスになります。

このクラスには、フレームを再生するメソッドや、フレームを参照するメソッドはありません。フレームまたはタイムラインが必要な場合は、ムービークリップを使用します。

ムービークリップ API リファレンスから:

Sprite オブジェクトとは異なり、MovieClip オブジェクトにはタイムラインがあります。

スプライトには、基本的に 1 つのフレームしかありません。スプライト内のオブジェクトをアニメーション化するには、コードでアニメーション化する必要があります。実際に試したことはありませんが、ムービークリップ (フレーム付き) をスプライトにキャストすると、最初のフレームで動かなくなると思います。

于 2012-12-18T11:44:26.987 に答える