Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 实例化类时无法访问私有setter(ActionScript 3)_Actionscript 3_Apache Flex_Flash Builder - Fatal编程技术网

Actionscript 3 实例化类时无法访问私有setter(ActionScript 3)

Actionscript 3 实例化类时无法访问私有setter(ActionScript 3),actionscript-3,apache-flex,flash-builder,Actionscript 3,Apache Flex,Flash Builder,我用一个私有setter和一个公共getter创建了一个测试类。最初的setter设置了更多的值,但为了简单起见,我最小化了代码 package Lib { public class Test { private var _data:String; private var _isLoggedIn:Boolean; // isLoggedIn getter and setter public function get

我用一个私有setter和一个公共getter创建了一个测试类。最初的setter设置了更多的值,但为了简单起见,我最小化了代码

package Lib
{
    public class Test
    {
        private var _data:String;
        private var _isLoggedIn:Boolean;

        // isLoggedIn getter and setter
        public function get isLoggedIn():Boolean
        {
            return (_isLoggedIn == true && _data != null);
        }
        private function set isLoggedIn(value:Boolean):void
        {
            _isLoggedIn = value;
        }
        private function isLoggedInSet(value:Boolean):void
        {
            _isLoggedIn = value;
        }

        // constructor
        public function Test()
        {
            isLoggedIn = false;
            isLoggedInSet (false);
        }
    }
}
请注意,它编译得很好,我假设它可以按预期工作。但是,一旦我尝试在我的主mxml中使用它:

import Lib.Test;
protected function fubar():void
{
    var test:Test = new Test(); 
}
我在Test.as(原文如此!)中发现了这个错误:

注意
isLoggedInSet(false)工作正常。这是一个bug还是一个特性?感觉像个虫子。。。还是我做错了什么

编辑:这感觉更加错误,但它可以工作:

private function get isLoggedIn():Boolean
{
    return (_isLoggedIn == true && _data != null);
}
public function get isLoggedInPublic():Boolean
{
    return isLoggedIn;
}

。不幸的是,getter和setter必须具有相同的可见性。如果只需要在类内设置变量,或者需要使用其他名称的setter函数(就像您的
isLoggedInSet
)直接使用变量。

。不幸的是,getter和setter必须具有相同的可见性。如果您只需要在类内设置变量,或者需要使用其他名称的setter函数(就像您的
isLoggedInSet
),请直接使用该变量。

您有相关的源代码吗?我已经添加了我答案的链接。嗯。。。看起来有点不一样,但它回答了我的问题。我在这里添加了这个bug,你有什么来源吗?我已经添加了我答案的链接。嗯。。。看起来有点不一样,但它回答了我的问题。我在这里添加了一个bug,它可能是
private function get isLoggedIn():Boolean
{
    return (_isLoggedIn == true && _data != null);
}
public function get isLoggedInPublic():Boolean
{
    return isLoggedIn;
}