如何在 Flex 中使用两个表达式(case)编写内联条件语句?

发布于 2024-12-25 23:57:35 字数 190 浏览 4 评论 0原文

我如何在 Flex 中使用两个表达式(case)编写内联条件语句,

就像

text="{expression, expression2 ? true:false}"

Flex 编译器只检查第一个表达式并代表给出结果。但我想检查两个语句并显示结果。如果不满足任何条件则不执行任何操作。

How i write the inline conditional statement in Flex with two expressions(case)

like

text="{expression, expression2 ? true:false}"

Flex compiler only check the first expression and on behalf of that give result.But i want to check both statement and show result. if no condition met then do nothing.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

您的好友蓝忘机已上羡 2025-01-01 23:57:35

如果我正确理解你的问题:

text = ((expression) && (expression2)) ? true : false;

text = ((表达式) || (表达式2)) ? true : false;

[更新1]

好吧,我说要么,但第一个测试看看两个条件是否都为真,而第二个测试是否其中一个条件为真,我认为是你想要的那个。

[更新 2]

示例

((1.1 是 int) && (1.1 是 Number)) ? true : false;

这将为您提供 false,因为表达式 (1.1 is int) 为 false,并且两个表达式都必须为 true 才能返回 true。

((1.1 是 int) || (1.1 是 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> 

因为如果使用 && 会出现错误,所以您也可以使用 &&&&&&代码>.

If I understand your question correctly either:

text = ((expression) && (expression2)) ? true : false;

or text = ((expression) || (expression2)) ? true : false;

[UPDATE 1]

Well I say either, but the first tests to see if both conditions are true, where as the second tests if either condition is true which I believe is the one you want.

[UPDATE 2]

An example

((1.1 is int) && (1.1 is Number)) ? true : false;

This will give you false as the expression (1.1 is int) is false, and both expressions must be true to return true.

((1.1 is int) || (1.1 is Number)) ? true : false;

This will return true as the expression (1.1 is Number) is true, and only one expression has to be true to return true.

[FINAL UPDATE]

Last example:

<?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> 

Because you get an error if you use && alternatively you can use &&.

最偏执的依靠 2025-01-01 23:57:35

方法有很多种,你可以这样写:

(condition1 && condition2) ? statements if true : statements if false

但如果您想在 mxml 组件绑定中执行此代码,那么您必须使用:

'& &' 而不是 & ;&'<' 而不是 < 等。

There are number of methods, you can just write like that :

(condition1 && condition2) ? statement if true : statement if false

but if you want to execute this code in mxml component bindings, then you must use :

'& &' instead of &&,'<' instead of <, etc.

随风而去 2025-01-01 23:57:35

如果您希望它们出现在一个 if 语句中,请使用 andor 运算符:&&~ 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"); }

如果分配给字符串或与字符串连接,则布尔值将转换为字符串。

If you want them in one if statement, use the and or or operators: &&~ and||`, respectively. For example:

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.");
}

You can also use functions that return booleans

function y (z:int):Boolean {
    if (z < 10) {
        return false;
    } else {
        return true;
    }
}

Actually, I could simplify that to

function y (z:int) {
    return z >= 10;
}

Then use the function in a group of conditions:

if (x < 5 && y(x)) { trace ("something here"); }

Booleans are converted to strings if assigned to or concatenated with a String.

吾性傲以野 2025-01-01 23:57:35

我会写以下声明:

var expression1:Boolean;
var expression2:Boolean;
var result:Boolean;

expression1 = condition?true:false;
expression2 = anotherCondition?true:false;

result = expression1&&expression2;

I would write the following statements instead :

var expression1:Boolean;
var expression2:Boolean;
var result:Boolean;

expression1 = condition?true:false;
expression2 = anotherCondition?true:false;

result = expression1&&expression2;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文