0

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

我已经计算出这个特殊形状的体积计算方法,它是一个圆柱体,顶部有一个半球,公式是;

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

190 = 半球高度

6 = 公差

有人对我将如何做这件事有任何想法吗?

提前谢谢了。

4

1 回答 1

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>

然后添加两个组合框,以及一个用于输出到表单的区域(此处堆叠在 a 中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>
于 2012-12-10T13:18:15.683 回答