Di kelas ActionScript3 saya, bisakah saya memiliki properti dengan pengambil dan penyetel?

Di kelas ActionScript3 saya, bisakah saya memiliki properti dengan pengambil dan penyetel?


person Pavel Chuchuva    schedule 29.09.2008    source sumber
comment
Apa maksudmu? Anda dapat memiliki kelas yang memiliki properti dengan getter dan setter.   -  person Max Stewart    schedule 30.09.2008
comment
Ya, itulah yang saya butuhkan. Maaf karena tidak jelas.   -  person Pavel Chuchuva    schedule 30.09.2008


Jawaban (3)


Oke, Anda cukup menggunakan sintaks pengambil/penyetel dasar untuk properti apa pun di kelas AS3 Anda. Misalnya

package {

    public class PropEG {

        private var _prop:String;

        public function get prop():String {
            return _prop;
        }

        public function set prop(value:String):void {
            _prop = value;
        }
    }
}
person Max Stewart    schedule 29.09.2008

Ya, Anda dapat membuat fungsi pengambil dan penyetel di dalam kelas AS3.

Contoh:


private var _foo:String = "";

public function get foo():String{
    return _foo;
}

public function set foo(value:String):void {
    _foo= value;
}

informasi lebih lanjut tentang pengambil dan penyetel dapat ditemukan di sini

person JustLogic    schedule 29.09.2008

Pengambil adalah fungsi dengan nilai kembalian bergantung pada apa yang kita kembalikan. Penyetel selalu memiliki satu parameter, karena kita memberikan nilai baru pada variabel melalui parameter tersebut.

Pertama-tama kita membuat sebuah instance dari kelas yang berisi pengambil dan penyetel, dalam kasus kita ini adalah "a". Kemudian kita memanggil setter, jika kita ingin mengubah variabel dan menggunakan sintaks titik kita memanggil fungsi setter dan dengan operator = kita mengisi parameternya. Untuk mengambil nilai suatu variabel, kita menggunakan pengambil dengan cara yang sama seperti yang ditunjukkan pada contoh (a.myVar). Berbeda dengan pemanggilan fungsi biasa, kami menghilangkan tanda kurung. Jangan lupa untuk menambahkan tipe pengembalian, jika tidak maka akan terjadi kesalahan.

kemasan {

import flash.display.Sprite;
import flash.text.TextField;

public class App extends Sprite 
{
       private var tsecField:TextField;
       private var tField:TextField;

       public function App() 
       {
               myTest();
       }

       private function myTest():void 
       {
               var a:Testvar = new Testvar();

               tField = new TextField();
               tField.autoSize = "left";
               tField.background = true;
               tField.border = true;
               a.mynewVar = "This is the new var.";
               tField.text = "Test is: "+a.myVar;
               addChild(tField);
       }
}

}

impor flash.display.Sprite;

impor flash.text.TextField;

kelas Testvar memperluas Sprite { public var test:String;

public function Testvar() 
{
}
public function set mynewVar(newTest:String):void 
{
       test = newTest;
}
public function get myVar():String 
{
       return test;
}

}

person Swati Singh    schedule 02.07.2011