﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-分享ｊａｖａ带来的快乐-文章分类-flex 技术分类</title><link>http://www.blogjava.net/lyjjq/category/42680.html</link><description>我喜欢ｊａｖａ新东西</description><language>zh-cn</language><lastBuildDate>Fri, 13 May 2011 15:50:27 GMT</lastBuildDate><pubDate>Fri, 13 May 2011 15:50:27 GMT</pubDate><ttl>60</ttl><item><title>flex 事件机制穿透</title><link>http://www.blogjava.net/lyjjq/articles/350126.html</link><dc:creator>强强</dc:creator><author>强强</author><pubDate>Thu, 12 May 2011 22:57:00 GMT</pubDate><guid>http://www.blogjava.net/lyjjq/articles/350126.html</guid><wfw:comment>http://www.blogjava.net/lyjjq/comments/350126.html</wfw:comment><comments>http://www.blogjava.net/lyjjq/articles/350126.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lyjjq/comments/commentRss/350126.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lyjjq/services/trackbacks/350126.html</trackback:ping><description><![CDATA[<p>&lt;?xml version="1.0" encoding="utf-8"?&gt;<br />
&lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" click="onAppClick(event)"&gt;<br />
&nbsp;&lt;mx:Script&gt;<br />
&nbsp;&nbsp;&lt;![CDATA[<br />
&nbsp;&nbsp;&nbsp;import mx.controls.Alert;</p>
<p>&nbsp;&nbsp;private function onButtonClick(event:Event)<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;trace("onButtonClick");<br />
&nbsp;&nbsp;} <br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;private function onPanelClick(event:Event)<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;trace("onPanelClick");<br />
&nbsp;&nbsp;} <br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;private function onAppClick(event:Event)<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;trace("onAppClick");<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;]]&gt;<br />
&nbsp;&lt;/mx:Script&gt;<br />
&lt;mx:Panel click="onPanelClick(event)"&gt;<br />
&lt;mx:Button label="click" click="onButtonClick(event)" /&gt;<br />
&lt;/mx:Panel&gt;<br />
&lt;/mx:Application&gt;<br />
</p>
<table style="width: 100%; table-layout: fixed">
    <tbody>
        <tr>
            <td>
            <div id="blog_text" class="cnt">
            <h2></h2>
            <div class="content">
            <p>今天写了一些Flex代码，在处理Flex中的事件的时候有一些不明白，仔细看了文档之后终于明白了，在此记录一下。</p>
            <p>Flex的事件其实很容易明白，象JAVA语言一样，给某个控件注册一个listener，然后事件发生的时候触发相应的函数，这点我相信大多数人都能够明白。今天我想要说的不是这个，而是更加细节的一些东西。</p>
            <p><strong>1.事件的传播过程。</strong></p>
            <p>Flex事件有下面三个阶段，当事件发生时依次为：</p>
            <p>1.capturing（捕捉）<br />
            2.targeting（定位）<br />
            3.bubbling（起泡或者回溯）</p>
            <p>在这些阶段，程序中从根节点到触发事件的节点（这里的节点就是指可以把整个MXML文件看作是一个XML，那么节点就是各个标签）都有机会来响应事件。假设用户点击了HBox容器中的一个Button，在capturing阶段Flex会检查Application和HBox是否对此事件定义了listener，然后在targeting阶段Flex触发Button的listener，在bubbling阶段Flex又会检查Application和HBox，不过这次的顺序和capturing状态时相反。也就是说，事件发生的时候从根节点到目标节点的父节点有两次机会可以响应事件。</p>
            <p>整个事件的这三个阶段也就形成了一个事件流。所以你可以在工作流中的任意节点上注册listener而不用担心不会被触发。还有一点需要说明的是，只有可视的对象（比如一些容器和控件）才有第一个和第三个阶段，而像Socket这种没有界面的对象只能在targeting时被触发，它无法参与第一个和第三个阶段。</p>
            <p>虽然每个对象都有两次响应事件的机会，但是在默认情况下，capturing状态时没有对象会响应事件，除非你特别声明要在capturing阶段响应。你可以把<em>addEventListener() </em>中的<em>use_capture</em>参数设置为<em>true</em>，这样就可以在capturing阶段响应了。但是请注意，一旦在capturing中响应过之后在bubbling阶段就不会再响应了。如果你想要让listener在capturing和bubbling阶段都响应的话，只能两次调用<em>addEventListener() </em>，一次把<em>use_capture</em>参数设置为<em>true</em>，第二次把它设置为<em>false</em>。</p>
            <p>另外，你只能为可以触发一个事件的对象注册此事件的listener。比如，你就不能为一个Form定义一个Click事件，即使它包含一个Button控件，因为Form无法触发Click事件。</p>
            <p>你可以使用下面两个函数来中止事件的传播：<br />
            stopPropagation() <br />
            stopImmediatePropagation()</p>
            <p>两者唯一的区别就是stopPropagation()是在当前对象的所有listener执行完毕之后再中止事件的传播，而另外一个是立刻终止。</p>
            <p><strong>2.Flex事件中的target和currentTarget</strong></p>
            <p>每个Event对象都有target和currentTarget属性，他们可以帮助你跟踪事件传播过程。target指的是触发事件的对象，而currentTarget则是指当前阶段正在被检测到的对象。这样说可能不太好理解，拿上面的那个例子来说吧，在单击事件中target就是那个button（或者其子组件），不会变，而currentTarget则首先是Application，然后是HBox，然后&#8230;&#8230;明白了吧？currentTarget就是当前正在被事件所检测的对象。currentTarget在Flex 1.5中是没有的，是Flex 2新加入的。</p>
            <p>当我点击一个Button时，target很有可能并不是这个Button，而是Button的UITextField，就是显示按钮文字的组件。但是大多数时候你都是想操作Button对象或者其他注册了listener的对象，很少有人为UITextField对象注册listener。所以大多数时候你都用currentTarget而不是target来操作他们。举个例子：</p>
            <p>&nbsp;</p>
            <div>&lt;mx:Button label=&#34;OK&#34; click=&#34;trace(event.currentTarget.label)&#34;/&gt;</div>
            <p>&nbsp;</p>
            <p>在这种情况下，currentTarget就是指Button，而target指什么就取决于用户点击了Button上哪个地方了。所以一般你很少用到target属性，大多数情况下都应该使用currentTarget。</p>
            <p>终于总结完了，好像事件还有许多其他我没注意的地方，如果你认为我疏忽了什么，please leave a comment。Thank you.</p>
            </div>
            </div>
            </td>
        </tr>
    </tbody>
