2012-05-19 3 views
0

Я использую AS3.0 с Flash (не Flex). Я создал собственный класс под названием drawBarChart и создал экземпляр BarChart1.AS3 Flash: как обновить экземпляр класса?

var BarChart1 = new drawBarChart(barChartX, barChartY, barChartWidth, barChartHeight, barChartScale) 

Если изменить значение переменной barChartScale позже в коде экземпляр BarChart1 не меняется. Может кто-нибудь, пожалуйста, объясните мне, какой правильный синтаксис должен получить экземпляр BarChart1 для обновления с новым значением barChartScale?

Спасибо!

EDIT: Спасибо Loxxy и shaunhusain за ваши ответы. Я пробовал реализовать ваш подход Loxxy, но он пока еще не работает для меня. Через некоторые инструкции трассировки я вижу, что я могу изменить переменную _Scale, отраженную в пользовательской функции класса setChartScale. Но результирующее изменение _Scale, похоже, не отражается в функции пользовательского класса BarChart, где экземпляр был изначально создан. то есть значение шкалы на экземпляре пока не меняется для меня. Я буду продолжать работать над этим!

+0

Просто некоторые вещи, чтобы отметить, так как ваше имя говорит вы являетесь AS3 нуб. Вы не делаете ничего, что строго неверно здесь, в терминах синтаксиса, но соглашение на всех языках ООП, которые я использовал (C++, Java и AS3), это назвать ваши классы с помощью символа верхнего регистра, а затем использовать верблюда case для имен переменных, свойств и методов (различие между этими тремя также в основном контекстуально, открытые переменные, такие как вы ищете, являются свойствами, методы/функции могут иметь любую область). В вашем случае выше barChart1 и DrawBarChart это то, как я бы назвал их (см. Ответ loxxy). – shaunhusain

ответ

0

Что нужно, чтобы открыть свойство масштаба для доступа позже.

Ничего особенного в Action Script здесь, просто практика кодирования. Реализовать это что-то вроде этого:

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.. 
Смежные вопросы