我如何使用两个表达式(case)
在Flex中编写内联条件语句喜欢
text="{expression, expression2 ? true:false}"
Flex编译器只检查第一个表达式并代表给出结果。但我想检查语句和显示结果。如果没有条件,那么什么都不做。
答案 0 :(得分: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,并且两个表达式都必须为true才能返回true。
((1.1 is int) || (1.1 is Number)) ? true : false;
当表达式(1.1 is Number)
为真时,这将返回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>
如果您使用&&
,则会出现错误,您可以使用&&
。
答案 1 :(得分:5)
有很多方法,你可以这样写:
(condition1 && condition2) ? statement if true : statement if false
但是如果要在mxml组件绑定中执行此代码,则必须使用:
'& &'
代替&&
,'<'
代替<
等。
答案 2 :(得分:0)
我会写下面的语句:
var expression1:Boolean;
var expression2:Boolean;
var result:Boolean;
expression1 = condition?true:false;
expression2 = anotherCondition?true:false;
result = expression1&&expression2;
答案 3 :(得分:0)
如果您希望将它们放在一个if
语句中,请分别使用and
或or
运算符:&&~ and
||`。例如:
var x:int = 6
if (x > 3 && x < 10) {
trace("both are true, so its contents will be acted on.");
}
var bob:Boolean = true;
if (x > 10 || bob) {
trace("x > 10 is false, but bob is true, so this will also be acted on.");
}
您还可以使用返回布尔值的函数
function y (z:int):Boolean {
if (z < 10) {
return false;
} else {
return true;
}
}
实际上,我可以将其简化为
function y (z:int) {
return z >= 10;
}
然后在一组条件中使用该函数:
if (x < 5 && y(x)) { trace ("something here"); }
如果分配给String或与String连接,则将布尔值转换为字符串。