我是Actionscript编程新手。我试图找出什么是从函数返回多个变量的最佳方法,每个变量都有不同的数据类型。例如,如果函数需要返回变量aa(一个字符串)和变量bb(一个数字)。推荐的方法从数学运算AS3函数中返回多个变量?
我正在使用的函数只是计算大量数学,并不涉及GUI中的对象。我从Google搜索中获得的一种方法使用了Object,但是(我认为)这需要我创建一个类,我想知道是否有更简单的方法。由于数组可以保存不同数据类型的元素,所以这可能是一种更简单的方法(?)。
下面是David Gassner的“Flash Builder 4和Flex 4 Bible”中的mxml和AS3文件示例。
文件:Calculator.mxml
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:components="components.*">
<fx:Script source="calculator.as"/>
<s:Panel title="Calculator" horizontalCenter="0" top="20">
<s:layout>
<s:VerticalLayout horizontalAlign="center"/>
</s:layout>
<mx:Form>
<components:ButtonTile id="input"
select="selectHandler(event)"
calculate="calculateHandler(event)"/>
<mx:FormItem label="Entry:">
<s:TextInput text="{currentInput}" editable="false" width="80"/>
</mx:FormItem>
<mx:FormItem label="Total:">
<s:TextInput text="{currentResult}" editable="false" width="80"/>
</mx:FormItem>
</mx:Form>
文件:calculator.as
//ActionScript code for Calculator.mxml
[Bindable]
private var currentResult:Number=0;
[Bindable]
private var currentInput:String="";
private function calculateHandler(event:Event):void
{
currentResult += Number(currentInput);
currentInput="";
}
private function selectHandler(event:TextEvent):void
{
currentInput += event.text;
}
可能有人说明如何修改的calculator.as的功能之一,正如一个例子如何返回两个值,其中一个是数字,另一个是字符串?有没有一种明显的方法可以做到这一点,或者,不同方法的优缺点是什么?提前致谢!
谢谢马蒂!关于你最后的建议,你能帮我通过显示.as文件中的哪些代码片段以及哪些代码放在.mxml文件中来消化示例的各个部分吗?完成的两个文件会是什么样子? (仍然缺少如何将所有内容放在一起的大图) – ggkmath
请参阅编辑如何将'CollisionData'放入它自己的文件中。解决这个问题的最简单方法是每个'class'都需要它自己的外部.as文件。 – Marty
ggkmath:如果你真的需要关闭很多数字,你可以避免在每次调用时创建对象。使用静态对象来返回数据 - 但是在下次调用之前必须从数据中提取数据。减少内存抖动 - >执行速度快得多。 – alxx