[flex] 【新手提问】一个关于flex的小问题

gaowei52306 2011-01-13
请问flex的脚本执行中有先后顺序吗?
如下面一段代码
<fx:Script>
			<![CDATA[
				import mx.controls.Alert;
				private function buttonClick(event:Event):void
				{
					
					//trace(event.target.id);
					Alert.show("event.target.id is  "+event.target.id);
					if(event.target.id=="one")
					{
						Alert.show("button one has clicked");
					}else if(event.target.id=="two")
					{
						Alert.show("button two has clicked");
					}
					trace("button has bean clicked");
				}
			]]>
		</fx:Script>


为什么每次都是弹出buttonone或者buttontwo后,才弹出event.target.id
remoteJavaSky 2011-01-13
为什么不trace条件里面执行的语句呢,显然有先后顺序。
Alert就是个Panel,在弹出窗口时是PopUpManager调用了addPopUp方法把Alert弹出来,最后添加的反而是在最外面的窗口,最先添加的被盖住了。所以窗口的层次和你想的正好相反了,这是合理的,还可以调用PopUpManager的bringToFront把你的Alert窗口给移到最外层。
gaowei52306 2011-01-13
remoteJavaSky 写道
为什么不trace条件里面执行的语句呢,显然有先后顺序。
Alert就是个Panel,在弹出窗口时是PopUpManager调用了addPopUp方法把Alert弹出来,最后添加的反而是在最外面的窗口,最先添加的被盖住了。所以窗口的层次和你想的正好相反了,这是合理的,还可以调用PopUpManager的bringToFront把你的Alert窗口给移到最外层。

谢谢
gaowei52306 2011-01-13
remoteJavaSky 写道
为什么不trace条件里面执行的语句呢,显然有先后顺序。
Alert就是个Panel,在弹出窗口时是PopUpManager调用了addPopUp方法把Alert弹出来,最后添加的反而是在最外面的窗口,最先添加的被盖住了。所以窗口的层次和你想的正好相反了,这是合理的,还可以调用PopUpManager的bringToFront把你的Alert窗口给移到最外层。

在次请教高手,PopUpManager的bringToFront怎么用啊?
PopUpManager.bringToFront(Alert.show("event.target.id is  "+event.target.id));这样用没有效果。
remoteJavaSky 2011-01-13
对于Alert类窗口,我们一般不去bringToFront,即把它移到屏幕的最外层。就像JavaScript中的Alert,临时交互一下就不管它了.
PopUpManager是管理所有弹出窗口的一个单例类,即flash容器中只实例化一个来管理所有的弹出窗口,多用于把一个内容更丰富些的窗口弹出,bringToFront是针对已经被弹出的窗口被其它窗口遮住了,调用它把被遮盖的窗口摆到最外层
gaowei52306 2011-01-14
remoteJavaSky 写道
对于Alert类窗口,我们一般不去bringToFront,即把它移到屏幕的最外层。就像JavaScript中的Alert,临时交互一下就不管它了.
PopUpManager是管理所有弹出窗口的一个单例类,即flash容器中只实例化一个来管理所有的弹出窗口,多用于把一个内容更丰富些的窗口弹出,bringToFront是针对已经被弹出的窗口被其它窗口遮住了,调用它把被遮盖的窗口摆到最外层

受教了。
就像我贴的代码那段,我写的alert被遮住了。那么我不用bringToFront,应该怎么做呢?那个alert已经是最外层了吧!
remoteJavaSky 2011-01-14
最后一个Alert窗口会放在最外层。
如果你真想控制Alert窗口Z顺序即层的顺序,可以在调用Alert的show方法时把这个方法返回值(Alert即Panel窗口)给保存下来,然后就可以任意操作它了。但这没有多少意义通常。
建议看下Alert.show()方法的源码。
gaowei52306 2011-01-14
谢谢,我会研究 的
ywlqi 2011-01-17
remoteJavaSky 写道
最后一个Alert窗口会放在最外层。
如果你真想控制Alert窗口Z顺序即层的顺序,可以在调用Alert的show方法时把这个方法返回值(Alert即Panel窗口)给保存下来,然后就可以任意操作它了。但这没有多少意义通常。
建议看下Alert.show()方法的源码。

对,后弹出的把前弹出的盖住了
huxiaowi 2011-01-21
JS的Alert会阻塞代码的执行,AS的Alert.show不会.
Global site tag (gtag.js) - Google Analytics