air 设置

1. 屏蔽系统窗口, flash窗口,窗口底部状态栏。使用自定义窗口。
当一个AIR项目创建成功后,你会发现相对与 web项目,你的工程目录下多了一个名为 XXX-app.xml的文件,这是我们项目的配制文件,实现自定义窗口就是靠它。打开它,修改如下代码:

<!– The type of system chrome to use (either “standard” or “none”). Optional. Default standard. –>
<!–<systemChrome></systemChrome> –>

去掉对systemChrome的注释,改为

<!– The type of system chrome to use (either “standard” or “none”). Optional. Default standard. –>
<systemChrome>none</systemChrome>

这样我们就去掉了系统窗口,转而使用了flash的自带窗口,下面我们把flash窗口也去掉。在你的主mxml文件中设置WindowedApplication 的这些属性

<mx:WindowedApplication showTitleBar=”false” borderThickness=”0″ showStatusBar=”false” showGripper=”false” ….. />

这样就完全去掉了所有的窗口,程序运行后只显现应用程序的内容。大家可以参考帮助手册来了解以上属性的意思。说到这里就引出了下一个问题,屏蔽了所有窗口以后如何对窗口进行基本的,放大,缩放,关闭操作呢。我们看下面。

2. 对自定义窗口的缩放,移动,关闭。
AIR比flex web应用多了一个类叫NativeWindow,我们就是靠这个类对窗口就行操作。在demo中,我用了以下几个方法来移定窗口,他们都在鼠标MouseDown event中被触发。

this.nativeWindow.startResize(“L”);
this.nativeWindow.startResize(“R”);
this.nativeWindow.startResize(“T”);
this.nativeWindow.startResize(“B”);
this.nativeWindow.startResize(“TL”);
this.nativeWindow.startResize(“RB”);

很容易可以看出,L R B T代表 Left, Right, Bottom 和 Top, 所以在调用startResize时设置适当的参数我们就可以轻易的实现对窗口各个方向的缩放。对于窗口的移定,在mouseDown event中使用

this.nativeWindow.startMove();

而对窗口的关闭,则很简单的在按钮click事件调用this.close()。

好了,以上就是对自定义窗口的操作。下面的东西我是用来完善我的demo,使它cool一点。相信大家在自己的应用程序中也会需要类似的东西,一个应用程序除了功能,细节上的处理也是很重要的。

3. 移动窗口时实现半透明效果,移动结束时还原。
要实现这个效果我们需要重新打开我们的XXX-app.xml文件,设置以下内容。

<!– Whether the window is transparent. Only applicable when systemChrome is none. Optional. Default false. –>
<transparent>true</transparent>

这个可以允许我们让应用程序的背景透明,这个很有用,背景透明的应用程序,利用背景透明,我们可以开发出很独特的应用程序。接下来要做的就简单了。

在上面移动窗口的mouseDown事件中加入 this.alpha = 0.x; 下面是demo中的代码。我将透明度设为0.6,this. alpha只针对应用程序的背景设置透明,如果你想让更多的东西透明,只需要对相应的控件设置alpha既可。

private function moveMe():void{
this.nativeWindow.startMove();
this.alpha = 0.6;
}

让透明还原我在mouseUp事件中设置alpha =1;

private function mouseUpHandle():void{
this.alpha = 1;
}

这样简单的设置也许就会使你的应用程序看起来不一样,怎么不试试呢:)

4. 关闭窗口动画。
我使用了下面的Iris效果对在窗口关闭时使用。有什么效果呢,大家关闭一下就知道了。 flex中内置了很多效果给我们使用,很多时候我们只需要适当的组合,就能得到意想不到的效果,比如 Move与 WipeDown一起可以实现Mac系统,菜单向下滑出的效果。诸如此类,只要有想像力,我们可以用很简单的代码,实现很有用的功能。 在demo 中,如下设置得到关闭动画

<mx:WindowedApplication closeEffect=”irisIn” ….. />

<mx:Iris id=”irisIn” duration=”500″ showTarget=”false” />

5. 窗口背景填充。
这个功能其实在开发程序的时候用的不多,我是不想让demo看起来太单调所以加了背景,我们知道flex是不能像Html那样轻易的让背景重复显示的,所以我们的用一些特殊方法处理以下,demo中的 setBackground方法用于设置整个背景。这里面涉及到的 Bitmap, BitmapData, Graphics类的具体作用,大家感兴趣的话可以看帮助手册,我的观点是当里用到的时候查帮助也不迟,只要知道有这么些个类可以为你干什么活就好。

