Tah*_*lvi 3 apache-flex mxml actionscript-3 flash-builder
我如何使用两个表达式在Flex中编写内联条件语句(case)
喜欢
text="{expression, expression2 ? true:false}"
Run Code Online (Sandbox Code Playgroud)
Flex编译器只检查第一个表达式并代表给出结果.但我想检查语句和显示结果.如果没有条件,那么什么也不做.
Tau*_*ayi 11
如果我正确理解你的问题:
text = ((expression) && (expression2)) ? true : false;
要么 text = ((expression) || (expression2)) ? true : false;
[更新1]
好吧我也说,但是第一次测试看看两个条件是否都是真的,第二次测试是否两种条件都是真的,我认为是你想要的.
[更新2]
一个例子
((1.1 is int) && (1.1 is Number)) ? true : false;
当表达式(1.1 is int)为false时,这将给出false,并且两个表达式都必须为true才能返回true.
((1.1 is int) || (1.1 is Number)) ? true : false;
当表达式(1.1 is Number)为true时,这将返回true ,并且只有一个表达式必须为true才能返回true.
[最终更新]
最后的例子:
<?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">
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<s:VGroup>
<s:Label id="label1" text="{((1.1 is int) && (1.1 is Number)) ? 'true' : 'false'}"></s:Label>
<s:Label id="label2" text="{((1.1 is int) || (1.1 is Number)) ? 'true' : 'false'}"></s:Label>
</s:VGroup>
</s:Application>
Run Code Online (Sandbox Code Playgroud)
因为如果您使用&&备选,则会出现错误,您可以使用&&.
小智 5
有很多方法,你可以这样写:
(condition1 && condition2) ? statement if true : statement if false
但是如果要在mxml组件绑定中执行此代码,则必须使用:
'& &'代替&&,'<'而不是<等