AS3 Combobox体积计算器

时间:2012-12-10 11:27:36

标签: actionscript-3 flash math combobox volume

我正在尝试使用2个组合框创建一个AS3体积计算器,一个用于高度,另一个用于直径。这些值为600mm至2000mm,高度为100,300mm至600mm,增量为50,直径为50,最终数字输出为文本输入。

我已经计算出这个特殊形状的体积计算,这个形状是一个半球形贴在顶部的圆柱体,公式为;

(身高-190)*(直径-6)/ 2 *(直径-6)/ 2 * 3.141 / 1000000

190 =半球的高度

6 =宽容

有人会知道我会怎么做吗?

非常感谢提前。

1 个答案:

答案 0 :(得分:0)

我首先将组合框数据提供程序(它们包含的值列表)添加到fx:declarations标记中:

<fx:Declarations>
  <s:ArrayList id="height_data">
    <fx:int>600</fx:int>
    <fx:int>700</fx:int>
    <fx:int>800</fx:int>
    <fx:int>900</fx:int>
    <fx:int>1000</fx:int>
    <fx:int>1100</fx:int>
    <fx:int>1200</fx:int>
    <fx:int>1300</fx:int>
    <fx:int>1400</fx:int>
    <fx:int>1500</fx:int>
    <fx:int>1600</fx:int>
    <fx:int>1700</fx:int>
    <fx:int>1800</fx:int>
    <fx:int>1900</fx:int>
    <fx:int>2000</fx:int>
  </s:ArrayList>
  <!-- similar list for diameter -->
</fx:Declarations>

然后添加两个组合框,以及输出到表单的区域(此处堆叠在VGroup中,但您可以根据需要进行排列):

<s:VGroup>
  <s:ComboBox id="shape_height" dataProvider="{height_data}"
              change="calculate_volume()"></s:ComboBox>
  <s:ComboBox id="shape_diameter" dataProvider="{diameter_data}"
              change="calculate_volume()"></s:ComboBox>
  <s:TextArea id="output"></s:TextArea>
</s:VGroup>

然后创建一个执行计算的函数:

<fx:Script>
  <![CDATA[
    public function calculate_volume():void {
      var height:int = parseInt(shape_height.selectedItem);
      var diameter:int = parseInt(shape_diameter.selectedItem);
      if(!isNaN(height) && !isNaN(diameter)) {
        // perform calculation
        // store answer in volume variable
        output.appendText(volume.toString() + "\n");
      }
    }
  ]]>
</fx:Script>