</table>
<br />
<br />
<p jquery1305240901395="5">&nbsp;</p>
<img src ="http://www.blogjava.net/lyjjq/aggbug/350126.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lyjjq/" target="_blank">强强</a> 2011-05-13 06:57 <a href="http://www.blogjava.net/lyjjq/articles/350126.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>flex chart 去水印 flex data visualization trial 亲自用过，很管用 </title><link>http://www.blogjava.net/lyjjq/articles/325194.html</link><dc:creator>强强</dc:creator><author>强强</author><pubDate>Sun, 04 Jul 2010 06:03:00 GMT</pubDate><guid>http://www.blogjava.net/lyjjq/articles/325194.html</guid><wfw:comment>http://www.blogjava.net/lyjjq/comments/325194.html</wfw:comment><comments>http://www.blogjava.net/lyjjq/articles/325194.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lyjjq/comments/commentRss/325194.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lyjjq/services/trackbacks/325194.html</trackback:ping><description><![CDATA[<h2>
<h3><a href="http://zhzhiqun2005.javaeye.com/blog/523822"></a></h3>
的确，网上方法很多，有时是环境不同，有时是测试的方法不正确吧，试了很久才把AdvancedDataGrid上的水印&#8220;flex data visualization trial&#8221;给去掉 <br />
<br />
参考资料：http://livedocs.adobe.com/flex/3/html/help.html?content=configuring_environment_2.html <br />
<br />
我用的方法是输入FB3 序列号1377-4260-4983-2510-8542-5740，操作步骤是点击&#8220;Help&#8221;---&gt;选择Manage Flex Bulider Licenses---&gt;输入序列号 <br />
<br />
序列号的提供处：http://hi.baidu.com/fanzhene/blog/item/46b7aa511eec612242a75bc7.html </h2>
<img src ="http://www.blogjava.net/lyjjq/aggbug/325194.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lyjjq/" target="_blank">强强</a> 2010-07-04 14:03 <a href="http://www.blogjava.net/lyjjq/articles/325194.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>flex例子</title><link>http://www.blogjava.net/lyjjq/articles/301725.html</link><dc:creator>强强</dc:creator><author>强强</author><pubDate>Mon, 09 Nov 2009 09:43:00 GMT</pubDate><guid>http://www.blogjava.net/lyjjq/articles/301725.html</guid><wfw:comment>http://www.blogjava.net/lyjjq/comments/301725.html</wfw:comment><comments>http://www.blogjava.net/lyjjq/articles/301725.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lyjjq/comments/commentRss/301725.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lyjjq/services/trackbacks/301725.html</trackback:ping><description><![CDATA[<a href="http://shigeru-nakagaki.com/index.cfm/2008/7/12/index.cfm?Content=Flex2Samples">http://shigeru-nakagaki.com/index.cfm/2008/7/12/index.cfm?Content=Flex2Samples</a><br />
<a href="http://demo.quietlyscheming.com/book/app.html">http://demo.quietlyscheming.com/book/app.html</a><br />
<a href="http://www.adobe.com/devnet/flex/quickstart/adding_drag_and_drop/">http://www.adobe.com/devnet/flex/quickstart/adding_drag_and_drop/</a>
<img src ="http://www.blogjava.net/lyjjq/aggbug/301725.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lyjjq/" target="_blank">强强</a> 2009-11-09 17:43 <a href="http://www.blogjava.net/lyjjq/articles/301725.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>flex 效果</title><link>http://www.blogjava.net/lyjjq/articles/301724.html</link><dc:creator>强强</dc:creator><author>强强</author><pubDate>Mon, 09 Nov 2009 09:42:00 GMT</pubDate><guid>http://www.blogjava.net/lyjjq/articles/301724.html</guid><wfw:comment>http://www.blogjava.net/lyjjq/comments/301724.html</wfw:comment><comments>http://www.blogjava.net/lyjjq/articles/301724.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lyjjq/comments/commentRss/301724.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lyjjq/services/trackbacks/301724.html</trackback:ping><description><![CDATA[&nbsp;
<div class="blog_content">1.旋转 <br />
<br />
效果：http://www.alex-uhlmann.de/flash/adobe/blog/distortionEffects/effectCube/ <br />
<br />
代码：http://weblogs.macromedia.com/auhlmann/archives/DistortionEffects.zip <br />
<br />
2.画布按钮 <br />
<br />
http://dougmccune.com/blog/2007/06/01/new-component-canvasbutton-added-to-flexlib/ <br />
<br />
3.鱼眼工具条 <br />
<br />
效果：http://dev.getoutsmart.com/labs/dock/ <br />
<br />
代码：http://dev.getoutsmart.com/labs/dock/dockdemo.zip <br />
<br />
4.窗口 <br />
<br />
http://www.returnundefined.com/flexmdi/explorer/ <br />
<br />
http://window.diaztorres.com/bin-release/test_window.html <br />
<br />
5.切换效果 <br />
<br />
http://blogs.digitalprimates.net/codeSlinger/samples/carousel/CarouselTest.html <br />
<br />
6.图片展示 <br />
<br />
效果：http://flex.diaztorres.com/samples/aladinotest/aladino_test.html <br />
<br />
代码：http://www.madeinflex.com/img/entries/2008/01/aladino.zip <br />
<br />
7.自定义载入进度条 <br />
<br />
http://blog.diaztorres.com/2007/05/mipreloader/mipreloaderdemo.html <br />
<br />
8.Flex Mac弹出窗口 <br />
<br />
http://blog.xsive.co.nz/archives/244 <br />
<br />
9.果冻特效弹出窗口 <br />
<br />
http://blog.sban.com.cn/2008/04/01/jelly-effect-alert-window.html <br />
<br />
10.Alert弹出效果 <br />
<br />
http://www.cnblogs.com/taobataoma/archive/2008/01/13/1037082.html <br />
<br />
11.自定义ToolTip <br />
<br />
图片：http://everythingflex.com/flex2/ImageToolTip/Index.html <br />
<br />
视频：http://labs.flexcoders.nl/samples/ToolTip/video/002/ <br />
<br />
弹性：http://labs.flexcoders.nl/samples/ToolTip/spring/001/ <br />
<br />
12. http://flanture.blogspot.com/2008/05/simple-flex-effects-example.html <br />
13.果冻效果： http://blog.sban.com.cn/2008/04/01/jelly-effect-alert-window.html <br />
14.BOOK： http://www.quietlyscheming.com/blog/components/flexbook/ <br />
<br />
<br />
<br />
<br />
1:聚光灯效果： <br />
<br />
实例：http://www.rphelan.com/flex/SpotlightDemo/SpotlightDemo.html <br />
<br />
ambientColor - color to apply to all pixels of the image <br />
angle - angle at which the spotlight is projected (in degrees) <br />
azimuth - angle between the image plane and the spotlight (in degrees) <br />
coneAngle - angle of the spotlight's "opening" (in degrees) <br />
distance - distance from the spotlight to the center point <br />
intensity - intensity of the spotlight <br />
position - x, y, z position of the spotlight <br />
spotColor - color of the spotlight <br />
源文件：http://www.rphelan.com/flex/SpotlightDemo/srcview/index.html <br />
<br />
2:放大镜效果： <br />
<br />
实例：http://www.rphelan.com/flex/MagnifyDemo/MagnifyDemo.html <br />
<br />
center ([0-2048, 0-2048]) - the center coordinates of the magnified area <br />
outerRadius (0-500) - the radius of the magnified part of the image <br />
innerRadius (0-500) - the radius of the fully magnified part of the image <br />
magnification (1-50) - the amount to magnify the image by (e.g. set to 2 for a 2x magnification) <br />
源文件：http://www.rphelan.com/flex/MagnifyDemo/srcview/index.html <br />
<br />
3：缩放模糊效果： <br />
<br />
实例：http://www.rphelan.com/flex/ZoomBlurDemo/ZoomBlurDemo.html <br />
<br />
amount (0 - 0.5) - the amount of blur to apply <br />
center ([0 - 2048, 0 - 2048]) - the focal point of the blur <br />
源文件：http://www.rphelan.com/flex/ZoomBlurDemo/srcview/index.html <br />
<br />
4：浮雕效果： <br />
<br />
实例：http://www.rphelan.com/flex/SharpenDemo/SharpenDemo.html <br />
<br />
amount (0 - 20) - the amount to sharpen the image by <br />
radius (0 - 1) - pixel distance to sample from <br />
源文件：http://www.rphelan.com/flex/SharpenDemo/srcview/index.html <br />
<br />
5：水波效果： <br />
<br />
实例：http://www.rphelan.com/flex/WaveReflectionDemo/WaveReflectionDemo.html <br />
</div>
<img src ="http://www.blogjava.net/lyjjq/aggbug/301724.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lyjjq/" target="_blank">强强</a> 2009-11-09 17:42 <a href="http://www.blogjava.net/lyjjq/articles/301724.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>