Actionscript 3 AS3 Flash:如何更新自定义类实例?

Actionscript 3 AS3 Flash:如何更新自定义类实例?,actionscript-3,flash,class,instance,Actionscript 3,Flash,Class,Instance,我使用的是带Flash的AS3.0,而不是Flex。我创建了一个名为Druchart的自定义类,并创建了一个名为BarChart1的实例 var BarChart1 = new drawBarChart(barChartX, barChartY, barChartWidth, barChartHeight, barChartScale) 如果稍后在代码中更改变量barChartScale的值,BarChart1实例不会更改。有人能给我解释一下让BarChart1实例更新为barChartSca

我使用的是带Flash的AS3.0,而不是Flex。我创建了一个名为Druchart的自定义类,并创建了一个名为BarChart1的实例

var BarChart1 = new drawBarChart(barChartX, barChartY, barChartWidth, barChartHeight, barChartScale)
如果稍后在代码中更改变量barChartScale的值,BarChart1实例不会更改。有人能给我解释一下让BarChart1实例更新为barChartScale的新值的正确语法吗

谢谢


编辑:谢谢你们的回复。我已经尝试过实现你的方法,但它仍然不太适合我。通过一些跟踪语句,我可以看到在自定义类setChartScale函数中得到了要更改的_Scale变量。但由此产生的_Scale变化似乎没有反映在最初创建实例的自定义类条形图函数中。i、 实例上的比例值对我来说还没有改变。我会继续努力的

您需要的是公开scale属性以供以后访问

这里的动作脚本没有什么特别之处,只是一个编码练习。执行如下操作:

public class BarChart 
    {    
        var _Scale:Number;

        public function BarChart(barChartX, barChartY, barChartWidth, barChartHeight, barChartScale) 
        {
            // Set other properties...

            _Scale = barChartScale;

        }

        public function setChartScale(scale:Number)
        {
            _Scale = scale; 
        }    
    }
现在将其用作:

        var chart = new BarChart(0,0,80,80,1);

        chart.setChartScale(1.5);     // At a later point..

只需要注意一些事情,因为你的名字说你是AS3 noob。在语法方面,你没有做任何严格错误的事情,但是我使用C++、java和AS3的所有OOP语言中的约定是用一个大写字母来命名类,然后使用CAMEL用例来改变变量、属性和方法名,这三个基本区别也基本上是上下文的。您正在寻找的公开变量是属性,方法/函数可以有任何作用域。在您上面的例子中,barChart1和DrucarChart是我将如何命名它们的。