0

オブジェクトをクラスに渡し、オブジェクトにいくつかの変更を加えていますが、実際のオブジェクトは同じままです。

例えば:

public class Xclass
{
   public var counter:int=1;
}

private function mymethod(x:Xclass):void
{
   x.counter = 10;
}

このメソッドから出た後も、カウンターの値は 10 ではなく 1 のままです。

私のコードに問題はありますか?または、参照によってオブジェクトを渡す他の方法はありますか。

4

1 に答える 1

0

AS3 では問題なく動作します。以下のコードを見てください。

メインクラス:

package
{
    import flash.display.Sprite;

    public class TesteCake extends Sprite
    {
        public function TesteCake()
        {
            var xclass:XClass = new XClass();
            trace(xclass.getCounter());


            changeCounterXClass(xclass);
            trace(xclass.getCounter());
        }

        private function changeCounterXClass(xclass:XClass):void{
            xclass.setCounter(10);
        }
    }

}

XClass.as です (このクラスは別の .as ファイルにあります)

package
    {
        public final class XClass
        {
            private var counter:int = 1;


            public function setCounter(value:int):void{
                counter = value;
            }


            public function getCounter():int{
                return counter;
            }
        }
    }

これがお役に立てば幸いです。

于 2013-04-24T13:21:01.600 に答える