0

この新しいゲームでうまくいかない場合は、何百もの異なるムービークリップを手動で作成する必要があるため、しばらくの間、これについて疑問に思っていました. だから、ここに私が知りたいことがあります:

たとえば、「アイス クリーム」に関するゲームを開発していたとします。顧客のためにさまざまなスクープを作成する必要があります。アイス クリーム コーンを取得するには、コーンをクリックし、生成されたアイス クリーム コーンをドラッグします。どうすればいいですか?私が通常行うことは、100 個のアイス クリーム コーンを作成し、それらをすべて非表示にし、クリックすると最初の 1 つが表示され、もう一度クリックすると、最初の 1 つが表示され、2 つ目が表示されるかどうかを確認するということです。私は明らかにそれらがより簡単な方法であることを知っています..しかし、それが何であるかはわかりません。

ムービー クリップの複製について聞いたことがありますが、AS3 で削除されたことをどこかで読みました。

4

2 に答える 2

0

ムービークリップ タイプは、ムービークリップの青写真のようなものです。必要な数のムービークリップを作成できます。たとえば、ムービークリップ タイプの cat は、Simba という名前のインスタンスを持つことができます。そう:

var Simba:Cat = new Cat();

フラッシュでは、actionscript への適切なエクスポート オプションを選択するだけで、タイプをエクスポートできます。

于 2013-07-12T16:23:08.270 に答える
0

それは可能であり、実際には非常に簡単です。

1) オブジェクトをクリックして、クラス名を取得します。

2) そのクラスの新しいインスタンスを作成し、それを表示リストに入れます。

MouseEvent.MOUSE_UP3)イベントを検出するまで、すべてのフレームでその新しいインスタンスをマウス座標に移動します。

プロジェクトに合わせてコードを微調整する必要がありますが、これがその方法です。私はそれをテストしていませんが、動作するはずです。

import flash.utils.getDefinitionByName;
import flash.utils.getQualifiedClassName;

var duplicate;
var className;

original.addEventListener(MouseEvent.MOUSE_DOWN,duplicateMe);

public function duplicateMe(event):void {
    className:Class = Class(getDefinitionByName(getQualifiedClassName(event.target)));
    duplicate = new className;
    addChild(duplicate);
    duplicate.addEventListener(MouseEvent.MOUSE_UP,endDrag);
    duplicate.addEventListener(MouseEvent.ENTER_FRAME,update);
}       


public function update(event):void {
    event.target.x = mouseX;
    event.target.y = mouseY;
}

public function endDrag(event):void {
    event.target.removeEventListener(MouseEvent.ENTER_FRAME,update);                    
}
于 2013-07-12T16:19:26.160 に答える