1

私はクラスがどのように機能するかを学んでいます、それはかなり複雑です。正しいオブジェクト作成の例が必要です。ライブラリにMovieClipブループリントがあるとしましょう。これは、プロパティを変更するためのコード内のオブジェクトとしてさらに使用できる名前を持つ多くのインスタンスを作成するための例として使用できます。だから私は青写真「AppleBP」を持っているふりをします。私はそれをAppleクラスとして設定しました(Apple.as?というファイルを作成すると仮定します)。画面上のランダムな場所に表示されるインスタンスApple01を(たとえばボタンを押すことによって)作成するコードが必要です(他の場所とは異なることを知るために、位置をランダム化する方法を知っています)。次に、Apple02、Apple03、Apple04、Apple05を作成します。名前を「Apple」+Nに設定するのが難しい場合は、

だから今のところ私は試しました

var Apple01:Apple = new Apple();
Apple01.visible = true; //just in case I can't see it
Apple01.x = 100;
Apple01.y = 100;
TextField01.text = "blahblah"; //to see if code actually works

Appleは表示されませんが、テキストは表示されます。では、MovieClipブループリントである新しいクラスを作成するだけでは不十分な場合、何が欠けているのでしょうか。また、新しいインスタンスごとに新しい名前を選択して、純粋な名前ではなく変数Stringを使用するにはどうすればよいですか?(名前をその順序に基づいてテキスト+数字に変更できるようにするため)

追加:

package  {
import flash.display.Scene;
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.events.KeyboardEvent;
import flash.events.Event;
import flash.events.*;
import flash.display.*;

public class MyFirstClass extends MovieClip{ 

        //var N:int;
        var n:int;
        var existingApples:int = 0;
        var apples:Array = new Array();     

    public function MyFirstClass():void{
        MakeNewApple();
        MakeNewApple();
        MakeNewApple();
        MakeNewApple();
        MakeNewApple();

        //apple4.x = 5;
        //apple4.y = 5;

        var draggableApple:Apple = apples[0] ;
        draggableApple.addEventListener(MouseEvent.MOUSE_DOWN, draggableApple.onMouseDown) ;
        draggableApple.addEventListener(MouseEvent.MOUSE_UP, draggableApple.onMouseUp) ;
        info01.text = "Did it";
    }
    public function MakeNewApple():void{
        if(existingApples < 5){
        n = existingApples;
        var apple:Apple = new Apple();
        stage.addChild(apple);
        apple.x = (Math.random()*600+100);
        apple.y = (Math.random()*400+100);
        apple.name = "apple" + n;

        apples.push(apple.name);
        existingApples++;
        trace(existingApples);
        trace(apples);
        }
    }
}
}

Apple.as:

package  {
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.KeyboardEvent;
import flash.events.*;
import flash.display.*;

public class Apple extends MovieClip{

    public function Apple() {

    }

    public function onMouseDown(e:MouseEvent):void{
        this.startDrag();
    }
    public function onMouseUp(e:MouseEvent):void{
        this.stopDrag();

    }
}
}
4

1 に答える 1

1

コメント付きの例を次に示します。

package 
{
    import flash.display.Scene;
    import flash.display.Sprite;
    import flash.events.MouseEvent;

    public class Main extends Sprite 
    {

        public function Main():void {   

            var apples:Array = new Array() ; // Declare and array
            for (var i:int = 0 ; i < 10 ; i++) { //Let's make 10 apples
                var apple:Apple = new Apple() ; //Create an apple
                apple.x = Math.ceil(Math.random() * stage.stageWidth)  ; //Assign random x
                apple.y = Math.ceil(Math.random() * stage.stageHeight) ; //Assign random y
                stage.addChild(apple) ; //Add it to stage, so we can see them
                apples.push(apple) ; //Push into array
            }
            //EDITED
            var draggableApple:Apple = apples[0] ;
            draggableApple.addEventListener(MouseEvent.MOUSE_DOWN, draggableApple.onMouseDown) ;
            draggableApple.addEventListener(MouseEvent.MOUSE_UP, draggableApple.onMouseUp) ;

        }

    }

}

そしてApple.as

package {
    import flash.display.MovieClip;
    import flash.events.Event;
    import flash.events.MouseEvent;

public class Apple extends MovieClip {

    public function Apple() {
        this.graphics.lineStyle(2) ;
        this.graphics.beginFill(0x00FF40) ;
        this.graphics.drawCircle(0, 0, 20) ;
        this.graphics.endFill() ;

        //addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown) ;
        //addEventListener(MouseEvent.MOUSE_UP, onMouseUp) ;
    }

    public function onMouseDown(event:MouseEvent):void {
        this.startDrag() ;
    }

    public function onMouseUp(event:MouseEvent):void {
        this.stopDrag() ;
    }
}
}
  • また、すべての変数の名前は小文字で始める必要があります。myVariable
  • クラスの名前はCamelCaseClassを実装する必要があります
  • 定数の名前には、大きな文字とアンダースコアのみが含まれます。MY_CONSTANT
于 2013-02-17T14:29:08.347 に答える