0

高さ用と直径用の 2 つのコンボボックスを使用して AS3 体積計算機を作成しようとしています。これらの値は、高さが 100 単位で 600mm から 2000mm まで、直径が 50 単位で 300mm から 600mm までで、最終的な数値がテキスト入力に出力されます。

上部に半球が取り付けられた円柱であるこの特定の形状の体積の計算は、既に理解しています。式は次のとおりです。

(高さ-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>

次に、2 つのコンボボックスと、出力用の領域をフォームに追加します (ここでは に積み上げられて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 に答える