我正在尝试使用2个组合框创建一个AS3体积计算器,一个用于高度,另一个用于直径。这些值为600mm至2000mm,高度为100,300mm至600mm,增量为50,直径为50,最终数字输出为文本输入。
我已经计算出这个特殊形状的体积计算,这个形状是一个半球形贴在顶部的圆柱体,公式为;
(身高-190)*(直径-6)/ 2 *(直径-6)/ 2 * 3.141 / 1000000
190 =半球的高度
6 =宽容
有人会知道我会怎么做吗?
非常感谢提前。
答案 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>