String 动作脚本3:将字符串转换为and运算符?
我正试图在ActionScript中为一个学校项目创建一个简单的计算器程序,我正在努力找到一种简洁的方法,从这样的数组中获取一个方程:4,+,2;然后操纵它,这样就可以推导出方程的答案。问题是从等式数组中提取字符串+并将其转换为可用的运算符。此时,当按下计算器GUI上的运算符按钮时,它会将运算符作为字符串添加到公式数组中,即按下“÷”按钮将添加/到公式数组中 我在谷歌上寻找答案,发现我在下面的代码第1行和第4行中使用了,但我在输出提要中得到的结果都是null,或者0,这取决于我是将变量“answer”更改为字符串还是数字 以下是我目前掌握的代码:String 动作脚本3:将字符串转换为and运算符?,string,actionscript-3,flash,operators,calculator,String,Actionscript 3,Flash,Operators,Calculator,我正试图在ActionScript中为一个学校项目创建一个简单的计算器程序,我正在努力找到一种简洁的方法,从这样的数组中获取一个方程:4,+,2;然后操纵它,这样就可以推导出方程的答案。问题是从等式数组中提取字符串+并将其转换为可用的运算符。此时,当按下计算器GUI上的运算符按钮时,它会将运算符作为字符串添加到公式数组中,即按下“÷”按钮将添加/到公式数组中 我在谷歌上寻找答案,发现我在下面的代码第1行和第4行中使用了,但我在输出提要中得到的结果都是null,或者0,这取决于我是将变量“answ
import flash.external.ExternalInterface;
var equationArray:Array = new Array("4","+","2");
var answer:Number = ExternalInterface.call("eval",equationArray[0] + equationArray[1] + equationArray[2]);
trace(answer);
如果可能的话,我更喜欢使用类似这样的语句,而不是编写一个长的if语句来选择不同的运算符。谢谢你的帮助 我做了一些研究,发现你的代码不仅仅在Chrome上有效。 有一个错误
SecurityError: Error #2060
at flash.external::ExternalInterface$/call()
at FlexTemp/preinitializeHandler()
at FlexTemp/___FlexTemp_Application1_preinitialize()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()
at mx.core::UIComponent/initialize()
at spark.components::Application/initialize()
at FlexTemp/initialize()
at mx.managers.systemClasses::ChildManager/childAdded()
at mx.managers.systemClasses::ChildManager/initializeTopLevelWindow()
at mx.managers::SystemManager/initializeTopLevelWindow()
at mx.managers::SystemManager/http://www.adobe.com/2006/flex/mx/internal::kickOff()
at mx.managers::SystemManager/http://www.adobe.com/2006/flex/mx/internal::preloader_completeHandler()
at flash.events::EventDispatcher/dispatchEvent()
at mx.preloaders::Preloader/timerHandler()
at flash.utils::Timer/tick()
但是如果我在中切换PepperFlash\14.0.0.145\PepperFlashPlayer.dllchrome://plugins/
一切正常。
我认为您的flash文件中的pepflashplayer.dll存在一些问题:
import flash.external.ExternalInterface;
import flash.text.TextField;
var equationArray:Array = new Array("4","-","8");
var answer:Number = ExternalInterface.call("myJsFunction",equationArray[0] , equationArray[1] , equationArray[2])
var tf:TextField = new TextField();
addChild(tf as TextField);
tf.text = answer.toString();
在HTML页面中输入以下内容:
<script type="text/javascript">
function myJsFunction(arg1,arg2,arg3){
return eval(arg1+arg2+arg3);
}
</script>
这就是你想做的吗?
在你的代码中使用eval,我没有得到正确的答案。
当您在localhost/server上按上述方式运行时,这将为您提供答案。这应该会有所帮助。A可能会有所帮助,尽管有些代码看起来非常过时。这很奇怪,但您的代码对我来说很有用。我得到了6个答案。这在某种程度上是我想要的。但我忘了提一下,我正在为Android设备制作一个flash应用程序。我是否可以将JavaScript代码放在.js文件的flash应用程序目录中,并以这种方式运行它?我现在正在尝试,但到目前为止我还不能让它工作。我现在只是想在我的电脑上运行它,不确定Android手机是否可以运行JavaScript文件……对不起,我从来没有尝试过。但是,为什么您不想为操作员使用开关???切换/案例/中断…抱歉,可能是为了避免处理数学运算符优先级!?我想让我的代码尽可能紧凑,我想这是没有必要的。谢谢你的帮助