private function setBackground():void{

var backgroundImage :Bitmap;
var backgroundBitmapData :BitmapData;

backgroundImage = new bg();
backgroundBitmapData = new BitmapData( backgroundImage.width, backgroundImage.height );
backgroundBitmapData.draw( backgroundImage );

workarea.graphics.beginBitmapFill( backgroundBitmapData, null,true );
workarea.graphics.drawRect(0,0, 2000, 2000);
workarea.graphics.endFill();
}
<think>我们正在处理一个多相流仿真中的相设置问题。用户希望将水设为主相,蒸汽设为第二相,空气设为第三相。根据之前的引用,我们知道MFiX是用于多相流仿真的软件,因此我们将基于MFiX来回答。 在MFiX中,相的设置通常在仿真设置文件中进行。用户需要修改输入文件(如mfix.dat)或通过图形用户界面(如果支持)来设置相的顺序和属性。 步骤: 1. 确定相的数量和类型:用户需要定义三个相:水(主相)、蒸汽(第二相)和空气(第三相)。 2. 设置相的属性:每个相需要指定材料属性(如密度、粘度等)和相间相互作用(如曳力系数)。 3. 指定相的顺序:在MFiX中,主相通常是索引为0的相,第二相索引为1,第三相索引为2。 具体操作: - 在输入文件中,使用关键字`PHASE`来定义相。 - 设置每个相的`NAME`和`MATERIAL`。 - 通过指定相的索引顺序来确定主相、第二相和第三相。 示例代码片段(mfix.dat中的相关部分): ``` ! 定义相的数量 PHASE = 3 ! 定义主相(水) PHASE_NAME(0) = 'water' PHASE_MATERIAL(0) = 'liquid' ! 设置水的属性(例如密度、粘度等) RO_s(0) = 1000.0 ! 密度 kg/m^3 MU_s(0) = 0.001 ! 粘度 Pa.s ! 定义第二相(蒸汽) PHASE_NAME(1) = 'vapor' PHASE_MATERIAL(1) = 'gas' RO_s(1) = 0.6 ! 蒸汽密度 MU_s(1) = 1.0e-5 ! 蒸汽粘度 ! 定义第三相(空气) PHASE_NAME(2) = 'air' PHASE_MATERIAL(2) = 'gas' RO_s(2) = 1.2 ! 空气密度 MU_s(2) = 1.8e-5 ! 空气粘度 ``` 注意:在MFiX中,相的索引从0开始,因此第一个定义的相(索引0)就是主相。用户需要确保在设置边界条件、初始条件以及相间相互作用时使用正确的相索引。 此外,用户还需要设置相间相互作用模型,例如水-蒸汽、水-空气之间的曳力模型等。这可以通过`DRAG`关键字来设置。 例如,设置水(主相)和蒸汽(第二相)之间的曳力模型: ``` DRAG = 'SYAM_OBRIEN' ! 选择适当的曳力模型 DRAG_PHASES(0,1) = 1 ! 启用相0和相1之间的曳力计算 ``` 同样,设置水和空气之间的曳力: ``` DRAG_PHASES(0,2) = 1 ! 启用相0和相2之间的曳力计算 ``` 最后,用户需要根据实际情况设置边界条件和求解参数。 注意:以上代码仅为示例,实际使用时需要根据具体物理模型和参数进行调整。用户应参考MFiX官方文档以获取更详细的信息。 引用:[^1] MFiX是由美国能源部国家能源技术实验室(NETL)开发的开源计算流体动力学(CFD)软件,专注于模拟多相流系统。 §§相关问题§§ 1. 在MFiX中如何设置相间传质(例如水蒸发为蒸汽)? 2. 如何为不同的相设置不同的湍流模型? 3. MFiX中多相流模拟的收敛技巧有哪些?</think>### 多相流仿真中相的设置方法 在MFiX中设置水为主相、蒸汽为第二相、空气为第三相的操作步骤如下: 1. **修改相定义顺序** 在`mfix.dat`输入文件中,通过`PHASE`关键字定义相的顺序: ```fortran ! 定义相的数量和类型 PHASE = 3 PHASE_NAME(0) = 'water' ! 主相(索引0) PHASE_NAME(1) = 'vapor' ! 第二相(索引1) PHASE_NAME(2) = 'air' ! 第三相(索引2) ``` 2. **设置材料属性** 为每个相指定材料模型和物性参数: ```fortran ! 主相(水)属性 RO_s(0) = 1000.0 ! 密度 (kg/m³) MU_s(0) = 0.001 ! 粘度 (Pa·s) MATERIAL(0) = 'liquid' ! 第二相(蒸汽)属性 RO_s(1) = 0.6 ! 蒸汽密度 MU_s(1) = 1.0e-5 ! 蒸汽粘度 MATERIAL(1) = 'ideal_gas' ! 第三相(空气)属性 RO_s(2) = 1.2 ! 空气密度 MU_s(2) = 1.8e-5 ! 空气粘度 MATERIAL(2) = 'ideal_gas' ``` 3. **配置相间相互作用** 在`DRAG`和`HEAT_TRANSFER`部分指定相间作用模型: ```fortran ! 设置相间曳力模型 DRAG = 'SYAM_OBRIEN' DRAG_PHASES(0,1) = 1 ! 水-蒸汽相互作用 DRAG_PHASES(0,2) = 1 ! 水-空气相互作用 DRAG_PHASES(1,2) = 1 ! 蒸汽-空气相互作用 ! 设置传热模型 HEAT_TRANSFER = 'GUNN' ``` 4. **定义体积分数(初始条件)** 确保主相体积分数总和为1: ```fortran IC_EP_g(0) = 0.7 ! 水初始体积分数 IC_EP_g(1) = 0.2 ! 蒸汽初始体积分数 IC_EP_g(2) = 0.1 ! 空气初始体积分数 ``` **关键注意事项**: - 主相(索引0)需设置为连续相,其他相为离散相 - 相间传质(如水蒸发)需通过`REACTION`模块额外配置 - 边界条件中需明确指定各相入口/出口条件 - 建议使用`MFiX-GUI`可视化工具验证设置[^1] > 完整配置示例:[MFiX官方相设置文档](https://mfix.netl.doe.gov/doc/mfix/20.1.2/input_guide.html#phase)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值