ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>精品少妇一区二区三区视频免付费 ,久久综合久久美利坚合众国,日韩精品一区二区三区视频播放 http://www.aygfsteel.com/usherlight/category/18755.html天åã^å±×ƒ¸Šç™½äº‘泉,云自无心水自闌Ӏ‚何必奔冲山下去åQŒæ›´æ·ÀL‡L‹¹ªå‘人间åQ?/description>zh-cnFri, 24 Aug 2007 14:14:38 GMTFri, 24 Aug 2007 14:14:38 GMT60ViewStack的大ž®é—®é¢?/title><link>http://www.aygfsteel.com/usherlight/archive/2007/08/24/139173.html</link><dc:creator>云自无心水自é—?/dc:creator><author>云自无心水自é—?/author><pubDate>Fri, 24 Aug 2007 12:26:00 GMT</pubDate><guid>http://www.aygfsteel.com/usherlight/archive/2007/08/24/139173.html</guid><wfw:comment>http://www.aygfsteel.com/usherlight/comments/139173.html</wfw:comment><comments>http://www.aygfsteel.com/usherlight/archive/2007/08/24/139173.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/usherlight/comments/commentRss/139173.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/usherlight/services/trackbacks/139173.html</trackback:ping><description><![CDATA[<p>åQ?br>ViewStack的大ž®æ˜¯ç”±å…¶å­ç»„件的大å°å†›_®šçš„,而ViewStackòq¶ä¸ä¼šåœ¨æ”¹å˜?g¨°u)zÕdЍå­ç»„件的时候自动resizeã€?br>åªæœ‰ä½¿ç”¨ä»¥ä¸‹æ–ÒŽ(gu¨©)³•æ¥æŽ§åˆ¶ViewStack的大ž®ã€?br>1. 使用相åŒçš„固定值明¼‹®æŒ‡å®šæ‰€æœ‰å­¾l„äšg的大ž®?br>2. 使用相åŒçš„æ¯”例值指定所有孾l„äšg的大ž®?br>3. ž®†ViewStackçš„widthå’Œheightçš„å€ÆD®¾¾|®äؓ一个固定或者倹{€?/p> <p>上述3¿U方法是Adobe官方文档æä¾›çš„。但是这3¿U方法ä¸èƒ½è§£å†³ViewStackå­ç»„件大ž®ä¸ä¸€è‡ß_¼ŒViewStackä¸èƒ½è‡ªåŠ¨è°ƒæ•´çš„é—®é¢˜ã€?br>æˆ‘æœ€åŽæ˜¯ä½¿ç”¨ActionScript动æ€è§£å†³çš„ã€?br>在更æ¢ViewStackçš„active child之间åQŒé¦–先设¾|®viewStack的大ž®ã€?/p> <p><mx:ViewStack id="appStack"><br>        <mx:VBox id="v1"/><br>        <mx:VBox id="v2"/><br></mx:ViewStack></p> <p>public function changeChild() : void {<br>        appStack.width = 200;<br>        appStack.height = 200;<br>        appStack.selectChild = v1;<br>}<br><br>我错了,使用ViewStackçš„resizeToContent是最好的解决办法ã€?/p><img src ="http://www.aygfsteel.com/usherlight/aggbug/139173.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/usherlight/" target="_blank">云自无心水自é—?/a> 2007-08-24 20:26 <a href="http://www.aygfsteel.com/usherlight/archive/2007/08/24/139173.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>Flex中ä‹É用模å—Module的例å­?/title><link>http://www.aygfsteel.com/usherlight/archive/2007/04/28/114300.html</link><dc:creator>云自无心水自é—?/dc:creator><author>云自无心水自é—?/author><pubDate>Sat, 28 Apr 2007 04:38:00 GMT</pubDate><guid>http://www.aygfsteel.com/usherlight/archive/2007/04/28/114300.html</guid><wfw:comment>http://www.aygfsteel.com/usherlight/comments/114300.html</wfw:comment><comments>http://www.aygfsteel.com/usherlight/archive/2007/04/28/114300.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/usherlight/comments/commentRss/114300.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/usherlight/services/trackbacks/114300.html</trackback:ping><description><![CDATA[首先是应用的代ç , 在应用中使用 <mx:ModuleLoader >æ¥åŠ è½½æ¨¡å?br><br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000"><?</span><span style="COLOR: #000000">xml version</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">1.0</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">?></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000"><!--</span><span style="COLOR: #000000"> modules</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">URLModuleLoaderApp.mxml </span><span style="COLOR: #000000">--></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">mx:Application xmlns:mx</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">http://www.adobe.com/2006/mxml</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> viewSourceURL</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">srcview/index.html</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>    </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">mx:Panel<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>    title</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Module Example</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>    height</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">90%</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>    width</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">90%</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>    paddingTop</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>    paddingLeft</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>    paddingRight</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>    paddingBottom</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>    </span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>    <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>    </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">mx:Label width</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">100%</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> color</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">blue</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>    text</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Select the tabs to change the panel.</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>    <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>    </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">mx:TabNavigator id</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">tn</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>    width</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">100%</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>    height</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">100%</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>    creationPolicy</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">auto</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>    </span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>    <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>        </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">mx:VBox id</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">vb1</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> label</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Column Chart Module</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>        <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>            </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">mx:Label id</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">l1</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> text</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">ColumnChartModule.swf</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>            </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">mx:ModuleLoader url</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">ColumnChartModule.swf</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>        <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>        </span><span style="COLOR: #000000"></</span><span style="COLOR: #000000">mx:VBox</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>        <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>        </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">mx:VBox id</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">vb2</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> label</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Pie Chart Module</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>        <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>            </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">mx:Label id</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">l2</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> text</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">piehchartmodule.swf</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>            </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">mx:ModuleLoader url</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">piechartmodule.swf</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>        <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>        </span><span style="COLOR: #000000"></</span><span style="COLOR: #000000">mx:VBox</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>        <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>        </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">mx:VBox id</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">vb3</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> label</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Line Chart Module</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>        <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>            </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">mx:Label id</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">l3</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> text</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">linehchartmodule.swf</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>            </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">mx:ModuleLoader url</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">linechartmodule.swf</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>        <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>        </span><span style="COLOR: #000000"></</span><span style="COLOR: #000000">mx:VBox</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>    <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>    </span><span style="COLOR: #000000"></</span><span style="COLOR: #000000">mx:TabNavigator</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>    </span><span style="COLOR: #000000"></</span><span style="COLOR: #000000">mx:Panel</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000"></</span><span style="COLOR: #000000">mx:Application</span><span style="COLOR: #000000">></span></div> <br><br>åœ¨è¿™ä¸ªåº”ç”¨ä¸­ä¸»è¦æ˜¯ä¸€ä¸ªTagNavigator, é‡Œé¢æœ‰ä¸‰ä¸ªæ ‡½{ùN¡µ. æ¯ä¸ªæ ‡ç­¾™åµåŠ è½½ä¸€ä¸ªæ¨¡å?<br>䏋颿˜¯å…¶ä¸­ä¸€ä¸ªæ¨¡å—的代ç :<br><br><br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000"><?</span><span style="COLOR: #000000">xml version</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">1.0</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">?></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000"><!--</span><span style="COLOR: #000000">ColumnChartModule.mxml </span><span style="COLOR: #000000">--></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">mx:Module xmlns:mx</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">http://www.adobe.com/2006/mxml</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> width</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">100%</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> height</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">100%</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>    </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">mx:Script</span><span style="COLOR: #000000">><!</span><span style="COLOR: #000000">[CDATA[<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>    <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>        </span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> mx.collections.ArrayCollection;<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>        [Bindable]<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>        </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> var expenses:ArrayCollection </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> ArrayCollection([<br><img id=Codehighlighter1_308_348_Open_Image onclick="this.style.display='none'; Codehighlighter1_308_348_Open_Text.style.display='none'; Codehighlighter1_308_348_Closed_Image.style.display='inline'; Codehighlighter1_308_348_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_308_348_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_308_348_Closed_Text.style.display='none'; Codehighlighter1_308_348_Open_Image.style.display='inline'; Codehighlighter1_308_348_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedBlock.gif" align=top>        </span><span id=Codehighlighter1_308_348_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_308_348_Open_Text><span style="COLOR: #000000">{Month:</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Jan</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">, Profit:</span><span style="COLOR: #000000">2000</span><span style="COLOR: #000000">, Expenses:</span><span style="COLOR: #000000">1500</span><span style="COLOR: #000000">}</span></span><span style="COLOR: #000000">,<br><img id=Codehighlighter1_359_398_Open_Image onclick="this.style.display='none'; Codehighlighter1_359_398_Open_Text.style.display='none'; Codehighlighter1_359_398_Closed_Image.style.display='inline'; Codehighlighter1_359_398_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_359_398_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_359_398_Closed_Text.style.display='none'; Codehighlighter1_359_398_Open_Image.style.display='inline'; Codehighlighter1_359_398_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedBlock.gif" align=top>        </span><span id=Codehighlighter1_359_398_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_359_398_Open_Text><span style="COLOR: #000000">{Month:</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Feb</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">, Profit:</span><span style="COLOR: #000000">1000</span><span style="COLOR: #000000">, Expenses:</span><span style="COLOR: #000000">200</span><span style="COLOR: #000000">}</span></span><span style="COLOR: #000000">,<br><img id=Codehighlighter1_409_448_Open_Image onclick="this.style.display='none'; Codehighlighter1_409_448_Open_Text.style.display='none'; Codehighlighter1_409_448_Closed_Image.style.display='inline'; Codehighlighter1_409_448_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_409_448_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_409_448_Closed_Text.style.display='none'; Codehighlighter1_409_448_Open_Image.style.display='inline'; Codehighlighter1_409_448_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedBlock.gif" align=top>        </span><span id=Codehighlighter1_409_448_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_409_448_Open_Text><span style="COLOR: #000000">{Month:</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Mar</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">, Profit:</span><span style="COLOR: #000000">1500</span><span style="COLOR: #000000">, Expenses:</span><span style="COLOR: #000000">500</span><span style="COLOR: #000000">}</span></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>        ]);<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>        <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>    ]]</span><span style="COLOR: #000000">></</span><span style="COLOR: #000000">mx:Script</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>    <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>    </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">mx:ColumnChart id</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">myChart</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> dataProvider</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">{expenses}</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>    <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>        </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">mx:horizontalAxis</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>        <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>            </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">mx:CategoryAxis<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>            dataProvider</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">{expenses}</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>            categoryField</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Month</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>            </span><span style="COLOR: #000000">/></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>            <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>        </span><span style="COLOR: #000000"></</span><span style="COLOR: #000000">mx:horizontalAxis</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>        <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>        </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">mx:series</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>        <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>            </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">mx:ColumnSeries<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>            xField</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Month</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>            yField</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Profit</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>            displayName</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Profit</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>            </span><span style="COLOR: #000000">/></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>            <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>            </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">mx:ColumnSeries<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>            xField</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Month</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>            yField</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Expenses</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>            displayName</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Expenses</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>            </span><span style="COLOR: #000000">/></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>            <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>        </span><span style="COLOR: #000000"></</span><span style="COLOR: #000000">mx:series</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>    <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>    </span><span style="COLOR: #000000"></</span><span style="COLOR: #000000">mx:ColumnChart</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>    <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>    </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">mx:Legend dataProvider</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">{myChart}</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>    <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000"></</span><span style="COLOR: #000000">mx:Module</span><span style="COLOR: #000000">></span></div> <br><br>最å? 应用和三个模å—一å…׃¼šç”Ÿæˆ4个SWF. 一般æ¥è¯? 应用使用延迟加貽{–ç•¥. 也就是说, 如果你打开应用å? 从æ¥éƒ½ä¸ä½¿ç”¨å…¶ä¸­çš„æŸä¸ªæ¨¡å? 那个˜q™ä¸ªæ¨¡å—永远ä¸ä¼šè¢«åŠ è½? ˜q™æ¬¡åšçš„好处æ˜? 加快了第一‹Æ¡æ‰“开应用的速度, 但éšä¹‹è€Œæ¥çš„缺点就æ˜? ½W¬ä¸€‹Æ¡æ‰“开使用æŸä¸ªåŠŸèƒ½, 需è¦åŠ è½½æ¨¡å—æ—¶, 会需è¦ä¸€ç‚¹ç­‰å¾…的旉™—´.<img src ="http://www.aygfsteel.com/usherlight/aggbug/114300.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/usherlight/" target="_blank">云自无心水自é—?/a> 2007-04-28 12:38 <a href="http://www.aygfsteel.com/usherlight/archive/2007/04/28/114300.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>amfphp 1.9 beta 介ç»http://www.aygfsteel.com/usherlight/archive/2007/04/21/112449.html云自无心水自é—?/dc:creator>云自无心水自é—?/author>Sat, 21 Apr 2007 08:06:00 GMThttp://www.aygfsteel.com/usherlight/archive/2007/04/21/112449.htmlhttp://www.aygfsteel.com/usherlight/comments/112449.htmlhttp://www.aygfsteel.com/usherlight/archive/2007/04/21/112449.html#Feedback0http://www.aygfsteel.com/usherlight/comments/commentRss/112449.htmlhttp://www.aygfsteel.com/usherlight/services/trackbacks/112449.html 

新特æ€?br>1. 支æŒAMF3, ˜q™ä¸€ç‚ÒŽ(gu¨©)— ç–‘是‹È€åЍäh心的.
2. 支æŒJSON, 除了gateway.phpå¤? 增加了json.php, 让你的æœåŠ¡èƒ½å¤Ÿä‹É用JSON.
有两个例�
http://5etdemi.com/amfphp2/samples/ajaxtables/
http://5etdemi.com/amfphp2/samples/spry/
3. 一个新的service browser
4. 在phpç«? ä¸å†éœ€è¦å†™ $this->methodTable ˜q™ä¸ªä¸œä¸œäº? 在amfphp 1.9 ä¸?所有的æ–ÒŽ(gu¨©)³•默认为å¯ä»¥è¿œ½E‹è®¿é—®ï¼Œé™¤éžæ–ÒŽ(gu¨©)³•åæ˜¯ä»¥ä¸‹åˆ’线开å§?或è€?æ–ÒŽ(gu¨©)³•æ˜?private çš„ï¼ˆåªæœ‰ php5 支æŒåQ?ã€?/p>

 



]]>
Flex应用å¯åŠ¨èƒŒåŽçš„æ•…äº?/title><link>http://www.aygfsteel.com/usherlight/archive/2007/04/17/111365.html</link><dc:creator>云自无心水自é—?/dc:creator><author>云自无心水自é—?/author><pubDate>Tue, 17 Apr 2007 09:47:00 GMT</pubDate><guid>http://www.aygfsteel.com/usherlight/archive/2007/04/17/111365.html</guid><wfw:comment>http://www.aygfsteel.com/usherlight/comments/111365.html</wfw:comment><comments>http://www.aygfsteel.com/usherlight/archive/2007/04/17/111365.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/usherlight/comments/commentRss/111365.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/usherlight/services/trackbacks/111365.html</trackback:ping><description><![CDATA[<p>首先介ç»ä¸€ä¸‹SystemManager. SystemManager是Flex应用的主控è€? 它控制ç€åº”用½H—å£, Application实例, 弹出½H—å£, cursors, òq¶ç®¡ç†ç€ApplicationDomain中的¾c? SystemManager是FlashPlayer实例化的½W¬ä¸€ä¸ªç±», 它存储了ä¸Õdº”用窗å£çš„大å°å’Œä½¾|®ä¿¡æ? ä¿å­˜å…¶å­¾l„äšg比如:‹¹®åŠ¨å¼¹å‡º½H—å£å’Œæ¨¡æ€çª—å£çš„痕迹. 通过SystemManagerå¯ä»¥èŽ·å¾—å†…åµŒå­—ä½“,æ ·å¼å’Œdocument对象. <br>自定义的å¯è§†åŒ–组ä»?UIComponent的孾c?åªæœ‰åœ¨è°ƒç”¨è¿‡addChild()å? æ‰ä¼šæœ‰ä¸€ä¸ªSystemManager赋给他们, 之剿˜¯Null. 所以在自定义å¯è§†åŒ–¾l„äšg的构造函æ•îC¸­ä¸è¦ä½¿ç”¨SystemManager.</p> <p>通常, Applicationå¯¹è±¡åˆ›å¾æ—? å‘生如下事äšg:<br>1. 实例化Application对象<br>2. åˆå§‹åŒ–Application.systemManager<br>3. Application在åˆå§‹åŒ–˜q‡ç¨‹ä¹‹å‰, ‹z‘֑预åˆå§‹åŒ–事äšg.<br>4. 调用createChild(). 此时, 所有应用组件被创å¾, 所有组件的createChild()被调ç”?<br>5. Application‹z‘Ö‘åˆå§‹åŒ–事ä»? 表明所有的¾l„äšgåˆå§‹åŒ–完æ¯?<br>6. ‹z‘Ö‘creationComplete事äšg<br>7. Application对象æ·ÕdŠ åˆ°æ˜¾½Cºåˆ—表中<br>8. ‹z‘Ö‘applicationComplete事äšg</p> <p>大多数情况下, 我们使用<mx:Application>æ¥åˆ›å»ºapplication对象, 但如果ä‹É用ActionScriptæ¥åˆ›å»ºçš„è¯? é‚£ä¹ˆå»ø™®®ä¸è¦åœ¨application的构造函æ•îC¸­åˆ›å¾¾l„äšg, 推è在crateChildren函数ä¸? ä¸»è¦æ˜¯ä»Žæ€§èƒ½æ–šw¢è€ƒè™‘.<br><br>Flash包å«çš„æ˜¯ä¸€ä¸ªæ—¶é—´çº¿ä¸Šçš„多个å¸? 而Flexçš„SWFåªåŒ…å?个å“á. SystemManager, Preloader, DownloadProgressBar和少é‡å·¥å…ïL(f¨¥ng)±»éƒ½åœ¨½W¬ä¸€å¸? 剩下的包括应用代ç ? 内嵌资æºå…¨éƒ½åœ¨ç¬¬äºŒå“áä¸? 当Flash Player下è²ä¸‹è²SWFæ—? åªè¦æŽ¥æ”¶åˆ°ç¬¬ä¸€å¸§å†…­‘›_¤Ÿçš„æ•°æ? ž®×ƒ¼šå®žä¾‹åŒ–SystemManager, 由它æ¥åˆ›å»ºPreloader, ç„¶åŽåˆ›å¾DownloadProgressBar, ˜q™ä¸¤ä¸ªå¯¹è±¡ä¼šå¯Ÿçœ‹å‰©ä½™å­—节的传输过½E? 当第一帧的所有字节传输完毕åŽ, SystemManagerå‘é€enterFrame到第二å“á, ç„¶åŽæ˜¯å…¶ä»–事ä»? 最åŽApplication对象‹z‘Ö‘applicationComplete事äšg.<br></p><img src ="http://www.aygfsteel.com/usherlight/aggbug/111365.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/usherlight/" target="_blank">云自无心水自é—?/a> 2007-04-17 17:47 <a href="http://www.aygfsteel.com/usherlight/archive/2007/04/17/111365.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>Flex中一个动æ€ä¿®æ”¹Tree节点标签的例å­?/title><link>http://www.aygfsteel.com/usherlight/archive/2007/04/15/110820.html</link><dc:creator>云自无心水自é—?/dc:creator><author>云自无心水自é—?/author><pubDate>Sun, 15 Apr 2007 12:50:00 GMT</pubDate><guid>http://www.aygfsteel.com/usherlight/archive/2007/04/15/110820.html</guid><wfw:comment>http://www.aygfsteel.com/usherlight/comments/110820.html</wfw:comment><comments>http://www.aygfsteel.com/usherlight/archive/2007/04/15/110820.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/usherlight/comments/commentRss/110820.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/usherlight/services/trackbacks/110820.html</trackback:ping><description><![CDATA[<p>一个动æ€ä¿®æ”¹Tree节点标签的例å­?br></p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000"><?</span><span style="COLOR: #000000">xml version</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">1.0</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> encoding</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">utf-8</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">?></span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">mx:Application xmlns:mx</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">http://www.adobe.com/2006/mxml</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> layout</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">vertical</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">  horizontalAlign</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">left</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br>    creationComplete</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">initApp()</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">mx:Script</span><span style="COLOR: #000000">><!</span><span style="COLOR: #000000">[CDATA[<br>  [Bindable]</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> var _xmlData:XML;<br>  [Bindable]</span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000"> var _xmlCur:XML;<br> <br>  </span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000"> function initApp():</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"><br>  {<br>    </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">set the test data</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">    _xmlData </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"><br>      </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">node label</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Mail Box</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br>        </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">node label</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Inbox</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/></span><span style="COLOR: #000000"><br>        </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">node label</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Deleted mail</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/></span><span style="COLOR: #000000"><br>        </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">node label</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Personal</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/></span><span style="COLOR: #000000"><br>        </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">node label</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Professional</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/></span><span style="COLOR: #000000"><br>        </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">node label</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Spam</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/></span><span style="COLOR: #000000"><br>        </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">node label</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Sent</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/></span><span style="COLOR: #000000"><br>      </span><span style="COLOR: #000000"></</span><span style="COLOR: #000000">node</span><span style="COLOR: #000000">></span><span style="COLOR: #000000">                                             <br><br>    myTree.selectedItem </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> myTree.dataProvider[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">];        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">select the first node</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">    callLater(expandTreeNode, [myTree.selectedItem]);    </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">use callLater to expand that node</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">  }</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">initApp</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000"> <br>  </span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000"> function expandTreeNode(myXMLNode:XML):</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">{<br>    myTree.expandChildrenOf(myXMLNode,</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">);              </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">expand the node</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">    _xmlCur </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> XML(myTree.selectedItem);                   </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">set the bindable variable</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">  }<br> <br>  </span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000"> function oChangeTree(oEvent:Event):</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"><br>  {<br>    _xmlCur </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> XML(oEvent.target.selectedItem);            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">set the bindable variable</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">  }</span><span style="COLOR: #008000">//<br></span><span style="COLOR: #000000"> <br>  </span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000"> function updateNode(oEvent:Event):</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"><br>  {<br>    var xmlSelected:XML </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> XML(myTree.selectedItem)        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">get a reference to the selected node</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">    xmlSelected.@label </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> tiLabel.text;                    </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">set the label attribute</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">  }</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">updateNode</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">   <br>    <br>]]</span><span style="COLOR: #000000">></</span><span style="COLOR: #000000">mx:Script</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"> <br>  </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">mx:Label text</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Update selected Node label</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">/></span><span style="COLOR: #000000"><br>  </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">mx:TextInput id</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">tiLabel</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> text</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">{_xmlCur.@label}</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> change</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">updateNode(event)</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">/></span><span style="COLOR: #000000"><br>  </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">mx:HBox</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br>    </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">mx:Tree id</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">myTree</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> width</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">200</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> height</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">200</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> labelField</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">@label</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br>        showRoot</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">true</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br>        dataProvider</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">{_xmlData}</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br>        change</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">oChangeTree(event)</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">/></span><span style="COLOR: #000000"><br> </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">mx:DataGrid id</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">dg</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> dataProvider</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">{_xmlData.node}</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">  </span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br>    </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">mx:columns</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br>      </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">mx:Array</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br>        </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">mx:DataGridColumn headerText</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Name</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> dataField</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">@label</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">  </span><span style="COLOR: #000000">/></span><span style="COLOR: #000000"><br>       </span><span style="COLOR: #000000"></</span><span style="COLOR: #000000">mx:Array</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br>    </span><span style="COLOR: #000000"></</span><span style="COLOR: #000000">mx:columns</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br>  </span><span style="COLOR: #000000"></</span><span style="COLOR: #000000">mx:DataGrid</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br>  </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">mx:Label text</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">{_xmlCur.@label}</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">/></span><span style="COLOR: #000000"><br>  </span><span style="COLOR: #000000"></</span><span style="COLOR: #000000">mx:HBox</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br>      <br></span><span style="COLOR: #000000"></</span><span style="COLOR: #000000">mx:Application</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br></span></div> <p><br><br></p> <p>应用中主è¦åŒ…å?个组ä»? 一个TextInput, 一个Tree, 一个DataGrid, 一个Label<br>1. 先看Tree, Tree使用_xmlDataä½œäØ“æ•°æ®æº? 定义一个change事äšg处ç†å‡½æ•°, ž®†å½“å‰èŠ‚ç‚¹å­˜å‚¨åˆ°_xmlCurå˜é‡ä¸?<br>2. TextInputçš„æ•°æ®æºž®±æ˜¯_xmlCurçš„label属æ€? 也就是Tree当å‰èŠ‚ç‚¹çš„æ ‡½{? 他也定义了一个change事äšg处ç†å‡½æ•°, 在TextInputä¸­çš„æ–‡æœ¬æ”¹å˜æ—? ž®†æ–°çš„æ–‡æœ¬èµ‹å€¼ç»™Tree当å‰èŠ‚ç‚¹çš„æ ‡½{? 也就是改å˜å½“å‰Tree节点的标½{‘Ö€? 值得注æ„çš„æ˜¯èµ‹å€¼åÆˆä¸æ˜¯ç›´æŽ¥¾l™Tree中或者节点中的æŸä¸ªå±žæ€? è€Œæ˜¯é€šè¿‡ä¿®æ”¹æ•°æ®æºXmlçš„å€¼æ¥æ”¹å˜çš?<br>3. DataGridçš„ä‹É用显½CÞZº†å¦‚何在DataGrid中展½CºXml的技å·?<br>4. 最åŽä¸€ä¸ªLabelåªæ˜¯½Ž€å•的昄¡¤ºå½“å‰èŠ‚ç‚¹çš„æ ‡½{‘Ö€? 与TextInputçš„æ–‡æœ¬ä¿æŒåŒæ­?/p><img src ="http://www.aygfsteel.com/usherlight/aggbug/110820.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/usherlight/" target="_blank">云自无心水自é—?/a> 2007-04-15 20:50 <a href="http://www.aygfsteel.com/usherlight/archive/2007/04/15/110820.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>æ•´ç†äº†ä¸€ä¸‹Cairngorm 2.1版本的新å˜åŒ–http://www.aygfsteel.com/usherlight/archive/2007/04/10/109722.html云自无心水自é—?/dc:creator>云自无心水自é—?/author>Tue, 10 Apr 2007 11:48:00 GMThttp://www.aygfsteel.com/usherlight/archive/2007/04/10/109722.htmlhttp://www.aygfsteel.com/usherlight/comments/109722.htmlhttp://www.aygfsteel.com/usherlight/archive/2007/04/10/109722.html#Feedback0http://www.aygfsteel.com/usherlight/comments/commentRss/109722.htmlhttp://www.aygfsteel.com/usherlight/services/trackbacks/109722.html1. Caringorm2.1的包中增加了完整的ASDoc文档

2. 增加LocaleåQŒé”™è¯¯ä¿¡æ¯çš„国际化的处ç†ã€?br>æ·ÕdŠ äº†ä¸€ä¸ªPropertiesæ–‡äšgåQ?br>æ·ÕdŠ äº†com.adobe.cairngorm.CairngormMessageCodeså’Œcom.adobe.cairngorm.CairngormError两个¾c»ï¼Œå…¶ä¸­CairngormMessageCodes用于定义Propertiesæ–‡äšg中的键å€û|¼Œè€ŒCairngormErrorž®è£…了ErroråQŒåœ¨åº”用执行的过½E‹ä¸å†ç›´æŽ¥æŠ›å‡ºErroråQŒè€ŒæŠ›å‡ÞZ¸€ä¸ªCairngormErroråQŒå…¶ä¸­å¸¦ä¸€ä¸ªå‚数就是MessageCodeåQŒæ ¹æ®MessageCode到Propertiesæ–‡äšg中å–出相应的消æ¯ã€?/p>

3. 在business中,æ·ÕdŠ äº†ä¸€ä¸ªIServiceLocator的接å?br>ServiceLocator实现IServiceLocator接å£åQŒç›¸æ¯”以å‰å¢žåŠ äº†ä»¥ä¸‹å‡ ä¸ªæ–ÒŽ(gu¨©)³•åQ?br>aã€public function getRemoteObject( serviceId : String ) : RemoteObject // Return the RemoteObject for the given service id.
bã€public function getHTTPService( serviceId : String ) : HTTPService // Return the HTTPService for the given service id.
cã€public function getWebService( serviceId : String ) : WebService // Return the WebService for the given service id.
dã€public function getConsumer( serviceId : String ) : Consumer  // Return the message Consumer for the given service id.
eã€public function getProducer( serviceId : String ) : Producer // Return the message Produce for the given service id.
fã€public function getDataService( serviceId : String ) : DataService // Return the DataService for the given service id.
gã€public function setCredentials( username : String, password : String ) : void // Set the credentials for all registered services. Note that services that use a proxy or a third-party adapter to a remote endpoint will

原æ¥çš„getServiceå’ŒgetInvokerServiceæ–ÒŽ(gu¨©)³•å·²ç»åºŸå¼ƒåQŒæ”¹ä¸ÞZº†getRemoteObject

4. 在Command中,增加了ICommand接å£åQŒåŽŸæ¥çš„Command接壾l§æ‰¿ICommand

5. 在VO中,增加了IValueObject接å£åQŒåŽŸæ¥çš„ValueObject¾l§æ‰¿IValueObject接å£

ä¸Šé¢æ·ÕdŠ çš„å‡ ä¸ªæŽ¥å£ï¼Œé™¤äº†IServiceLocator相较2.0版本有了较大的å˜åŒ–,增加了一些方法,其他的几个接å£ï¼Œä¾æˆ‘所è§ï¼Œ¾U¯çÑa是æ¢äº†å字而已ã€?/p>

 



]]>
FDSåQˆFlex Data ServiceåQ‰æ”¹å䨓LiveCycle Data Servicehttp://www.aygfsteel.com/usherlight/archive/2007/04/04/108511.html云自无心水自é—?/dc:creator>云自无心水自é—?/author>Wed, 04 Apr 2007 11:07:00 GMThttp://www.aygfsteel.com/usherlight/archive/2007/04/04/108511.htmlhttp://www.aygfsteel.com/usherlight/comments/108511.htmlhttp://www.aygfsteel.com/usherlight/archive/2007/04/04/108511.html#Feedback0http://www.aygfsteel.com/usherlight/comments/commentRss/108511.htmlhttp://www.aygfsteel.com/usherlight/services/trackbacks/108511.html˜q™ä¸ªå字的改å˜å应出FDS的一个é‡è¦çš„æ‰©å±•åQšLiveCycle Data Service与Adobeå…¶ä»–LiveCycleæœåŠ¡äº§å“的整åˆå°†æ›´ç´§å¯†ã€?br>
LiveCycel Data Servicež®†æœ‰ä¸€äº›é‡è¦çš„æ–°çš„å˜åŒ–åQ?br>1. æå‡æ•°æ®æœåŠ¡æ¶ˆæ¯çš„æ€§èƒ½
2. 与PDFã€J2EE门户½{‰çš„集æˆ
3. å¦å¤–˜q˜æœ‰ä¸€äº›é’ˆå¯ÒŽ(gu¨©)œªæ¥Apollo应用的很é‡è¦çš„功能,比如åQšæœ¬åœ°æ•°æ®ç¼“存和脱机消毽{‰ã€?

下è²åœ°å€åQ?a >http://labs.adobe.com/technologies/livecycle_dataservices2_5/

]]>
Flex.orgæ­£å¼æ”¹ç‰ˆäº?/title><link>http://www.aygfsteel.com/usherlight/archive/2007/04/04/108508.html</link><dc:creator>云自无心水自é—?/dc:creator><author>云自无心水自é—?/author><pubDate>Wed, 04 Apr 2007 10:59:00 GMT</pubDate><guid>http://www.aygfsteel.com/usherlight/archive/2007/04/04/108508.html</guid><wfw:comment>http://www.aygfsteel.com/usherlight/comments/108508.html</wfw:comment><comments>http://www.aygfsteel.com/usherlight/archive/2007/04/04/108508.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/usherlight/comments/commentRss/108508.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/usherlight/services/trackbacks/108508.html</trackback:ping><description><![CDATA[æ–°çš„Flex.org把内容分æˆ?大部åˆ?br>左边4个,分别是:Flex实例åQŒFlex下è²ã€Flex½C‘ÖŒºã€å¸®åŠ?br>匙¾¹ä¸€ä¸ªå¤§å—是åQšFlex介ç»å’ŒFlex盛会ã€?br><br>整体感觉比以å‰è¦æ¸…新爽æ´ã€?br><br>最上é¢çš„一排èœå•é¡¹å¥½åƒæ¯”以å‰è¦å¤šã€?br>有åšå®¢ã€ç¤¾åŒºã€æ–‡æ¡£ã€ä¸‹è½½ã€å·¥ä½œã€æ¼”½Cºã€æ”¯æŒã€?img src ="http://www.aygfsteel.com/usherlight/aggbug/108508.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/usherlight/" target="_blank">云自无心水自é—?/a> 2007-04-04 18:59 <a href="http://www.aygfsteel.com/usherlight/archive/2007/04/04/108508.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>Flex lib å‡ÞZº†æ–°ç‰ˆæœ?/title><link>http://www.aygfsteel.com/usherlight/archive/2007/03/30/107459.html</link><dc:creator>云自无心水自é—?/dc:creator><author>云自无心水自é—?/author><pubDate>Fri, 30 Mar 2007 05:23:00 GMT</pubDate><guid>http://www.aygfsteel.com/usherlight/archive/2007/03/30/107459.html</guid><wfw:comment>http://www.aygfsteel.com/usherlight/comments/107459.html</wfw:comment><comments>http://www.aygfsteel.com/usherlight/archive/2007/03/30/107459.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/usherlight/comments/commentRss/107459.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/usherlight/services/trackbacks/107459.html</trackback:ping><description><![CDATA[Flexlib 1.5<br />下è²åœ°å€åQ?br /><a >http://flexlib.googlecode.com/files/flexlib-.1.5.zip</a><br /><br />é‡Œé¢æœ?个目录:<br />bin<br />src<br />docs<br />examples<br /><br />包å«åQ?br />AdvancedForm<br />ConvertibleTreeList<br />DragCanvas<br />DraggableSlider<br />HAccordion<br />ImageMap<br />PromptingTextinput<br />ScrollableMenus<br />SuperTabNavigator<br />TreeGrid<br />VerticalMenuBar<br />˜q™äº›å†…容<img src ="http://www.aygfsteel.com/usherlight/aggbug/107459.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/usherlight/" target="_blank">云自无心水自é—?/a> 2007-03-30 13:23 <a href="http://www.aygfsteel.com/usherlight/archive/2007/03/30/107459.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>一个Cairngorm的代ç ç”Ÿæˆå™¨http://www.aygfsteel.com/usherlight/archive/2007/03/24/106000.html云自无心水自é—?/dc:creator>云自无心水自é—?/author>Fri, 23 Mar 2007 16:13:00 GMThttp://www.aygfsteel.com/usherlight/archive/2007/03/24/106000.htmlhttp://www.aygfsteel.com/usherlight/comments/106000.htmlhttp://www.aygfsteel.com/usherlight/archive/2007/03/24/106000.html#Feedback0http://www.aygfsteel.com/usherlight/comments/commentRss/106000.htmlhttp://www.aygfsteel.com/usherlight/services/trackbacks/106000.htmlCaringen是一个Eric Feminella自己开å‘的一个å°å·¥å…·. 现在他把˜q™ä¸ªå·¥å…·å…׃ín出æ¥.
Cairngenòq¶ä¸èƒ½è®©æ‰€æœ‰çš„äºø™§£å†Ïx‰€æœ‰çš„问题, å®ƒåªæ˜¯ç®€å•地加快开å‘çš„˜q‡ç¨‹.

Cairngen是一个Caringorm的代ç ç”Ÿæˆå™¨, 它ä‹Éå¾—å¼€å‘者å¯ä»¥å¾ˆæ–¹ä¾¿åœ°ç”ŸæˆCairngorm™å¹ç›®çš„结构框æž? 包括: Cairngorm™å¹ç›®çš„目录结æž? 一个缺çœçš„ModelLocator, Controller, ServiceLocator. Cairngen也å¯ä»¥ç”ŸæˆEvent, Command, Delegate¾c?

Cairngen使用Flex2å’ŒPHP5.2.0å¼€å? 利用了AMFPHP. 安装˜q‡ç¨‹å分方便. ä½ å¯ä»¥åœ¨Flex Builderçš„æµè§ˆå™¨ä¸­ç›´æŽ¥è¿è¡ŒCairngenæ¥å¿«é€Ÿæ–¹ä¾¿åœ°ç”ŸæˆCairngorm的类.

Cairngen使用'步骤(Sequence)'æ¥æ˜q°Event, Command, Delegate¾cÖM¹‹é—´çš„关系.
在Cairngen中åªè¦å‘½å一ä¸?步骤',ç‚¹å‡»ä¸€ä¸‹ç”ŸæˆæŒ‰é’®å°±å¯ä»¥ç”Ÿæˆä¸€ä¸?步骤'. ç„¶åŽåˆäh–°ä¸€ä¸‹Flex™å¹ç›®, 生æˆçš„ç±»ž®±O(ji¨¡n)Käº? 在一些特ŒDŠçš„æƒ…况ä¸? ä½ ä¸å¸Œæœ›æ·ÕdŠ Delegate¾c? 那么你å¯ä»¥é€‰æ‹©æŽ’除Delegate¾cÈš„生æˆ, ˜q™æ ·çš„è¯, Cairngenåªç”ŸæˆEventå’ŒCommand.
生æˆçš„Command¾cÕd®žçްCairngormçš„Command接å£, 但ä¸å®žçްIResponder接å£. Cairngen˜q˜èƒ½å¤Ÿæ­£¼‹®åœ°ž®†äº‹ä»¶å¼ºåˆ¶æ€§è{åŒ?casting)为Coand中的¾cÕdž‹, òq¶import所有相关的¾c?

¾pÈ»Ÿéœ€æ±?
1. 了解AMFPHP, Apache2.0.59å’ŒPHP5.2.0, 在ä‹É用Cairngen之å‰è¦æ±‚先安装AMFPHP, 而且gateway.php的访问虚拟目录应该如下设¾|? http://localhost/amfphp/gateway.php. åœ?.0版正å¼å‘布åŽ, ˜q™ä¸ªURLå¯ä»¥è‡ªç”±é…ç½®.
2. ˜q˜éœ€è¦å®‰è£…Flex2, PHP, ä½ å¯ä»¥ç”¨WAMP5æ¥é›†æˆå®‰è£…Apache5.5å’ŒPHP. 安装好PHPå’ŒAMFPHPå? ž®±å¯ä»¥è§£åŽ‹ç¾ƒCairngen Alpha 1. 把services目录å¤åˆ¶åˆ°amfphp的根目录ä¸? ç„¶åŽå¤åˆ¶cairgen-ui目录到apacheçš„www根目录下.

使用:
安装好PHPå’ŒAMFPHPå? ž®±å¯ä»¥å¼€å§‹ä‹É用Cairngenäº? 打开‹¹è§ˆå™¨è¾“å…?a href="http://localhost/cairngen-ui/Cairngen.html">http://localhost/cairngen-ui/Cairngen.html打开生æˆå™¨çš„囑ÖŞ界é¢. 创å¾Cairgen™å¹ç›®:
点击 begin
¾l™ä½ çš„Cairngen™å¹ç›®å‘½å. ˜q™ä¸ªå称与Flex™å¹ç›®çš„å¿U°ç›¸å? 选择你的Cairngorm的版æœ? 选择Flex™å¹ç›®çš„èµ\å¾? 讄¡½®™å¹ç›®ä¸­åŒ…路径(比如: com.domain.projectname). 最å? ‹‚€éªŒä¸€ä¸‹è¾“入内å®? 点击"Create Project". åˆäh–°Flex™å¹ç›®æŸ¥çœ‹¾~ºçœçš„Cairngorm™å¹ç›®¾l“æž„, ModelLocator, Serviceå’ŒController¾c?

创å¾"步骤":

首先是给步骤命å, ç„¶åŽé€‰æ‹©æ˜¯å¦è¦ç”ŸæˆDelegate¾c? 点击生æˆ, òq¶åˆ·æ–°Flex™å¹ç›®. å¯ä»¥å‘现需è¦çš„¾cÕd·²¾l生æˆå®Œæ¯•了. çŽ°åœ¨éœ€è¦æŠŠå®ƒä»¬æ·ÕdŠ åˆ°Controllerä¸?
接下æ¥ç¼–è¾‘æ¨¡æ¿æ–‡ä»? ä½ å¯ä»¥ä¿®æ”ÒŽ(gu¨©)¨¡æ¿æ–‡ä»?.tpl)æ¥å®žçŽîC½ çš„特定的Cairngorm需æ±? æ¨¡æ¿æ–‡äšgåœ?amfphp\services\com\ericfeminella\cairngen\templates目录ä¸?

生æˆå™¨ä¸‹è½½åœ°å€: http://code.ericfeminella.com/cairngen/Cairngen%20Alpha%201%20PreRelease.zip



]]>
FlexLib åQ?FlexBoxhttp://www.aygfsteel.com/usherlight/archive/2007/03/09/102779.html云自无心水自é—?/dc:creator>云自无心水自é—?/author>Fri, 09 Mar 2007 03:46:00 GMThttp://www.aygfsteel.com/usherlight/archive/2007/03/09/102779.htmlhttp://www.aygfsteel.com/usherlight/comments/102779.htmlhttp://www.aygfsteel.com/usherlight/archive/2007/03/09/102779.html#Feedback0http://www.aygfsteel.com/usherlight/comments/commentRss/102779.htmlhttp://www.aygfsteel.com/usherlight/services/trackbacks/102779.html
最˜q‘Adobeå…¬å¸çš„一批äh在Googleçš„Code Project上å‘布了FlexLibåQŒä¸€ä¸ªå¼€æºçš„Flex2¾l„äšg库ã€?br />现有的组件包括:
   ConvertibleTreeList, 
   Draggable Slider, 
   PromptingTextInput, 
   Scrollable Menu Controls, 
   SuperTabNavigator, 
   Alternative Scrolling Canvases, 
   Horizontal Accordion

大家å¯ä»¥åŽÈœ‹çœ‹ã€?br />
å¦å¤–åQŒè¿˜æœ‰ä¸ªäºÞZ¹Ÿå‘布了一个Flex2 ¾l„äšg目录åQ?FlexBox。这个网ç«?br />



]]>
数殾l‘å®šçš„å°æŠ€å·?Flex Data Binding Tiphttp://www.aygfsteel.com/usherlight/archive/2007/03/08/102702.html云自无心水自é—?/dc:creator>云自无心水自é—?/author>Thu, 08 Mar 2007 14:58:00 GMThttp://www.aygfsteel.com/usherlight/archive/2007/03/08/102702.htmlhttp://www.aygfsteel.com/usherlight/comments/102702.htmlhttp://www.aygfsteel.com/usherlight/archive/2007/03/08/102702.html#Feedback0http://www.aygfsteel.com/usherlight/comments/commentRss/102702.htmlhttp://www.aygfsteel.com/usherlight/services/trackbacks/102702.html 

çŽ°åœ¨æœ‰ä¸€ä¸ªæ–¹ä¾¿çš„åšæ³•æ¥æ ¹æ®é€‰æ‹©Enable/Disable控äšg。比如:有一个DataGrid和数个æ“作数æ®çš„æŒ‰é’®åQŒå½“选中æŸè¡Œæ˜¯æ¿€‹zÕd…¶ä¸­ä¸€ä¸ªæŒ‰é’®ï¼Œé€‰ä¸­å¦ä¸€è¡Œæ—¶åQŒæ¿€‹zÕd…¶ä¸­å¦ä¸€ä¸ªæŒ‰é’®ï¼Œ½{‰ç­‰ã€?/p>

é€šå¸¸çš„åšæ³•是写一大堆的if else语å¥åQŒæˆ–者是讄¡½®ä¸€å †å˜é‡ç»‘定到按钮上,然åŽåœ¨ä»£ç ä¸­è®„¡½®˜q™äº›å˜é‡çš„å€û|¼Œæ¯”如åQ?/p>

[Bindable] private var somethingSelected:Boolean = false;
<mx:Button label="Publish" click="publishItem()" enabled="{somethingSelected}" />

˜q™æ˜¯ä¸€ä¸ªæœ‰ç›Šçš„ž®è¯•ã€‚æ‰€æœ‰çš„ä¾èµ–于DataGrid状æ€çš„æŽ§äšg都绑定一个å˜é‡ã€‚改å˜å˜é‡çš„å€¼å°±æ”¹å˜æŽ§äšgçš„enabled状æ€ã€‚但是你˜q˜éœ€è¦ç¡®å®šæ”¹å˜å˜é‡å€¼çš„æ—¶æœºã€‚比如:

private function publishItem() : void {
     // get the selected item
     // publish it
     grid.selectedItem = -1; // clear the selection
     somethingSelected = false;
}

åœ¨å¤æ‚的情况下,å‡è®¾æœ‰å¦ä¸€ä¸ªæŒ‰é’®éœ€è¦åœ¨é€‰ä¸­æŸä¸ªç‰¹å®šå€¼æ—¶è¢«æ¿€‹z…R€‚那么你ä¸ä»…需è¦è€ƒè™‘选中对应的那个å˜é‡ï¼Œ˜q˜éœ€è¦è€ƒè™‘其他按钮的情å†üc€‚也ž®±æ˜¯è¯ß_¼Œåœ¨publishItem函数中你˜q˜éœ€è¦è®¾¾|®å…¶ä»–å˜é‡çš„倹{€?/p>

ä¸€ä¸ªæ›´æ–¹ä¾¿çš„åšæ³•是˜q™æ ·çš„。现在我们Publish按钮和somethingSelectedå˜é‡˜q›è¡Œ¾l‘定。我们还需è¦åšçš„æ˜¯æŠŠsomethingSelectedå˜é‡ä¸ŽDataGrid的选中状æ€è¿›è¡Œå…³è”。对此,我们å¯ä»¥ä½¿ç”¨<mx:Binding>标签ã€?/p>

<mx:Binding source="grid.selectedIndex >= 0" destination="somethingSelected" />

˜q™æ ·somethingSelectedçš„å€ég¸ŽDataGrid的选中状æ€å°±ç´§å¯†åœ°è”¾p»è“væ¥äº†ã€‚当选中了DataGridä¸­çš„æŸæ¡æ•°æ®æ—Óž¼Œæ‰€æœ‰è¿›è¡Œenabled="{somethingSelected}"¾l‘定的按钮就被激‹z…R€?lt;mx:Binding>标签的source属性ä¸éœ€è¦ä¸€å®šæ˜¯ä¸€ä¸ªå˜é‡ï¼Œå®Œå…¨å¯ä»¥æ˜¯ä¸€ä¸ªè¡¨è¾‘Ö¼ã€?/p>

比如½E微夿‚一点的一个例å­ï¼š

<mx:Binding source="grid.selectedItem.code == 1" destination="codeOnePicked" />

˜q™æ ·åQŒå½“DataGrid选中行的code字段的å€égØ“1æ—Óž¼Œå˜é‡codeOnePickedçš„å€ÆD¢«è®„¡½®ä¸ºtrueã€?br />mxml中å¯ä»¥å¦‚下定义:

<mx:CheckBox label="Code One?" selected="{codeOnePicked}" />
<mx:Button label="Publish" enabled="{somethingSelected && !codeOnePicked}" />

˜q™æ ·åQŒå½“选中行的code字段å€égØ“1æ—Óž¼Œä¸Šé¢çš„å¤é€‰æ¡†è¢«æ¿€‹z»ï¼Œè€Œä¸‹é¢çš„æŒ‰é’®æ— æ•ˆã€?/p>

]]>
å¼€æºçš„FDS出现http://www.aygfsteel.com/usherlight/archive/2007/03/01/101318.html云自无心水自é—?/dc:creator>云自无心水自é—?/author>Thu, 01 Mar 2007 14:22:00 GMThttp://www.aygfsteel.com/usherlight/archive/2007/03/01/101318.htmlhttp://www.aygfsteel.com/usherlight/comments/101318.htmlhttp://www.aygfsteel.com/usherlight/archive/2007/03/01/101318.html#Feedback0http://www.aygfsteel.com/usherlight/comments/commentRss/101318.htmlhttp://www.aygfsteel.com/usherlight/services/trackbacks/101318.html http://www.graniteds.org/confluence/display/INTRO/Granite+Data+Services+Overview

支æŒAMF3

  • 支æŒAMF3
  • EJB3æœåŠ¡çš„é€æ˜Žexternalization机制åQŒå‚è§Flex2çš„å¼€å‘æ–‡æ¡?/li>

    http://www.adobe.com/livedocs/flex/201/html/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Book_Parts&file=ent_services_config_097_11.html
    在Flexçš„åºåˆ—化和ååºåˆ—化过½E‹ä¸­åQŒåªèƒ½ä¼ é€’public的,éžé™æ€çš„属性,如果è¦åºåˆ—化此部分内容在Flex与Java间传递,必须使用externalization机制

  • ActionScript3çš„Beansçš„Lazy Initialize
  • EJB3实体Bean到ActionScript3的类的代ç ç”Ÿæˆï¼ˆè®¡åˆ’中)
  • POJOæœåŠ¡åQˆè¿œ½E‹è°ƒç”¨ç®€å•Java¾cÈš„公共æ–ÒŽ(gu¨©)³•åQ?/li>
  • 一¾pÕdˆ—Flex¾l„äšgç”¨äºŽå¤æ‚的数æ®ç»“构(计划中)ã€?/li>

    ]]>Flex的事件æµhttp://www.aygfsteel.com/usherlight/archive/2007/02/11/99340.html云自无心水自é—?/dc:creator>云自无心水自é—?/author>Sun, 11 Feb 2007 15:50:00 GMThttp://www.aygfsteel.com/usherlight/archive/2007/02/11/99340.htmlhttp://www.aygfsteel.com/usherlight/comments/99340.htmlhttp://www.aygfsteel.com/usherlight/archive/2007/02/11/99340.html#Feedback1http://www.aygfsteel.com/usherlight/comments/commentRss/99340.htmlhttp://www.aygfsteel.com/usherlight/services/trackbacks/99340.htmlFlex是一个事仉™©±åŠ¨çš„¾~–程模型, ä»ÖM½•事情的å‘ç”? 其背åŽå¿…然存在一个事ä»? 而开å‘者第一‹Æ¡çœ‹åˆ°MXMLæ—? 很难体会åˆîC¸€ä¸ªXml标记的应用的事äšg‹¹å’Œå®žä¾‹åŒ–的生命周期. ˜q™ä¸ªå¯¹äºŽHTMLå’ŒFlash的开å‘者尤其会感到困惑, å› äØ“å…¶ç†Ÿæ‚(zh¨¨n)‰çš„æ–¹å¼ä¸ŽFlex的一点也ä¸ç›¸ä¼? HTML的实例化是从上到下的, Flash的执行是从Frame0开始一帧å“á˜q行çš? 而Flexåˆ™åˆæœ‰ä¸å?

    从我们开始学ä¹?f¨¤n)Flexæ—? 我们ž®±éœ€è¦äº†è§£äº‹ä»¶æµå’ŒMXML的实例化. 我éžå¸¸å›°æƒ‘因为我实在难以ç†è§£ä»€ä¹ˆæ ·çš„äº‹ä»¶ä¼šè¢«è§¦å‘æˆ–者事件什么时候会被触å? 关键是è¦ç†è§£äº‹äšg的基¼‹€òq¶äº²è‡ªè§‚察事件æµçš„åˆå§‹åŒ–.


    我们æ¥çœ‹ä¸€ä¸ªç®€å•çš„MXML的应ç”?

    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application
        xmlns:mx="    layout="absolute"
        backgroundGradientColors="[#67cbff, #fcffff]"
        color="#000000"
        fontSize="12"   
        preinitialize="report( event , 'preinitialize' )"
        initialize="report( event , 'initialize' )"
        creationComplete="report( event , 'creationComplete' )"
        applicationComplete="report( event , 'applicationComplete' )"
        >
       
        <mx:Script>
            <![CDATA[   
                       
                [Bindable]
               
                public var outTextData:String="";
               
                public function report( event:Event , value:String ):void
                {
                    outTextData += String( flash.utils.getTimer() ) + 'ms >> '
                    + event.currentTarget + '.' + value + '\n';   
                }
               
            ]]>
        </mx:Script>
       
        <mx:TextArea
            id="outTextArea"
            text="{ outTextData }"
            right="10" left="10" top="50" bottom="10" alpha="0.5"
            wordWrap="false"
            initialize="report( event , 'initialize' )"
            creationComplete="report( event , 'creationComplete' )"
            />
       
        <mx:Button
            y="10" height="30" left="168" width="150"
            id="HelloButton"
            label="Say Hello"
            initialize="report( event , 'initialize' )"
            creationComplete="report( event , 'creationComplete' )"
            rollOver="report( event , 'rollOver' )"
            rollOut="report( event , 'rollOut' )"
            click="report( event , 'click > Hello!' )"
            />
           
        <mx:Button
            id="GoodByeButton"
            label="Say Goodbye"
            y="10" left="10" height="30" width="150" color="#000000"
            initialize="report( event , 'initialize' )"
            creationComplete="report( event , 'creationComplete' )"
            click="report( event , 'click > Goodbye!' )"
            />
           
        <mx:Button
            id="ClearButton"
            label="Clear"
            y="10" left="326" height="30" color="#000000" right="10"       
            initialize="report( event , 'initialize' )"
            creationComplete="report( event , 'creationComplete' )"
            click="outTextData='';report( event , 'click' )"
             />
       
    </mx:Application>


    ˜q™ä¸ªåº”用˜q行æ—? 输出了实例浽E‹å’Œäº‹äšg‹¹? ˜q™æ ¡æˆ‘们ž®Þpƒ½å¤Ÿçœ‹åˆ°æ‰€æœ‰äº‹ä»¶çš„触呙åºåº. å¯ä»¥å‘现应用å¯åЍå? 事äšgçš„é¡ºåºæ˜¯ä¸€å®šçš„. 䏋颿˜¯è¾“出的内容:

    167ms >> EventFlow0.preinitialize
    183ms >> EventFlow0.outTextArea.initialize
    187ms >> EventFlow0.HelloButton.initialize
    188ms >> EventFlow0.GoodByeButton.initialize
    189ms >> EventFlow0.ClearButton.initialize
    189ms >> EventFlow0.initialize
    243ms >> EventFlow0.outTextArea.creationComplete
    243ms >> EventFlow0.HelloButton.creationComplete
    243ms >> EventFlow0.GoodByeButton.creationComplete
    244ms >> EventFlow0.ClearButton.creationComplete
    244ms >> EventFlow0.creationComplete
    246ms >> EventFlow0.applicationComplete

    一旦applicationComplete事äšg触å‘å? ¾l„äšgž®×ƒ¼šåœ¨é¼ æ ‡äº‹ä»¶æ´¾å‘åŽè§¦å‘自己的事ä»?

    1807ms >> EventFlow0.HelloButton.rollOver
    2596ms >> EventFlow0.HelloButton.rollOut
    2954ms >> EventFlow0.HelloButton.rollOver
    3170ms >> EventFlow0.HelloButton.rollOut
    3543ms >> EventFlow0.HelloButton.rollOver
    4052ms >> EventFlow0.HelloButton.click > Hello!
    4267ms >> EventFlow0.HelloButton.click > Hello!
    4474ms >> EventFlow0.HelloButton.click > Hello!
    4569ms >> EventFlow0.HelloButton.rollOut
    4907ms >> EventFlow0.GoodByeButton.click > Goodbye!
    5130ms >> EventFlow0.GoodByeButton.click > Goodbye!

     



    ]]>
    ActionScript3.0/Flex2中的åå°„http://www.aygfsteel.com/usherlight/archive/2007/02/10/99134.html云自无心水自é—?/dc:creator>云自无心水自é—?/author>Sat, 10 Feb 2007 06:32:00 GMThttp://www.aygfsteel.com/usherlight/archive/2007/02/10/99134.htmlhttp://www.aygfsteel.com/usherlight/comments/99134.htmlhttp://www.aygfsteel.com/usherlight/archive/2007/02/10/99134.html#Feedback1http://www.aygfsteel.com/usherlight/comments/commentRss/99134.htmlhttp://www.aygfsteel.com/usherlight/services/trackbacks/99134.html 

    在ActionScript 3中,你会å‘现在flash.utils包中有一¾pÕdˆ—函数æä¾›äº†åž®„的功能。主è¦åŒ…å«ä»¥ä¸‹åŠŸèƒ½ï¼š

        * ¼‹®å®šå¯¹è±¡çš„ç±»
        * 获喾cÈš„æˆå‘˜ã€æ–¹æ³•ã€æž„造函数ã€çˆ¶¾cÈš„ä¿¡æ¯
        * ¼‹®å®šæŽ¥å£å£°æ˜Žçš„常数和æ–ÒŽ(gu¨©)³•
        * 在è¿è¡Œæ—¶æ ÒŽ(gu¨©)®¾cÕd创徾cÈš„实例
        * 在è¿è¡Œæ—¶æ ÒŽ(gu¨©)®æˆå‘˜åç§°èŽ·å–æˆ–者设¾|®å¯¹è±¡æˆå‘˜çš„å€?br />    * 在è¿è¡Œæ—¶æ ÒŽ(gu¨©)®æ–ÒŽ(gu¨©)³•åç§°åQŒè°ƒç”¨å¯¹è±¡çš„æ–ÒŽ(gu¨©)³•

    ä½ å¯ä»¥ä‹É用类ä¼égºŽ"describeType"之类的功能,它返回一个Xml对象。ä‹D一个例å­ï¼š

    package {
        import flash.display.Sprite;
        import flash.utils.describeType;
      
        public class DescribeTypeExample extends Sprite {
            public function DescribeTypeExample() {
                var child:Sprite = new Sprite();
                var description:XML = describeType(child);
                trace(description..accessor.@name.toXMLString());
            }
        }
    }

    如果你想˜q›ä¸€æ­¥ï¼Œæ ÒŽ(gu¨©)®¾cÕd创å¾å¯¹è±¡çš„实例,我们å¯ä»¥ä½¿ç”¨"getDefinitionByName()"

    package {
        import flash.display.DisplayObject;
        import flash.display.Sprite;
        import flash.utils.getDefinitionByName;

        public class GetDefinitionByNameExample extends Sprite {
            private var bgColor:uint = 0xFFCC00;
            private var size:uint = 80;

            public function GetDefinitionByNameExample() {
                var ClassReference:Class = getDefinitionByName(“flash.display.Sprite� as Class;
                var instance:Object = new ClassReference();
                instance.graphics.beginFill(bgColor);
                instance.graphics.drawRect(0, 0, size, size);
                instance.graphics.endFill();
                addChild(DisplayObject(instance));
            }
        }
    }

    ž®½ç®¡˜q™æ˜¯ä¸€äº›éžå¸¸æ–¹ä¾¿çš„æ–ÒŽ(gu¨©)³•åQŒä½†æ˜¯åœ¨FlashPlayer中ä‹É用垮„还是会有许多的é™åˆ¶åQŒå› ä¸ºç¼ºä¹è¿è¡Œæ—¶çš„åŠ¨æ€æºç ç¼–译。上é¢çš„功能对于那些在内建的¾c»ï¼Œæ¯”如åQšSprite¾cÀL¥è¯´æ— ç–‘是有用的,但是对于自定义类æ¥è¯´åQŒæˆ‘们会é‡åˆ°å¾ˆå¤šéºÈƒ¦ã€‚比如:

    package {
        import com.customtypes.string; // Custom String Implementation Class
        import flash.utils.getDefinitionByName;

        public class GetDefinitionByNameExample {
            public function GetDefinitionByNameExample() {
                var ClassReference:Class = getDefinitionByName(“com.customtypes.string� as Class;
                var instance:Object = new ClassReference();
                instance.customParameter = “my parameter�
            }
        }
    }

    ž®½ç®¡æˆ‘们使用了import语å¥åQŒä½†æ˜?getDefinitionByName()"˜q˜æ˜¯ä¼šå¤±è´¥ã€‚原因上é¢å·²¾l说˜q‡äº†åQŒåœ¨˜q行时编译æºä»£ç æ˜¯ä¸å…è®¸çš„ã€‚ä¹Ÿè®æ€»¥åŽå¯ä»¥ã€‚åœ¨ç›®å‰æƒ…况下,è¦å®žçŽîC¸Š˜q°åŠŸèƒ½ï¼Œè‡›_°‘è¦åœ¨ä»£ç ä¸­åˆå§‹åŒ–一个类的实例。也ž®±æ˜¯å£°æ˜Žä¸€ä¸ªç±»çš„实例:

    var customType : com.customtypes.string;

     



    ]]>
    在Flex应用中ä‹É用全局å˜é‡http://www.aygfsteel.com/usherlight/archive/2007/02/06/98259.html云自无心水自é—?/dc:creator>云自无心水自é—?/author>Tue, 06 Feb 2007 05:00:00 GMThttp://www.aygfsteel.com/usherlight/archive/2007/02/06/98259.htmlhttp://www.aygfsteel.com/usherlight/comments/98259.htmlhttp://www.aygfsteel.com/usherlight/archive/2007/02/06/98259.html#Feedback0http://www.aygfsteel.com/usherlight/comments/commentRss/98259.htmlhttp://www.aygfsteel.com/usherlight/services/trackbacks/98259.html 其实éžå¸¸½Ž€å? åªéœ€è¦åœ¨application¾cÖM¸­å®šä¹‰ä¸€ä¸ªpublic¾cÕdž‹çš„å˜é‡å°±è¡Œäº†:

    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
    	<mx:Script>
    		<![CDATA[
    			public var foo:String = "bar";
    		]]>
    	</mx:Script>
    </mx:Application>

    在其它的地方ž®±å¯ä»¥ä‹Éç”?

    Application.application.foo

    æ¥è®¿é—®äº†. 如果需è¦? 也å¯ä»¥æ·»åŠ?Bindable 属æ€?
    ä½†æ˜¯è¦æ³¨æ„到一个问题就æ˜? 在ä‹É用的时候编译器ä¸ä¼š˜q›è¡Œ¾cÕdž‹çš„æ£€æŸ? 因此最好添加类型强制è{æ?

    当然, 全局å˜é‡å®žçŽ°çš„å¦ä¸€¿U方法是使用å•例模å¼.




    ]]>
    在Flex应用中ä‹É用模å?modules) Ihttp://www.aygfsteel.com/usherlight/archive/2007/02/06/98145.html云自无心水自é—?/dc:creator>云自无心水自é—?/author>Mon, 05 Feb 2007 16:05:00 GMThttp://www.aygfsteel.com/usherlight/archive/2007/02/06/98145.htmlhttp://www.aygfsteel.com/usherlight/comments/98145.htmlhttp://www.aygfsteel.com/usherlight/archive/2007/02/06/98145.html#Feedback2http://www.aygfsteel.com/usherlight/comments/commentRss/98145.htmlhttp://www.aygfsteel.com/usherlight/services/trackbacks/98145.html有许多方法å¯ä»¥æŠŠä¸€ä¸ªåº”用拆分æˆåŸÞZºŽä¸ªç‹¬ç«‹ä¸‹è½½çš„部分。甚至于ž®†æ¯ä¸ªç±»éƒ½åˆ†æˆå•独的文äšgåQŒç”±ClassLoader在需è¦çš„æ—¶å€™åŠ è½½ã€‚ä½†æ˜¯å¦‚æžœè¿™æ äh•ˆçŽ‡æ˜¯æ¯”è¾ƒä½Žä¸‹çš„ï¼Œå› äØ“¾cÈš„å¼•ç”¨æœ‰ç€æ˜Žæ˜¾çš„“引用地域â€ï¼›å¦‚果你引用了一个类åQŒå¾€å¾€ä¼šé©¬ä¸Šç‰µæ¶‰åˆ°éœ€è¦å¼•用一大堆其他的类åQŒå¦‚果把˜q™äº›¾cÕd…¨éƒ½æ‰“åŒ…åœ¨ä¸€èµøP¼Œæ•ˆçŽ‡ä¼šé«˜å¾—å¤šã€?/p>

    ç”Þq¼–译器自动选择一个éžå¸¸å¥½çš„æ‰“包方法是比较困难的。很å¯èƒ½éœ€è¦åœ¨åº”ç”¨å¼€å‘æ—¶˜q›è¡Œä¸€äº›è®¾å®šï¼Œòq¶ä¸æ—¶åœ°ç›‘控¾cÈš„引用。能够统计出最优的分拆æ–ÒŽ(gu¨©)³•åQšåº”用应该分æˆå‡ ä¸ªSWFåQŒå“ªäº›ç±»åº”该攑֜¨å“ªä¸ªSWF中。但是这¿U方法å¬èµäh¥æ›´è±¡æ˜¯ä¸€¿Uç ”½I¶èŒƒç•ß_¼Œå®žé™…æ“作èµäh¥éžå¸¸å›°éš¾ã€?/p>

    让我们æ¥çœ‹ä¸€äº›æ›´å…ähœ‰æ“作性的æ–ÒŽ(gu¨©)³•ã€?/p>

    很多应用分解åŽï¼ŒåŒ…å«ä¸¤ç§¾cÕdž‹çš„功能:“å¯åЍåŽç«‹å³å¡«å……â€å’Œâ€œå¯åŠ¨åŽ½EåŽå¡«å……â€ã€?/p>

    有许许多多的应用是这¿U模å¼çš„。比如:游æˆåQ›ä½ æœ‰ä¸€ä¸ªæ¸¸æˆå¼•擎和一些游æˆåœºæ™¯ã€‚或者Portalså’ŒPorlets; 一些基¼‹€çš„共享功能和数æ®é©±åŠ¨çš„å°åº”用。或者是一个大型的有ç€1500个页é¢çš„ä¿é™©åº”用åQŒè¿è¡Œç‰¹å®šåŠŸèƒ½æ˜¯åªä¼šè®‰K—®ä¸€ž®éƒ¨åˆ†çš„™åµé¢ã€‚或者是充斥大é‡å†…容的应用,它å¯ä»¥ç‹¬ç«‹çš„æ›´æ–°éƒ¨åˆ†å†…å®¹è€Œä¸æ˜¯å¼ºåˆ¶ç”¨æˆäh¯‹Æ¡æµè§ˆæ—¶éƒ½å¿…™åÖM¸‹è½½å…¨éƒ¨å†…å®V€?/p>

    我称˜q™äº›ç›¸å¯¹ç‹¬ç«‹çš„å¯ä»¥åšg˜qŸåŠ è½½çš„åŠŸèƒ½ä¸ºâ€œæ¨¡å—â€?Modules)åQŒç§°åŠ è²æ¨¡å—çš„åº”ç”¨äØ“â€œShellâ€ã€?/p>

    在这里,我们先ä¸çœ‹å¦‚何åšåQŒå…ˆæ¥çœ‹ä¸€äº?/p>

    shell需è¦èƒ½å¤Ÿä¸Žæ¨¡å—交互åQŒåŒæ äh¨¡å—也需è¦å’ŒShell交互。如果shell引用了modules的一个类åQŒé‚£ä¹ˆå®ƒä¼šæŠŠå®ƒé“¾æŽ¥è¿›æ¥ã€‚åŒæ øP¼Œå¦‚果模嗾cÕd¼•用了shell¾c»ï¼Œå®ƒä¹Ÿä¼šæŠŠå®ƒé“¾æŽ¥è¿›æ¥ã€‚应用能正常˜qè¡Œåªæœ‰ä¸¤ä¸ªæ–ÒŽ(gu¨©)³•åQšæˆ–è€…å¼•ç”¨æ˜¯ç›¸åŒè€Œä¸”å…׃ínçš?˜q™æ ·ž®×ƒ¸éœ€è¦ä¸‹è½½ä¸¤‹Æ?åQŒæˆ–者两者是ä¸åŒçš„,而且没有ä»ÖM½•关系(ž®½ç®¡ä¸¤ä¸ª¾cÕd字相åŒï¼Œä½†æ˜¯å®ƒä»¬è¢«è®¤ä¸ºæ˜¯æ— å…³çš„,而且ä¸èƒ½äº¤äº’)ã€?/p>

    最好的解决办法是让模å—å’Œshell通过接å£äº¤äº’ã€‚è¿™æ øP¼Œshellä¸éœ€è¦å¼•用模å—,而是引用模å—会实现的一些接å£ã€‚åŒæ øP¼Œæ¨¡å—ä¸å®žçްshell的类åQŒè€Œæ˜¯å…许调用的API接å£ã€?/p>

    ˜q™æ ·åœ¨shellå˜åŒ–的时候凞®‘äº†é‡æ–°¾~–译模å—的次数。具体实现的å˜åŒ–é¢‘çŽ‡å¾€å¾€ä¼šæ¯”æŽ¥å£æœ¬èínçš„å˜åŒ–高得多åQŒè€Œåªè¦æŽ¥å£ç¨³å®šï¼Œž®×ƒ¸éœ€è¦é‡æ–°ç¼–译所有的东西ã€?/p>

    注æ„åQšéœ€è¦ä‹É用externåQˆæˆ–者extern-library-path)选项æ¥åˆ›å»ºæ¨¡å—,˜q™æ ·å¯ä»¥è‡ªåЍ剔除shell的类åQŒå› ä¸ºæ¨¡å—是被加载到shellçš„å­åº”用域中的,ž®†shell的类剔除是安全的。这æ äh¨¡å—å¯ä»¥çœŸæ­£ç›´æŽ¥å¼•用shell中的¾c…R€?/p>


     



    ]]>
    使用RSL(Runtime Shared Libraries)æ¥å‡ž®Flex生æˆçš„SWFæ–‡äšg的大ž®?VI) -- 使用RSL的完整示ä¾?/title><link>http://www.aygfsteel.com/usherlight/archive/2007/02/04/97898.html</link><dc:creator>云自无心水自é—?/dc:creator><author>云自无心水自é—?/author><pubDate>Sun, 04 Feb 2007 15:36:00 GMT</pubDate><guid>http://www.aygfsteel.com/usherlight/archive/2007/02/04/97898.html</guid><wfw:comment>http://www.aygfsteel.com/usherlight/comments/97898.html</wfw:comment><comments>http://www.aygfsteel.com/usherlight/archive/2007/02/04/97898.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/usherlight/comments/commentRss/97898.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/usherlight/services/trackbacks/97898.html</trackback:ping><description><![CDATA[<p>˜q™ä¸ªä¾‹å­åŒ…括了应用中使用RSL的完整浽E‹ã€‚ä‹É用命令行˜q›è¡Œ¾~–译åQŒä½†æ˜¯ä½ å¯ä»¥ä½¿ç”¨FlexBuilder用相åŒçš„˜q‡ç¨‹æ¥åˆ›å»ÞZ‹É用RSLã€?/p> <p>è®îC½SWCæ–‡äšg是一个包å«SWFæ–‡äšg的二˜q›åˆ¶æ–‡äšgåQŒè€ŒSWFæ–‡äšg包嫘q行时的定义和附属元数æ®ã€‚ä½ å¯ä»¥ç”¨åŽ‹¾~©å·¥å…äh¯”如WinZipæ¥æ‰“å¼€SWCæ–‡äšgã€?br />在ä‹É用RSL之å‰åQŒé¦–先需è¦äº†è§£å¦‚何陿€é“¾æŽ¥ä¸€ä¸ªSWCæ–‡äšgã€?/p> <p>在这个例å­ä¸­åQŒåº”用有一个app.mxmlæ–‡äšgåQŒä‹É用ProductConfigurator.aså’ŒProductView.as。文件目录如下:</p> <p>project/src/app.mxml<br />project/libsrc/ProductConfigurator.as<br />project/libsrc/ProductView.as <br />project/lib/<br />project/bin/</p> <p> <br />¾~–译˜q™ä¸ªåº”用æ—Óž¼Œå¯ä»¥ä½¿ç”¨source-path选项ž®?libsrc目录下的¾c»é“¾æŽ¥è¿›æ¥ï¼Œæ–ÒŽ(gu¨©)³•如下åQ?/p> <p>cd project/src<br />mxmlc -o=../bin/app.swf -source-path+=../libsrc app.mxml</p> <p>˜q™ä¸ªå‘½ä×oæ·ÕdŠ ProductConfiguratorå’ŒProductView¾cÕdˆ°SWFæ–‡äšg中ã€?/p> <p> <br />如果è¦åˆ›å»ºåº“åQŒå¯ä»¥ç”¨compcæ¥åˆ›å»ºSWCæ–‡äšgåQŒç”¨ä¸‹é¢çš„命令:</p> <p>cd project<br />compc -source-path+=libsrc -debug=false -o=lib/mylib.swc<br />ProductConfigurator ProductView</p> <p>注æ„è¦å°†debug选项讄¡½®ä¸ºfalse. 生戾l“果是project/lib/mylib.swcæ–‡äšgåQŒåŒ…å«ProductConfiguratorå’ŒProductView两个¾c…R€?/p> <p>现在å¯ä»¥ä½¿ç”¨æ–°åˆ›å»ºçš„库æ¥é‡æ–°¾~–译应用åQŒç”¨library-pathé€‰é¡¹æ¥æŒ‡å®šåº“åQŒæ–¹æ³•如下:</p> <p>cd project/src <br />mxmlc -o=../bin/app.swf -library-path+=../lib/mylib.swc app.mxml</p> <p>创å¾åº“以åŽï¼Œä½ å¯ä»¥ç”¨RSLæ¥é‡æ–°ç¼–译生æˆåº”用。完整的步骤如下åQ?/p> <p>   1. 指示¾~–译器ä¸è¦å°†åº“链接到应用中ã€?br />   2. 准备RSLåQŒä»¥ä¾¿äºŽåœ¨è¿è¡Œæ—¶ä½¿ç”¨ã€?br />   3. 指示¾~–译器生æˆé™„加元数æ®ç”¨äºŽåŠ è²RSLã€?/p> <p> <br />½W¬ä¸€æ­¥æ˜¯æŒ‡å®š¾~–译生æˆåº”用时库中的哪些¾c»éœ€è¦æŽ’é™¤åœ¨å¤–ã€‚ä¸»è¦æ˜¯ä½¿ç”¨external-library-path选项åQŒå¦‚下é¢çš„例孿‰€½Cºï¼š</p> <p>cd project/src<br />mxmlc -o=../bin/app.swf -external-library-path+=../lib/mylib.swc app.mxml</p> <p>如果你å°è¯•è¿è¡Œapp.swfåQŒFlash Player会抛å‡ÞZ¸€ä¸ªè¿è¡Œæ—¶å¼‚常。因为ProductConfiguratorå’ŒProductView¾c»è¿˜æœªå®šä¹‰ã€‚external-library-pathé…置选项告诉¾~–译器编译这些库åQŒä½†æ˜¯å¿½ç•¥äº†å®šä¹‰ã€‚你也å¯ä»¥ä‹É用externs选项åQŒä½†æ˜¯ä¸€èˆ¬æ¥è¯ß_¼Œä½¿ç”¨external-library-pathæ›´æ–¹ä¾Ñ€?/p> <p>下一步是准备RSL以便于能在è¿è¡Œæ—¶æ‰‘Öˆ°å®ƒã€‚首先从SWCæ–‡äšg中将library.swf解压出æ¥ã€?/p> <p>䏋颿˜¯å¦‚何解压的例å­åQ?/p> <p>cd project/lib<br />unzip mylib.swc library.swf<br />mv library.swf ../bin/myrsl.swf</p> <p>此例å­ä¸­ž®†library.swfæ›´å为myrsl.swfåQŒåƈ把它¿UÕdŠ¨åˆ°åº”ç”¨SWFæ–‡äšg所在的目录ã€?/p> <p>最åŽä¸€æ­¥æ˜¯ä½¿ç”¨RSL釿–°¾~–è¯‘åº”ç”¨ã€‚ä¸»è¦æ˜¯ä½¿ç”¨runtime-shared-libraries选项åQŒæ–¹æ³•如下:</p> <p>cd project/src <br />mxmlc -o=../bin/app.swf -external-library-path+=../lib/mylib.swc <br />-runtime-shared-libraries=myrsl.swf app.mxml</p> <p>现在新的SWFæ–‡äšg会在˜q行应用å‰åЍæ€åŠ è½½RSL了ã€?/p><img src ="http://www.aygfsteel.com/usherlight/aggbug/97898.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/usherlight/" target="_blank">云自无心水自é—?/a> 2007-02-04 23:36 <a href="http://www.aygfsteel.com/usherlight/archive/2007/02/04/97898.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>使用RSL(Runtime Shared Libraries)æ¥å‡ž®Flex生æˆçš„SWFæ–‡äšg的大ž®?V) -- 使用RSLhttp://www.aygfsteel.com/usherlight/archive/2007/02/01/97340.html云自无心水自é—?/dc:creator>云自无心水自é—?/author>Thu, 01 Feb 2007 11:17:00 GMThttp://www.aygfsteel.com/usherlight/archive/2007/02/01/97340.htmlhttp://www.aygfsteel.com/usherlight/comments/97340.htmlhttp://www.aygfsteel.com/usherlight/archive/2007/02/01/97340.html#Feedback0http://www.aygfsteel.com/usherlight/comments/commentRss/97340.htmlhttp://www.aygfsteel.com/usherlight/services/trackbacks/97340.html在编译应用时è¦ä‹É用RSL, 需è¦ä‹É用下列编译选项:

        * runtime-shared-libraries æä¾›˜q行˜q行时共享库的佾|?
        * external-library-path|externs|load-externs æä¾›¾~–译时库的佾|? ¾~–译器需è¦è¿™ä¸ªä¿¡æ¯åЍæ€é“¾æŽ?


    使用runtime-shared-librariesé€‰é¡¹æ¥æŒ‡å®šSWFæ–‡äšg的佾|? ˜q™æ ·åº”用能够在è¿è¡Œæ—¶åŠ è²RSL. éœ€è¦æŒ‡å®šSWF与部¾|²ä½¾|®çš„相对路径. 比如: 如果把library.swfæ–‡äšg攑֜¨web_root/libraries目录ä¸? 而应用在web_root目录ä¸? 那么文äšg的指定方法是: libraries/library.swf
    å¯ä»¥ç”¨è¿™ä¸ªé€‰é¡¹æŒ‡å®šå¤šä¸ªåº? 如果指定了多个库, 需è¦ç”¨é€—å·åˆ†éš”.


    使用external-library-pathé€‰é¡¹æ¥æŒ‡å®šlibrary在编译时的SWCæ–‡äšg或者目录的ä½ç½®. ¾~–译器会在编译时æ ÒŽ(gu¨©)®˜q™ä¸ªé€‰é¡¹˜q›è¡Œé“¾æŽ¥çš„æ£€æŸ? 你还å¯ä»¥ä½¿ç”¨externs或者load-externsé€‰é¡¹æ¥æŒ‡å®šå…¶ä»–å•独的classes或者xmlæ–‡äšgæ¥å®šä¹‰åº“的内å®?


    䏋颿˜¯ä¸€ä¸ªç¼–译MyApp应用的命令行½CÞZ¾‹, 其中使用äº?个库:

    mxmlc -runtime-shared-libraries=
    ../libraries/CustomCellRenderer/library.swf,
    ../libraries/CustomDataGrid/library.swf
    -external-library-path=../libraries/CustomCellRenderer,
    ../libraries/CustomDataGrid MyApp.mxml

    库的™åºåºéžå¸¸é‡è¦, å› äØ“åŸºç¡€¾cÕd¿…™åÕd…ˆåŠ è².


    ä½ å…ˆå¯ä»¥ä½¿ç”¨é…置文äšg, ½CÞZ¾‹å¦‚下:

    <compiler>
        <external-library-path>
            <path-element>../libraries/CustomCellRenderer</path-element>
            <path-element>../libraries/CustomDataGrid</path-element>
            <path-element>../libs/playerglobal.swc</path-element>
        </external-library-path>
    </compiler>
    <runtime-shared-libraries>
        <url>../libraries/CustomCellRenderer/library.swf</url>
        <url>../libraries/CustomDataGrid/library.swf</url>
    </runtime-shared-libraries>


    runtime-shared-libraries选项值是library.swfæ–‡äšg是相寚wƒ¨¾|²ç›®å½•的路径. external-library-path选项是编译时SWCæ–‡äšgçš„èµ\å¾? å› æ­¤, 必须先知é“库的部¾|²èµ\å¾?

     

    ½CÞZ¾‹ä¸? ¾~–译时文件结构如ä¸?

    c:/appfiles/MyApp.mxml
    c:/libraries/CustomCellRenderer/CustomCellRenderer.swc
    c:/libraries/CustomDataGrid/CustomDataGrid.swc

    library.swfåœ¨ç¼–è¯‘è¿›ä¸æ˜¯å¿…需çš? Flex¾~–译器ä¸éªŒè¯SWFæ–‡äšg的存在与å? 但会把èµ\径信æ¯ç¼–译进行最åŽçš„应用代ç ä¸?


    æ–‡äšg的部¾|²ç»“构如ä¸?

    web_root/MyApp.swf
    web_root/libraries/CustomCellRenderer/library.swf
    web_root/libraries/CustomDataGrid/library.swf

     



    ]]>
    使用RSL(Runtime Shared Libraries)æ¥å‡ž®Flex生æˆçš„SWFæ–‡äšg的大ž®?IV) -- 创å¾RSLhttp://www.aygfsteel.com/usherlight/archive/2007/02/01/97286.html云自无心水自é—?/dc:creator>云自无心水自é—?/author>Thu, 01 Feb 2007 07:25:00 GMThttp://www.aygfsteel.com/usherlight/archive/2007/02/01/97286.htmlhttp://www.aygfsteel.com/usherlight/comments/97286.htmlhttp://www.aygfsteel.com/usherlight/archive/2007/02/01/97286.html#Feedback0http://www.aygfsteel.com/usherlight/comments/commentRss/97286.htmlhttp://www.aygfsteel.com/usherlight/services/trackbacks/97286.html创å¾åº?/p>

    å¯ä»¥ä½¿ç”¨Flex Builder或者Compc命ä×o行æ¥åˆ›å¾åº? 库å¯ä»¥æ˜¯ä¸€ä¸ªSWCæ–‡äšg, 或者是包å«äº†library.swfå’Œcatalog.xmlæ–‡äšg的目å½? 一个库通常包å«è‡ªå®šä¹‰ç»„ä»¶å’Œ¾c? 然厞®±å¯ä»¥åœ¨RSL中ä‹É用这些库äº?

    在Flex Bulderä¸? 通过使用Flex Library Build Pathå¯¹è¯æ¡†æ¥æ·ÕdŠ èµ„æºåˆ°åº“ä¸?

    在命令行ä¸? 使用include-classeså’Œinclude-namespacesé€‰é¡¹æ¥æ·»åŠ æ–‡ä»¶åˆ°åº“ä¸­.

    下é¢çš„命令行½CÞZ¾‹è¯´æ˜Žäº†å¦‚何创å»ÞZ¸€ä¸ªåå­—å«CustomCellRenderer的库:

    compc -source-path ../mycomponents/components/local
    -include-classes CustomCellRendererComponent -directory=true -debug=false
    -output ../libraries/CustomCellRenderer

    所有包å«çš„¾l„äšgå¿…é¡»æ˜¯é™æ€é“¾æŽ¥çš„æ–‡äšg. 使用compc¾~–译器创建库æ—? ä¸èƒ½ä½¿ç”¨include-file选项, 因䨓˜q™ä¸ªé€‰é¡¹ä¸æ˜¯ž®†library.swfæ–‡äšg陿€é“¾æŽ¥åˆ°åº“中çš?

    å¯ä»¥ä½¿ç”¨directory选项指定输出åˆîC¸€ä¸ªç›®å½•è€Œä¸æ˜¯åˆ°ä¸€ä¸ªSWCæ–‡äšgä¸?

    <?xml version="1.0">
    <flex-config>
        <compiler>
            <source-path>
                <path-element>mycomponents/components/local</path-element>
            </source-path>
        </compiler>
        <output>libraries/CustomCellRenderer</output>
        <directory>true</directory>
        <debug>false</false>
        <include-classes>
            <class>CustomCellRendererComponent</class>
        </include-classes>
    </flex-config>

    输出会是一个目å½?目录里包å«ä¸¤ä¸ªæ–‡ä»?br />    * catalog.xml
        * library.swf

    创å¾library.swfæ–‡äšgå? ä½ å¯ä»¥ç¼–è¯‘åº”ç”¨åÆˆä¸”æŒ‡å®šæ–‡ä»¶çš„ä½ç½®.



    ]]>
    Bruce Eckel(Thinking in java)的作者对Flex的看æ³?/title><link>http://www.aygfsteel.com/usherlight/archive/2007/02/01/97120.html</link><dc:creator>云自无心水自é—?/dc:creator><author>云自无心水自é—?/author><pubDate>Wed, 31 Jan 2007 16:52:00 GMT</pubDate><guid>http://www.aygfsteel.com/usherlight/archive/2007/02/01/97120.html</guid><wfw:comment>http://www.aygfsteel.com/usherlight/comments/97120.html</wfw:comment><comments>http://www.aygfsteel.com/usherlight/archive/2007/02/01/97120.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/usherlight/comments/commentRss/97120.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/usherlight/services/trackbacks/97120.html</trackback:ping><description><![CDATA[<p> <span id="wmqeeuq" class="sts">UI的问题如何解军_‘¢: AWT, Swing, SWT, 或者是一些其他的比如: Tkinter, WxPython之类的东è¥?<br />Bruceè®¤äØ“˜q™äº›å¯¹äºŽåˆ›å¾ä¸€ä¸ªçœŸæ­£è·¨òq›_°çš„应用是ä¸å¤Ÿçš?<br />他认为最好的解决æ–ÒŽ(gu¨©)¡ˆž®±æ˜¯Flex!<br /><br /></span> </p> <p>Flex and Flash provide a complete, unlimited, flexible tool to build user experiences. From the standpoint of a programmer’s time investment, you can learn a single language for building UIs without worrying about running into problems or limitations later—issues like:</p> <ul style="MARGIN-TOP: 0in" type="disc"> <li>Installation problems</li> <li>Constraints on what you can create</li> <li>Sudden steep climbs in the learning curve</li> </ul> <p> <br /> <br />原文链接:</p> <p> <span id="wmqeeuq" class="sts"> <a >http://www.artima.com/weblogs/viewpost.jsp?thread=193593</a> </span> </p> <p> <span id="wmqeeuq" class="sts">Computing Thoughts</span> <br /> <span id="wmqeeuq" class="ts">Hybridizing Java</span> <br /> <span id="wmqeeuq" class="as">by Bruce Eckel</span> <br /> <span id="wmqeeuq" class="pd">January 30, 2007</span> </p><img src ="http://www.aygfsteel.com/usherlight/aggbug/97120.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/usherlight/" target="_blank">云自无心水自é—?/a> 2007-02-01 00:52 <a href="http://www.aygfsteel.com/usherlight/archive/2007/02/01/97120.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>使用RSL(Runtime Shared Libraries)æ¥å‡ž®Flex生æˆçš„SWFæ–‡äšg的大ž®?III) -- RSL的优¾~ºç‚¹http://www.aygfsteel.com/usherlight/archive/2007/02/01/97117.html云自无心水自é—?/dc:creator>云自无心水自é—?/author>Wed, 31 Jan 2007 16:43:00 GMThttp://www.aygfsteel.com/usherlight/archive/2007/02/01/97117.htmlhttp://www.aygfsteel.com/usherlight/comments/97117.htmlhttp://www.aygfsteel.com/usherlight/archive/2007/02/01/97117.html#Feedback0http://www.aygfsteel.com/usherlight/comments/commentRss/97117.htmlhttp://www.aygfsteel.com/usherlight/services/trackbacks/97117.html RSL也需è¦è°}æ…Žä‹Éç”?/strong>

    RSLä¹Ÿä¸æ˜¯å¯¹äºŽæ‰€æœ‰çš„应用都是有益çš? 需è¦å¯¹åº”用RSLå‰åŽçš„下载时间和å¯åŠ¨æ—‰™—´éƒ½æµ‹è¯•过, æ‰èƒ½å¾—到正确的结è®?

    RSLä¸èƒ½è·¨åŸŸå…׃ín. 如果客户在一个域中ä‹É用了RSL, 然厘q行了å¦ä¸€ä¸ªåŸŸçš„应ç”? 虽然˜q™ä¸¤ä¸ªRSL是相åŒçš„, 但是需è¦ä¸‹è½½ä¸¤‹Æ?

    RSL通常会增加应用的å¯åŠ¨æ—‰™—´. ˜q™æ˜¯åº”用ä¸ç®¡æ•´ä¸ªåº“实际如何ä‹Éç”? åªæ˜¯½Ž€å•åœ°å…¨éƒ¨åŠ è²æ•´ä¸ªåº? ž®Þp¿™ä¸€ç‚ÒŽ(gu¨©)¥è¯? RSL­‘Šå°­‘Šå¥½. ˜q™ä¸Žé™æ€é“¾æŽ¥åº“çš„ä‹É用是ä¸åŒçš? 当你¾~–译一个Felx应用æ—? ¾~–译器åªè§£å¼€éœ€è¦çš„¾l„äšg. 一般æ¥è¯? 库的大å°å¯ä»¥æ˜¯ä“Qæ„çš„, 它åªå½±å“¾~–译旉™—´è€Œä¸ä¼šåª„å“下载的旉™—´.

    如果在好几个应用中ä‹É用相åŒçš„¾l„äšgåº? 那么å¯ä»¥è€ƒè™‘åˆåƈ˜q™äº›åº? å½¢æˆä¸€ä¸ªRSL. 但是如果库åˆòq¶åŽ, æ¯ä¸ªåº”用åªä¼šç”¨åˆ°å…¶ä¸­çš„一ž®éƒ¨åˆ? 那么˜q˜ä¸å¦‚多加è²å‡ ä¸ªž®RSL更高æ•?

    如果一些类é‡å¤æ‰“包在多个RSLä¸? é‚£ä¹ˆä¸€å®šè¦æ³¨æ„åŒæ­¥æ›´æ–°çš„é—®é¢?

    RSLä¸èƒ½åº”用在基¾cÀL˜¯Sprite或者MovieClip的纯ActionScript™å¹ç›®ä¸? 因䨓RSL需è¦åŸº¾cÈŸ¥é“如何加载RSL, 比如: Application或者SimpleApplication.

    关于 framework.swcæ–‡äšg

    framework.swc是一个标准的SWCæ–‡äšg. ¾~ºçœåœ°å®ƒä¸èƒ½ç”¨ä½œRSL. 整个framwork.swcæ–‡äšgä¸è¢«é“¾æŽ¥åˆîC“Q何一个应用中. Flex¾~–译器媞®†é‚£äº›åº”ç”¨ç”¨åˆ°çš„éƒ¨åˆ†é“¾æŽ¥åˆ°ç”Ÿæˆæœ€åŽçš„SWFæ–‡äšg. 比如: 如果一个应用åªä½¿ç”¨äº†Button, Panelå’ŒTextArea控äšg, é‚£ä¹ˆåªæœ‰˜q™å‡ ä¸ªæŽ§ä»¶å’Œå®ƒä»¬çš„ä¾èµ–项被编译器链接.

    几乎所有的应用都需è¦framework.swcæ–‡äšg的一部分, ä½†æ˜¯å®ƒåÆˆä¸é€‚åˆä½œäØ“RSL. 原因如上æ®è¯´, RSL是整个链æŽ? ä¸ç®¡å®žé™…使用多少çš? 如果RSL包å«äº†å¾ˆå¤šç±», 而应用åªä½¿ç”¨äº†å…¶ä¸­çš„一ž®éƒ¨åˆ? 那么˜q™æ ·çš„加载方å¼åÆˆä¸æ˜¯æœ€åˆç†çš? ˜q™æ ·ä½¿ç”¨ä¼šé€ æˆåº”用的å¯åŠ¨æ—¶é—´å¤§å¤§å¢žåŠ?


    RSL的优�/p>

    下é¢çš„一个例å­è¯´æ˜Žäº†ž®†å‡ ä¸ªçš„å…׃ín¾l„äšgåšæˆRSL的优ç‚? 在这个例å­ä¸­, ¾l„äšgåº“çš„å¤§å°æ˜?50K, ¾~–译åŽçš„应用的大ž®æ˜¯100K.
    Application size with and without RSLs 

    使用了RSL, RSLåªè¢«ä¸‹è²ä¸€‹Æ? 那么åˆè®¡ä¸‹è²é‡æ˜¯350K, 节约äº?0%. å¦‚æžœå†æ·»åŠ ç¬¬3ä¸? ½W?个应用的è¯? æ¯æ¬¡éƒ½èƒ½150K的下载é‡.

    一般æ¥è¯? 在一个域中ä‹É用åŒä¸€ä¸ªRSL的应用越å¤? 那么好处ž®Þp¶Šå¤?



    ]]>
    使用RSL(Runtime Shared Libraries)æ¥å‡ž®Flex生æˆçš„SWFæ–‡äšg的大ž®?II) -- 介ç»é“¾æŽ¥(Linking)http://www.aygfsteel.com/usherlight/archive/2007/01/27/96333.html云自无心水自é—?/dc:creator>云自无心水自é—?/author>Sat, 27 Jan 2007 15:42:00 GMThttp://www.aygfsteel.com/usherlight/archive/2007/01/27/96333.htmlhttp://www.aygfsteel.com/usherlight/comments/96333.htmlhttp://www.aygfsteel.com/usherlight/archive/2007/01/27/96333.html#Feedback0http://www.aygfsteel.com/usherlight/comments/commentRss/96333.htmlhttp://www.aygfsteel.com/usherlight/services/trackbacks/96333.htmlç†è§£é“¾æŽ¥å¯ä»¥å¸®åЩ你ç†è§£RSL是怎样工作çš? Flex¾~–译器支æŒé™æ€é“¾æŽ¥å’ŒåЍæ€é“¾æŽ? 陿€é“¾æŽ¥æ˜¯æœ€é€šå¸¸çš„æ–¹æ³? 但是动æ€é“¾æŽ¥ä‹É你借助于RSLæ¥å®žçްSWFæ–‡äšg的羃水以åŠåº”用的下貋ơ数.

    å½“ä½ ä½¿ç”¨é™æ€é“¾æŽ¥æ—¶, ¾~–译器将应用中所有引用的¾cÕd’Œä¾èµ–生æˆåˆ°æœ€¾lˆçš„SWFæ–‡äšgä¸? ˜q™ä¸ªæ–‡äšg会比较大, 下è²ä¹Ÿä¼šæ¯”较æ…? 但是下è²å®Œæ¯•å? ˜q行会比较快, 因䨓SWFæ–‡äšg中已¾l包å«äº†æ‰€æœ‰çš„代ç .

    如果你的应用中ä‹É用了¾cÕdº“, 那么你需è¦ä‹É用类路径或者是æ·ÕdŠ SWCæ–‡äšg. 如果是ä‹É用类路径, ¾~–译器会ž®†ç±»è·¯å¾„中用到的那部分类打包生æˆåˆ°SWFæ–‡äšgä¸? 如果是ä‹É用SWCæ–‡äšg, ¾~–译器会ž®†æ•´ä¸ªSWCæ–‡äšg打包到SWFæ–‡äšgä¸?

    动æ€é“¾æŽ¥æ˜¯˜q™æ ·çš? 一个应用è¦ä½¿ç”¨çš„一部分¾cÕd­˜åœ¨äºŽä¸€ä¸ªå¤–部的文äšgä¸? ˜q行时动æ€åŠ è½? ˜q™æ ·çš„è¯, 主SWFæ–‡äšgå¯ä»¥ž®ä¸€äº? 但是应用ä¾èµ–于è¿è¡Œæ—¶åŠ è²çš„外部文ä»? RSLž®±æ˜¯ä½¿ç”¨åЍæ€é“¾æŽ¥çš„.

    如果想ä‹É用动æ€é“¾æŽ¥ç±», éœ€è¦æŠŠå®ƒä»¬¾~–译æˆåº“. 然厾~–译器将库中的内容从SWFæ–‡äšg剔除出去. 而且必须在编译时æä¾›é“¾æŽ¥‹‚€æŸ?

    为指定哪些文件是动æ€é“¾æŽ¥çš„,需è¦ä‹É用外部库路径选项,外部选项或者外部加载编译选项. ˜q™äº›é€‰é¡¹å‘Šè¯‰¾~–译器从应用中去除此部分内容, 而预备在˜q行时调ç”? 外部选项为动æ€é“¾æŽ¥æŒ‡å®šäº†å•独的类. 外部加è²é€‰é¡¹æŒ‡å®šäº†ä¸€ä¸ªXMLæ–‡äšg, æè¿°äº†åЍæ€é“¾æŽ¥çš„¾c?

    指定SL的外部资æºçš„™åºåºæ˜¯éžå¸¸å…³é”®çš„, å› äØ“è¢«å…¶ä»–ç±»è°ƒç”¨çš„åŸº¼‹€¾cÕd¿…™å»è¢«é¦–先加è².

    你还è¦ç”¨runtime-shared-librariesé€‰é¡¹æ¥æŒ‡å®šRSL的佾|?

    ä½ å¯ä»¥ä‹É用link-report˜q™ä¸ª¾~–è¯‘é€‰é¡¹æ¥æŸ¥çœ‹åº”用的链接信æ¯.



    ]]>
    使用RSL(Runtime Shared Libraries)æ¥å‡ž®Flex生æˆçš„SWFæ–‡äšg的大ž®?I) -- 介ç»RSLhttp://www.aygfsteel.com/usherlight/archive/2007/01/27/96324.html云自无心水自é—?/dc:creator>云自无心水自é—?/author>Sat, 27 Jan 2007 14:52:00 GMThttp://www.aygfsteel.com/usherlight/archive/2007/01/27/96324.htmlhttp://www.aygfsteel.com/usherlight/comments/96324.htmlhttp://www.aygfsteel.com/usherlight/archive/2007/01/27/96324.html#Feedback0http://www.aygfsteel.com/usherlight/comments/commentRss/96324.htmlhttp://www.aygfsteel.com/usherlight/services/trackbacks/96324.htmlå‡å°åº”用SWFæ–‡äšg大å°çš„ä¸€ä¸ªæ–¹æ³•å°±æ˜¯å°†ä¸€äº›å…±äº«çš„å¤–éƒ¨èµ„æºæ‹†åˆ†å‡ºåŽ», æˆäؓ一个独立的文äšg, ˜q™æ ·å¯ä»¥å•独地加载缓存到客户ç«? ˜q™äº›å…׃ín资æºå¯ä»¥ç”±å¤šä¸ªåº”用在˜q行时进行加è½? 但是传递到客户端的动作åªä¼šå‘生一‹Æ? ˜q™äº›å…׃ínæ–‡äšgè¢«ç§°ä¸ø™¿è¡Œæ—¶å…׃ínåº?Runtime Shared Libraries)æˆ–è€…ç®€å†™äØ“RSL.

    如果你有多个应用而且˜q™äº›åº”用å…׃ín一些核心组件或者类, é‚£ä¹ˆä½œäØ“RSL,用户åªä¼šå”¯ä¸€çš„一‹Æ¡åŠ è½½è¿™äº›èµ„æº? åªè¦åº”用在åŒä¸€ä¸ªåŸŸä¸? ˜q™äº›åº”用å…׃ínåŒä¸€ä¸ªç¼“存的RSL, ˜q™æ ·åº”用文äšg的大ž®å°±å‡å°äº? 使用RSL的应用越å¤? 效果­‘Šå¥½, å¦‚æžœåªæœ‰ä¸€ä¸ªåº”ç”? æ€Èš„æ–‡äšg大å°ä¸ä½†ä¸å‡ž®?å而会增大.

    ä½ æ—¢å¯ä»¥ä½¿ç”¨Flex Builder通过™å¹ç›®é€‰é¡¹æ¥åˆ›å»ºFlexçš„Library™å¹ç›®,也å¯ä»¥ä‹É用compc˜q™æ ·çš„命令行. ¾~–译好RSL以åŽ, å¯ä»¥åœ¨ç¼–译应用时把Library的佾|®ä¼ é€’ç»™¾~–译å™?

    䏋颿˜¯é€‚åˆä½¿ç”¨RSL的典型用ä¾?
        * 大型应用, 需è¦ä‹É用通用¾l„äšg库加载多个å°åž‹åº”ç”? 最™å¶çñ”的应用和下çñ”应用å¯ä»¥å…׃ín存储在RSL中的¾l„äšg.

        * 在一个æœåŠ¡å™¨ä¸Šçš„ä½¿ç”¨é€šç”¨¾l„äšg库的¾pÕdˆ—应用. 当用æˆäh“作第一个应用时, 用户下è²åº”用的SWFæ–‡äšgå’ŒRSL. 当æ“作第二个应用æ—? 用户ž®±åªéœ€è¦ä¸‹è½½åº”用本íw«çš„SWFæ–‡äšgž®Þp¡Œäº?
        
        * 一个独立的应用使用RSLçš„æ„义在äº? 如果˜q™ä¸ªåº”用本èín会频¾J的修改, 而有一部分¾l„äšg是枞®‘改动的. 在这¿U情况下, 使用RSL的好处是: ¾l„äšg下è²ä¸€‹Æ? 而应用å¯ä»¥å¤š‹Æ¡ä¸‹è½?

     



    ]]>
    ¾~–写ActionScript3.0ä¸­éœ€è¦æ³¨æ„çš„10个问é¢?/title><link>http://www.aygfsteel.com/usherlight/archive/2007/01/26/96236.html</link><dc:creator>云自无心水自é—?/dc:creator><author>云自无心水自é—?/author><pubDate>Fri, 26 Jan 2007 15:58:00 GMT</pubDate><guid>http://www.aygfsteel.com/usherlight/archive/2007/01/26/96236.html</guid><wfw:comment>http://www.aygfsteel.com/usherlight/comments/96236.html</wfw:comment><comments>http://www.aygfsteel.com/usherlight/archive/2007/01/26/96236.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/usherlight/comments/commentRss/96236.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/usherlight/services/trackbacks/96236.html</trackback:ping><description><![CDATA[<p>æ€È»“èµäh¥éœ€è¦æ³¨æ„的原则ž®±æ˜¯åQšå°½é‡åœ¨¾~–译的阶ŒDµå‘çŽ°é”™è¯¯ï¼Œå› äØ“˜q™æ—¶å‘现òq¶è§£å†³é”™è¯¯è¿œ˜qœè¦æ¯”在˜q行时出错解册™“væ¥å®¹æ˜“çš„å¤šã€‚å¯æ˜¯å®žé™…情况中很多人ç»å¸æ€¼š˜qå˜q™ä¸€åŽŸåˆ™åQŒä¸‹é¢æ˜¯æˆ‘列丄¡š„10个技å·?<br /><br />1) 永远ä¸è¦ä½¿ç”¨'Object' æ¥å­˜å‚¨æ•°æ? 因䨓˜q™æ˜¯ä¸€¿U绕开¾~–è¯‘å™¨æ£€æŸ¥çš„åšæ³•åQŒå®Œå…¨ä¸½W¦åˆé¢å‘å¯¹è±¡çš„æ€æƒ³ã€‚如果è¦ç”¨Hashmap或者相应的数组åQŒé‚£ä¹ˆå¯ä»¥ç”¨Dictionary。å¦åˆ™ï¼Œè¯¯‚‡ªå·²å®šä¹‰ä¸€ä¸ªç±»åQŒè€Œä¸è¦ä‹É用Objectæ¥ä½œä¸ºæ•°æ®çš„存储器ã€?br /><br />2) ä¸è¦ç”¨Objectæ¥ä½œä¸ºå¯¹è±¡çš„¾cÕdž‹ã€‚这是欺骗编译器的方法。如果必™å»è¿™æ ïL(f¨¥ng)”¨åQŒæœ€å¥½åœ¨å­˜å–属性或者调用函数时åQŒå…ˆ˜q›è¡Œå¼ºåˆ¶æ€§çš„¾cÕdž‹è½¬æ¢åQŒè‡³ž®‘这是给¾~–译器的一个æ½Cºï¼Œä¹Ÿå¸®åЩ其他ähç†è§£ä½ çš„代ç ã€?/p> <p>3) 也ä¸è¦ç”¨*¾cÕdž‹ã€?/p> <p>4) ä¸è¦ž®†ActionScript的类声明为动æ€ã€?/p> <p>5) 注æ„Application.application (和其他的无类型的框架属æ€?. ˜q™ä¸ªå±žæ€§æœ‰ä¸€äº›å¤æ€?  他应该是Applicaton¾cÕdž‹çš„ï¼Œå› äØ“ä»–æŒ‡å‘的实例必须是Application的孾c? 但实际上他的¾cÕdž‹æ˜?Object', 无法应用¾~–译时的‹‚€æŸ¥ã€‚如果你一定è¦ç”¨ï¼Œæœ€å¥½ä¹Ÿ˜q›è¡Œ¾cÕdž‹çš„强制性è{æ¢ã€?</p> <blockquote> <p>MyApplication( Application.application ).functionCall();</p> </blockquote> <p>6) ž®è£…ä½ çš„Xml。ä‹É用Xml与Server˜q›è¡Œæ•°æ®çš„交互éžå¸¸æ–¹ä¾¿ï¼Œä½†æ˜¯ž®½é‡é¿å…使用Xmlä½œäØ“æ ¸å¿ƒæ•°æ®æ¨¡åž‹ã€‚从æœåŠ¡å™¨æ”¶åˆ°æ•°æ®åŽåQŒå°½é‡æŠŠXml转æ¢ä¸ºå¼º¾cÕdž‹çš„对象模型。在Flex应用内部使用Xml是绕开¾~–译器的作法ã€?</p> <p>7) ä¸è¦ä½¿ç”¨DynamicEvent. </p> <p>8) ä¸è¦ä½¿ç”¨mx:Model。如上所˜qŽÍ¼Œè¯·å°½é‡ä‹É用自定义的强¾cÕdž‹çš„ç±».</p> <p>9) ä¸è¦ä½¿ç”¨Cairngorm中的data属性,而应该ç‘ô承扩展CairngormEventæ¥ä¼ é€’æ•°æ®ã€?/p> <p>10) ä¸è¦æŠŠç¼–译器的严格模å¼å…³æŽ?/p><img src ="http://www.aygfsteel.com/usherlight/aggbug/96236.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/usherlight/" target="_blank">云自无心水自é—?/a> 2007-01-26 23:58 <a href="http://www.aygfsteel.com/usherlight/archive/2007/01/26/96236.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>Changes between Cairngorm 2.1 and Cairngorm 2.2 Betahttp://www.aygfsteel.com/usherlight/archive/2007/01/25/96040.html云自无心水自é—?/dc:creator>云自无心水自é—?/author>Thu, 25 Jan 2007 13:08:00 GMThttp://www.aygfsteel.com/usherlight/archive/2007/01/25/96040.htmlhttp://www.aygfsteel.com/usherlight/comments/96040.htmlhttp://www.aygfsteel.com/usherlight/archive/2007/01/25/96040.html#Feedback2http://www.aygfsteel.com/usherlight/comments/commentRss/96040.htmlhttp://www.aygfsteel.com/usherlight/services/trackbacks/96040.htmlCairngorm is being packaged. Cairngorm 2.1 introduced a dependency on fds.swc, which isn't part of the standard Flex SDK - it is part of FDS. So, we've repackaged Cairngorm into the core Cairngorm and Cairngorm Enterprise - this also starts aligning Cairngorm with Steven Webster's presentation at Max when he spoke about the Cairngorm Roadmap. We're also now going to to distribute Cairngorm in Binary form (SWC), as a source zip and a documentation zip.

    * Removed dependency on Flex Data Services (fds.swc) - externalised to Cairngorm Enterprise
    * Flex SDK SWCs are no longer linked into Cairngorm.swc (produces a smaller cairngorm.swc)
    * Added support for setting remote credentials
    * Fixed bug with Web services not loading the WSDL (no need to call loadWSDL() explicitly)
    * ModelLocator interface has been deprecated. Added com.adobe.cairngorm.model.IModelLocator
    * Added deprecation metadata for compiler support

    对于我æ¥è¯ß_¼Œå…Ïx³¨çš„åªæœ‰ä¸€ç‚¹ï¼šModelLocator被改æˆIModelLocator了ã€?br />å…¶ä»–çš„åªæ˜¯Cairngorm的打包方å¼è€Œå·²ã€?br />Cairngorm2.1中ä¾èµ–于fds.swcåQŒè€Œfds.swc䏿˜¯Flex SDK中的东西åQŒæ˜¯FDS的一部分ã€?br />åœ?.2中会ž®†Cairngorm拆æˆä¸¤éƒ¨åˆ†ï¼šCore Cairngormå’ŒCairngorm Enterprise
    和FDS.swc相关的部分放入Cairngorm Enterprise中�img src ="http://www.aygfsteel.com/usherlight/aggbug/96040.html" width = "1" height = "1" />

    ]]>
    Flex 2.0.1 ä¸ä»…仅是一个简å•çš„å‡çñ”http://www.aygfsteel.com/usherlight/archive/2007/01/21/95121.html云自无心水自é—?/dc:creator>云自无心水自é—?/author>Sun, 21 Jan 2007 05:54:00 GMThttp://www.aygfsteel.com/usherlight/archive/2007/01/21/95121.htmlhttp://www.aygfsteel.com/usherlight/comments/95121.htmlhttp://www.aygfsteel.com/usherlight/archive/2007/01/21/95121.html#Feedback0http://www.aygfsteel.com/usherlight/comments/commentRss/95121.htmlhttp://www.aygfsteel.com/usherlight/services/trackbacks/95121.html首先在这个版本中åQŒä¿®æ­£äº†æ•°ç™¾ä¸ªBug

    1. æ·ÕdР坹Mac的支æŒ?br />2. 支æŒEclipse 3.2åQŒè€Œä¸æ˜¯ä»…仅支æŒ?.1
    3. ˜q行时的CSS支æŒ
    4. 增加了一个Mercuryçš„æ’ä»Óž¼Œæ”¯æŒè‡ªåЍ‹¹‹è¯•
    5. 其他一些很‹‚’的功能åQšåŒ…括F(xi¨¤n)lashType的字体和ASDoc的支æŒã€?/p>

    ]]>
    Flex2中é历Tree节点http://www.aygfsteel.com/usherlight/archive/2007/01/07/92213.html云自无心水自é—?/dc:creator>云自无心水自é—?/author>Sun, 07 Jan 2007 06:37:00 GMThttp://www.aygfsteel.com/usherlight/archive/2007/01/07/92213.htmlhttp://www.aygfsteel.com/usherlight/comments/92213.htmlhttp://www.aygfsteel.com/usherlight/archive/2007/01/07/92213.html#Feedback1http://www.aygfsteel.com/usherlight/comments/commentRss/92213.htmlhttp://www.aygfsteel.com/usherlight/services/trackbacks/92213.html ˜q™ä¸ªå‡½æ•°åªæ˜¯ä¸€ä¸ªç¤ºä¾‹å‡½æ•ŽÍ¼Œæ¼”示如何é历一个Treeã€?br />此函æ•îC¸¥æ ÆD¯´èµäh¥å…¶å®žæ˜¯ä¸¤ä¸ªå‡½æ•ŽÍ¼šä¸ŠåŠéƒ¨åˆ†ç”¨äºŽå›žæº¯çˆ¶èŠ‚ç‚¹ï¼Œä¸‹åŠéƒ¨åˆ†é€’å½’é历å­èŠ‚ç‚?br />

    /**
     * This method will traverse a Tree's model independent of it's
     * type.
     *
     * <p>Note :: This method may look long and arduous but, rest assured
     * it has all the checks to perform like a champ. Also, you 'could'
     * refactor part of this method but, for the sake of explanation, I
     * kept it all in one place.</p>
     *
     * <p>Remember, I had coupled the model to this method by tracing
     * @label, obviously you do not need to do this. The intention of
     * this example is to show you that the dataDescriptor seperates
     * the models type and is awesome. It enables you to create a tight
     * method like this without type checks on the model.</p>
     *
     * @param tree The Tree instance that will be examined by the method.
     * @param item An item found in the dataProvider of the Tree passed in.
     * @param startAtParent A boolean that determines if the method upon
     * initialization will back up one leve3l to the item passed in and
     * start it's recursion at the item's parent node.
     */

    public function walkTree(tree:Tree, item:Object, startAtParent:Boolean = false):void
    {
        // get the Tree's data descriptor
        var descriptor:ITreeDataDescriptor = tree.dataDescriptor;
        var cursor:IViewCursor;
       
        var parentItem:Object;
        var childItem:Object;
        var childItems:Object;
       
        // if the item is null, stop
        if(item == null)
            return;
           
        // do we back up one level to the item's parent
        if(startAtParent)
        {
            // get the parent
            parentItem = tree.getParentItem(item);
            // is the parent real
            if(parentItem)
            {
                trace("|-- Parent Node ", parentItem[tree.labelField]);
                // if the parent is a branch
                if(descriptor.isBranch(parentItem))
                {
                    // if the branch has children to run through
                    if(descriptor.hasChildren(parentItem))
                    {
                        // get the children of the branch
                        // this part of the algorithm contains the item
                        // passed
                        childItems = descriptor.getChildren(parentItem);
                    }
                }
                // if the branch has valid child items
                if(childItems)
                {
                    // create our back step cursor
                    cursor = childItems.createCursor();
                    // loop through the items parent's children (item)
                    while(!cursor.afterLast)
                    {
                        // get the current child item
                        childItem = cursor.current;

                        var label:String = childItem[tree.labelField];
                        var branch:Boolean = descriptor.isBranch(childItem);
                       
                        // good place for a custom method()
                        trace("Sibling Nodes :: ", label, "Is Branch :: ", branch);
                       
                        // if the child item is a branch
                        if(descriptor.isBranch(childItem))
                            // traverse the childs branch all the way down
                            // before returning
                            walkTree(tree, childItem);
                        // do it again!
                        cursor.moveNext();
                    }
                }
            }
        }
        else// we don't want the parent OR this is the second iteration
        {
            // if we are a branch
            if(descriptor.isBranch(item))
            {
                // if the branch has children to run through
                if(descriptor.hasChildren(item))
                {
                    // get the children of the branch
                    childItems = descriptor.getChildren(item);
                }
               
                // if the child items exist
                if(childItems)
                {
                    // create our cursor pointer
                    cursor = childItems.createCursor();
                    // loop through all of the children
                    // if one of these children are a branch we will recurse
                    while(!cursor.afterLast)
                    {
                        // get the current child item
                        childItem = cursor.current;

                        var label:String =  childItem[tree.labelField];
                        var branch:Boolean = descriptor.isBranch(childItem);
                       
                        // good place for a custom method()
                        trace("-- Sub Node :: ", label, "Is Branch :: ", branch);

                        // if the child item is a branch
                        if(descriptor.isBranch(childItem))
                            // traverse the childs branch all the way down
                            // before returning
                            walkTree(tree, childItem);
                        // check the next child
                        cursor.moveNext();
                    }
                }
            }
        }
    }
     



     



    ]]>
    Cairngorm中Modelæ•°æ®å˜åŒ–åŽå¦‚何自动调用一个自定义函数åQ?/title><link>http://www.aygfsteel.com/usherlight/archive/2007/01/07/92181.html</link><dc:creator>云自无心水自é—?/dc:creator><author>云自无心水自é—?/author><pubDate>Sat, 06 Jan 2007 18:15:00 GMT</pubDate><guid>http://www.aygfsteel.com/usherlight/archive/2007/01/07/92181.html</guid><wfw:comment>http://www.aygfsteel.com/usherlight/comments/92181.html</wfw:comment><comments>http://www.aygfsteel.com/usherlight/archive/2007/01/07/92181.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/usherlight/comments/commentRss/92181.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/usherlight/services/trackbacks/92181.html</trackback:ping><description><![CDATA[<p> </p> <p>在Flex的开å‘过½E‹ä¸­åQŒå°¤å…¶æ˜¯åœ¨ä‹É用Cairngorm的时候,æ€ÖM¼šé‡åˆ°éœ€è¦åœ¨Model的属性值改å˜åŽåQŒéœ€è¦è°ƒç”¨ä¸€ä¸ªæŒ‡å®šçš„函数。传¾lŸçš„解决æ–ÒŽ(gu¨©)³•是ä‹É用一个Setteræ–ÒŽ(gu¨©)³•åQŒåœ¨˜q™ä¸ªæ–ÒŽ(gu¨©)³•中首先对属性赋å€û|¼Œç„¶åŽè°ƒç”¨æŒ‡å®šçš„函敎ͼŒæ¯”如åQ?/p> <p>---------------------------<br />[ChangeEvent("deleteEnabledChange")]<br />public function get deleteEnabled() : Boolean {<br />return _deleteButtonVisible;<br />}</p> <p>public function set deleteEnabled(value : Boolean) : Void {<br />_deleteButtonVisible = value;<br />SimpleButton(deleteButton)._visible = false;<br />dispatchEvent(new Event("deleteEnabledChange", this));<br />}<br />--------------</p> <p>但是现在我们有一个更½Ž€‹z的解决之é“<br />首先æ·ÕdŠ ˜q™æ ·ä¸€ä¸ªç±»<br />package com.adobe.ac.util <br />{ <br />   public class Observe <br />   { <br />      public var handler : Function; <br /> <br />      public function set source( source : * ) : void <br />      { <br />         handler.call(); <br />      } <br />   } <br />}<br />然厞®±å¯ä»¥ä‹É用这个作为标½{¾äº†ã€?br /><util:Observe source="{ model.myProperty }" <br />              handler="{ this.myFunction }"/><br />使用了这æ ïL(f¨¥ng)š„一个标½{‘ÖŽåQŒä»ŠåŽå˜¦æ˜¯å¯¹model.myProperty˜q›è¡Œèµ‹å€û|¼Œž®×ƒ¼šè°ƒç”¨myFunction<br />˜q™ä¸ªåïL(f¨¥ng)§°ä¸–上最ž®çš„æ ‡ç­¾æ˜¯ä¸æ˜¯å¾ˆå¥½ç”¨å•Šï¼Ÿ<br /></p><img src ="http://www.aygfsteel.com/usherlight/aggbug/92181.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/usherlight/" target="_blank">云自无心水自é—?/a> 2007-01-07 02:15 <a href="http://www.aygfsteel.com/usherlight/archive/2007/01/07/92181.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>Cairngorm½CÞZ¾‹--业务逻辑如何½Ž¡ç†è§†å›¾åQˆIIIåQ?/title><link>http://www.aygfsteel.com/usherlight/archive/2006/12/29/90621.html</link><dc:creator>云自无心水自é—?/dc:creator><author>云自无心水自é—?/author><pubDate>Thu, 28 Dec 2006 16:36:00 GMT</pubDate><guid>http://www.aygfsteel.com/usherlight/archive/2006/12/29/90621.html</guid><wfw:comment>http://www.aygfsteel.com/usherlight/comments/90621.html</wfw:comment><comments>http://www.aygfsteel.com/usherlight/archive/2006/12/29/90621.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/usherlight/comments/commentRss/90621.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/usherlight/services/trackbacks/90621.html</trackback:ping><description><![CDATA[<p>现在我们ž®†å¢žåŠ éªŒè¯ã€æ ¼å¼åŒ–和一些其他的功能ã€?br />½W¬å››‹Æ¡è„Pä»?-æ·ÕdŠ åŠŸèƒ½<br />现在我们回过头æ¥çœ‹é‚£ä¸ªå•视图的应用,增加一点真实性,我们模拟一下远½E‹æœåŠ¡æœ‰ä¸€ç‚¹åšg时。我们在Delegate中ä‹É用flash.utils.setTimeOutæ¥æ¨¡æ‹Ÿåšgæ—¶ã€?br />通常åQŒå½“˜qœç¨‹æœåŠ¡åœ¨å¤„ç†æ—¶åQŒUI会展çŽîC¸€ä¸ªè¿›åº¦æ¡åQŒç¦ç”¨ä¸€éƒ¨åˆ†æŽ§äšgåQŒè®©ç”¨æˆ·æ˜Žç™½ä¸èƒ½å†æ´¾å‘新的请求。在我们的例å­ä¸­åœ¨è¿œ½E‹æœåŠ¡åœ¨å¤„ç†çš„æ—¶å€™ï¼Œæˆ‘们会ç¦ç”¨â€œGet Quoteâ€æŒ‰é’®ã€‚完æˆè¿™ä¸€ç‚¹å¾ˆå®ÒŽ(gu¨©)˜“åQŒåªéœ€è¦åœ¨Model对象的StockQuote¾cÖM¸­å¢žåŠ ä¸€ä¸ªæˆå‘˜isPendingåQŒæŠŠå®ƒå®šä¹‰äؓ一个bool形,˜q™æ ·å¯ä»¥ç›´æŽ¥åº”用于绑定ã€?/p> <p> </p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /> <span style="COLOR: #000000">[Bindable]<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /></span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000"> var isPending : Boolean;</span> </div> <p> </p> <p>增加验è¯<br />我们现在æ·ÕdŠ å¯¹è‚¡¼œ¨æŠ¥ä»ïL(f¨¥ng)š„验è¯åŠŸèƒ½åQŒå¯¹äºŽè¿™ä¸€ç‚¹ï¼Œæˆ‘们å¯ä»¥ä½¿ç”¨mx.validators.StringValidatoræ¥å®Œæˆè¿™ä¸€åŠŸèƒ½ã€‚åº”ç”¨ä¸­˜q™ä¸¤ä¸ªå‚æ•°å…±åŒæŽ§åˆ¶æŒ‰é’®çš„æœ‰æ•ˆæ€§ã€‚è¿™æ ·å¯ä»¥åœ¨Model对象中设¾|®ä¸€ä¸ªisValid属性,用于¾l„刘q™ä¸¤å‚æ•°ã€?br /></p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /> <span style="COLOR: #0000ff">private</span> <span style="COLOR: #000000"> function validate() : </span> <span style="COLOR: #0000ff">void</span> <span style="COLOR: #000000"> <br /> <img id="Codehighlighter1_35_81_Open_Image" onclick="this.style.display='none'; Codehighlighter1_35_81_Open_Text.style.display='none'; Codehighlighter1_35_81_Closed_Image.style.display='inline'; Codehighlighter1_35_81_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /> <img id="Codehighlighter1_35_81_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_35_81_Closed_Text.style.display='none'; Codehighlighter1_35_81_Open_Image.style.display='inline'; Codehighlighter1_35_81_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /> </span> <span id="Codehighlighter1_35_81_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.aygfsteel.com/images/dot.gif" /> </span> <span id="Codehighlighter1_35_81_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />    isValid </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> ( isSymbolValid </span> <span style="COLOR: #000000">&&</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #000000">!</span> <span style="COLOR: #000000">isPending );<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span> </span> </div> <p>isSymbolValid是一个属性,存放StringValidator的结果ã€?br />在StockMarketPod.mxml中添加mx:StringValidator˜q™ä¸ªTag<br /></p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /> <span style="COLOR: #0000ff"><</span> <span style="COLOR: #800000">mx:StringValidator <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />    </span> <span style="COLOR: #ff0000">minLength</span> <span style="COLOR: #0000ff">="2"</span> <span style="COLOR: #ff0000"> triggerEvent</span> <span style="COLOR: #0000ff">="change"</span> <span style="COLOR: #ff0000"> <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />    source</span> <span style="COLOR: #0000ff">="{ symbolTextInput }"</span> <span style="COLOR: #ff0000"> property</span> <span style="COLOR: #0000ff">="text"</span> <span style="COLOR: #ff0000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />    valid</span> <span style="COLOR: #0000ff">="stockQuote.validateSymbol( true );"</span> <span style="COLOR: #ff0000"> <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />    invalid</span> <span style="COLOR: #0000ff">="stockQuote.validateSymbol( false );"</span> <span style="COLOR: #0000ff">/></span> </div> <p> <br />从视图中直接调用Model对象ä¸ç¬¦åˆMVC原则åQŒå› ä¸ø™§†å›‘ÖŽŸåˆ™ä¸Šåªèƒ½‹z‘֑事äšg。但在这个例å­ä¸­åQŒè¿™æ ·å·²¾lèƒö够好了ã€?/p> <p>增加格å¼åŒ?br />我们ž®†è‚¡¼œ¨æŠ¥ä»·ä»¥é‡‘é¢çš„æ–¹å¼è¿›è¡Œå±•½Cºï¼Œåœ¨StockMarketPod.mxml中增加一个formatter<br /></p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /> <span style="COLOR: #0000ff"><</span> <span style="COLOR: #800000">mx:CurrencyFormatter <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />    </span> <span style="COLOR: #ff0000">id</span> <span style="COLOR: #0000ff">="standardEuroFormatter"</span> <span style="COLOR: #ff0000">  <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />    currencySymbol</span> <span style="COLOR: #0000ff">="$"</span> <span style="COLOR: #ff0000"> precision</span> <span style="COLOR: #0000ff">="2"</span> <span style="COLOR: #0000ff">/></span> <span style="COLOR: #000000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />ž®†formatter的结果进行绑å®?br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /></span> <span style="COLOR: #0000ff"><</span> <span style="COLOR: #800000">mx:Label </span> <span style="COLOR: #ff0000">text</span> <span style="COLOR: #0000ff">="{ standardEuroFormatter.format( stockQuote.lastStockQuote ) }"</span> <span style="COLOR: #0000ff">/></span> </div> <p> <br />现在看一下完整的StockQuote¾c?br /></p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /> <span style="COLOR: #0000ff">package</span> <span style="COLOR: #000000"> com.adobe.cairngorm.samples.dashboard.model<br /><img id="Codehighlighter1_52_734_Open_Image" onclick="this.style.display='none'; Codehighlighter1_52_734_Open_Text.style.display='none'; Codehighlighter1_52_734_Closed_Image.style.display='inline'; Codehighlighter1_52_734_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_52_734_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_52_734_Closed_Text.style.display='none'; Codehighlighter1_52_734_Open_Image.style.display='inline'; Codehighlighter1_52_734_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span> <span id="Codehighlighter1_52_734_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.aygfsteel.com/images/dot.gif" /> </span> <span id="Codehighlighter1_52_734_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #0000ff">class</span> <span style="COLOR: #000000"> StockQuote<br /><img id="Codehighlighter1_80_732_Open_Image" onclick="this.style.display='none'; Codehighlighter1_80_732_Open_Text.style.display='none'; Codehighlighter1_80_732_Closed_Image.style.display='inline'; Codehighlighter1_80_732_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_80_732_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_80_732_Closed_Text.style.display='none'; Codehighlighter1_80_732_Open_Image.style.display='inline'; Codehighlighter1_80_732_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span> <span id="Codehighlighter1_80_732_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.aygfsteel.com/images/dot.gif" /> </span> <span id="Codehighlighter1_80_732_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />        [Bindable]<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000"> var lastStockQuote : Number;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />        [Bindable]<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000"> var isValid : Boolean;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />        [Bindable]<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000"> var statusMessage : String;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />                <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span> <span style="COLOR: #0000ff">private</span> <span style="COLOR: #000000"> var _isPending : Boolean;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span> <span style="COLOR: #0000ff">private</span> <span style="COLOR: #000000"> var isSymbolValid : Boolean;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />                <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />        [Bindable]<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000"> function get isPending() : Boolean<br /><img id="Codehighlighter1_384_410_Open_Image" onclick="this.style.display='none'; Codehighlighter1_384_410_Open_Text.style.display='none'; Codehighlighter1_384_410_Closed_Image.style.display='inline'; Codehighlighter1_384_410_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_384_410_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_384_410_Closed_Text.style.display='none'; Codehighlighter1_384_410_Open_Image.style.display='inline'; Codehighlighter1_384_410_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span> <span id="Codehighlighter1_384_410_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.aygfsteel.com/images/dot.gif" /> </span> <span id="Codehighlighter1_384_410_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />            </span> <span style="COLOR: #0000ff">return</span> <span style="COLOR: #000000"> _isPending;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />        <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000"> function set isPending( value : Boolean ) : </span> <span style="COLOR: #0000ff">void</span> <span style="COLOR: #000000"> <br /> <img id="Codehighlighter1_475_517_Open_Image" onclick="this.style.display='none'; Codehighlighter1_475_517_Open_Text.style.display='none'; Codehighlighter1_475_517_Closed_Image.style.display='inline'; Codehighlighter1_475_517_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /> <img id="Codehighlighter1_475_517_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_475_517_Closed_Text.style.display='none'; Codehighlighter1_475_517_Open_Image.style.display='inline'; Codehighlighter1_475_517_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span> <span id="Codehighlighter1_475_517_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.aygfsteel.com/images/dot.gif" /> </span> <span id="Codehighlighter1_475_517_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />            _isPending </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> value;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />            validate();<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />            <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000"> function validateSymbol( isValid : Boolean ) : </span> <span style="COLOR: #0000ff">void</span> <span style="COLOR: #000000"> <br /> <img id="Codehighlighter1_586_633_Open_Image" onclick="this.style.display='none'; Codehighlighter1_586_633_Open_Text.style.display='none'; Codehighlighter1_586_633_Closed_Image.style.display='inline'; Codehighlighter1_586_633_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /> <img id="Codehighlighter1_586_633_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_586_633_Closed_Text.style.display='none'; Codehighlighter1_586_633_Open_Image.style.display='inline'; Codehighlighter1_586_633_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span> <span id="Codehighlighter1_586_633_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.aygfsteel.com/images/dot.gif" /> </span> <span id="Codehighlighter1_586_633_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />            isSymbolValid </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> isValid;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />            validate();<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />        <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span> <span style="COLOR: #0000ff">private</span> <span style="COLOR: #000000"> function validate() : </span> <span style="COLOR: #0000ff">void</span> <span style="COLOR: #000000"> <br /> <img id="Codehighlighter1_677_727_Open_Image" onclick="this.style.display='none'; Codehighlighter1_677_727_Open_Text.style.display='none'; Codehighlighter1_677_727_Closed_Image.style.display='inline'; Codehighlighter1_677_727_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /> <img id="Codehighlighter1_677_727_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_677_727_Closed_Text.style.display='none'; Codehighlighter1_677_727_Open_Image.style.display='inline'; Codehighlighter1_677_727_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span> <span id="Codehighlighter1_677_727_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.aygfsteel.com/images/dot.gif" /> </span> <span id="Codehighlighter1_677_727_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />            isValid </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> ( isSymbolValid </span> <span style="COLOR: #000000">&&</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #000000">!</span> <span style="COLOR: #000000">isPending );<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span> </span> <span style="COLOR: #000000">        <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /> </span> </div> <p>其中isPending属性的值由GetStockQuoteCommand控制<br /></p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /> <span style="COLOR: #0000ff">private</span> <span style="COLOR: #000000"> var model : ModelLocator </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> ModelLocator.getInstance();<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /></span> <span style="COLOR: #0000ff">private</span> <span style="COLOR: #000000"> var stockQuote : StockQuote </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> model.stockQuote;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />         <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /></span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000"> function execute( event : CairngormEvent ) : </span> <span style="COLOR: #0000ff">void</span> <span style="COLOR: #000000"> <br /> <img id="Codehighlighter1_180_461_Open_Image" onclick="this.style.display='none'; Codehighlighter1_180_461_Open_Text.style.display='none'; Codehighlighter1_180_461_Closed_Image.style.display='inline'; Codehighlighter1_180_461_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /> <img id="Codehighlighter1_180_461_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_180_461_Closed_Text.style.display='none'; Codehighlighter1_180_461_Open_Image.style.display='inline'; Codehighlighter1_180_461_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /> </span> <span id="Codehighlighter1_180_461_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.aygfsteel.com/images/dot.gif" /> </span> <span id="Codehighlighter1_180_461_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />    stockQuote.isPending </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #0000ff">true</span> <span style="COLOR: #000000">;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />             <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />    var stockQuoteEvent : GetStockQuoteEvent </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> GetStockQuoteEvent( event );          <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />    var symbol : String </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> stockQuoteEvent.symbol;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />    var delegate : StockMarketDelegate </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #0000ff">new</span> <span style="COLOR: #000000"> StockMarketDelegate( </span> <span style="COLOR: #0000ff">this</span> <span style="COLOR: #000000"> );<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />    delegate.getQuoteForSymbol( symbol );    <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /></span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000"> function onResult( event : </span> <span style="COLOR: #000000">*</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #0000ff">null</span> <span style="COLOR: #000000"> ) : </span> <span style="COLOR: #0000ff">void</span> <span style="COLOR: #000000"> <br /> <img id="Codehighlighter1_518_722_Open_Image" onclick="this.style.display='none'; Codehighlighter1_518_722_Open_Text.style.display='none'; Codehighlighter1_518_722_Closed_Image.style.display='inline'; Codehighlighter1_518_722_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /> <img id="Codehighlighter1_518_722_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_518_722_Closed_Text.style.display='none'; Codehighlighter1_518_722_Open_Image.style.display='inline'; Codehighlighter1_518_722_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /> </span> <span id="Codehighlighter1_518_722_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.aygfsteel.com/images/dot.gif" /> </span> <span id="Codehighlighter1_518_722_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">for demo purpose: event would normally be an event object of remote service result.            </span> <span style="COLOR: #008000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" /> </span> <span style="COLOR: #000000">    stockQuote.lastStockQuote </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> event as Number;            <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />    stockQuote.isPending </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #0000ff">false</span> <span style="COLOR: #000000">;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />    stockQuote.statusMessage </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #000000">""</span> <span style="COLOR: #000000">;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /></span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000"> function onFault( event : </span> <span style="COLOR: #000000">*</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #0000ff">null</span> <span style="COLOR: #000000"> ) : </span> <span style="COLOR: #0000ff">void</span> <span style="COLOR: #000000"> <br /> <img id="Codehighlighter1_778_899_Open_Image" onclick="this.style.display='none'; Codehighlighter1_778_899_Open_Text.style.display='none'; Codehighlighter1_778_899_Closed_Image.style.display='inline'; Codehighlighter1_778_899_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /> <img id="Codehighlighter1_778_899_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_778_899_Closed_Text.style.display='none'; Codehighlighter1_778_899_Open_Image.style.display='inline'; Codehighlighter1_778_899_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /> </span> <span id="Codehighlighter1_778_899_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.aygfsteel.com/images/dot.gif" /> </span> <span id="Codehighlighter1_778_899_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />    stockQuote.lastStockQuote </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> NaN;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />    stockQuote.statusMessage </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">Quote retrieval error.</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />    stockQuote.isPending </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #0000ff">false</span> <span style="COLOR: #000000">;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span> </span> </div> <p>最åŽçœ‹ä¸€ä¸‹StockMarketPod.mxml的全部代ç ?br /></p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /> <span style="COLOR: #0000ff"><?</span> <span style="COLOR: #ff00ff">xml version="1.0" encoding="utf-8"</span> <span style="COLOR: #0000ff">?></span> <span style="COLOR: #000000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /> </span> <span style="COLOR: #0000ff"><</span> <span style="COLOR: #800000">mx:Panel <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />    </span> <span style="COLOR: #ff0000">xmlns:mx</span> <span style="COLOR: #0000ff">="http://www.adobe.com/2006/mxml"</span> <span style="COLOR: #ff0000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />    xmlns:util</span> <span style="COLOR: #0000ff">="com.adobe.cairngorm.samples.dashboard.util.*"</span> <span style="COLOR: #0000ff">></span> <span style="COLOR: #000000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />    </span> <span style="COLOR: #0000ff"><</span> <span style="COLOR: #800000">mx:Script</span> <span style="COLOR: #0000ff">></span> <span style="COLOR: #000000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        </span> <span style="COLOR: #0000ff"><![CDATA[</span> <span style="COLOR: #808080"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />            import com.adobe.cairngorm.control.CairngormEventDispatcher;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />            import com.adobe.cairngorm.samples.dashboard.model.StockQuote;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />            import com.adobe.cairngorm.samples.dashboard.events.GetStockQuoteEvent;    <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />            <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />            [Bindable]<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />            public var stockQuote : StockQuote;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />            <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />            private function getQuoteForSymbol() : void<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />            {<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />                var event : GetStockQuoteEvent = new GetStockQuoteEvent( symbolTextInput.text );<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />                CairngormEventDispatcher.getInstance().dispatchEvent( event );<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />            }<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        </span> <span style="COLOR: #0000ff">]]></span> <span style="COLOR: #000000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />    </span> <span style="COLOR: #0000ff"></</span> <span style="COLOR: #800000">mx:Script</span> <span style="COLOR: #0000ff">></span> <span style="COLOR: #000000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />    <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />    </span> <span style="COLOR: #0000ff"><</span> <span style="COLOR: #800000">mx:CurrencyFormatter <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />                </span> <span style="COLOR: #ff0000">id</span> <span style="COLOR: #0000ff">="standardEuroFormatter"</span> <span style="COLOR: #ff0000">  <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        currencySymbol</span> <span style="COLOR: #0000ff">="$"</span> <span style="COLOR: #ff0000"> precision</span> <span style="COLOR: #0000ff">="2"</span> <span style="COLOR: #0000ff">/></span> <span style="COLOR: #000000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />    </span> <span style="COLOR: #0000ff"><</span> <span style="COLOR: #800000">mx:StringValidator <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        </span> <span style="COLOR: #ff0000">minLength</span> <span style="COLOR: #0000ff">="2"</span> <span style="COLOR: #ff0000"> triggerEvent</span> <span style="COLOR: #0000ff">="change"</span> <span style="COLOR: #ff0000"> <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        source</span> <span style="COLOR: #0000ff">="{ symbolTextInput }"</span> <span style="COLOR: #ff0000"> property</span> <span style="COLOR: #0000ff">="text"</span> <span style="COLOR: #ff0000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        valid</span> <span style="COLOR: #0000ff">="stockQuote.validateSymbol( true );"</span> <span style="COLOR: #ff0000"> <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        invalid</span> <span style="COLOR: #0000ff">="stockQuote.validateSymbol( false );"</span> <span style="COLOR: #0000ff">/></span> <span style="COLOR: #000000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />    <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />    </span> <span style="COLOR: #0000ff"><</span> <span style="COLOR: #800000">mx:Form</span> <span style="COLOR: #0000ff">></span> <span style="COLOR: #000000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />    <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        </span> <span style="COLOR: #0000ff"><</span> <span style="COLOR: #800000">mx:FormItem </span> <span style="COLOR: #ff0000">label</span> <span style="COLOR: #0000ff">="Symbol"</span> <span style="COLOR: #0000ff">></span> <span style="COLOR: #000000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />            </span> <span style="COLOR: #0000ff"><</span> <span style="COLOR: #800000">mx:TextInput <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />                </span> <span style="COLOR: #ff0000">id</span> <span style="COLOR: #0000ff">="symbolTextInput"</span> <span style="COLOR: #0000ff">/></span> <span style="COLOR: #000000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />            </span> <span style="COLOR: #0000ff"><</span> <span style="COLOR: #800000">mx:Button <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />                </span> <span style="COLOR: #ff0000">label</span> <span style="COLOR: #0000ff">="Get Quote"</span> <span style="COLOR: #ff0000"> <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />                enabled</span> <span style="COLOR: #0000ff">="{ stockQuote.isValid }"</span> <span style="COLOR: #ff0000"> <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />                click</span> <span style="COLOR: #0000ff">="getQuoteForSymbol();"</span> <span style="COLOR: #0000ff">/></span> <span style="COLOR: #000000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        </span> <span style="COLOR: #0000ff"></</span> <span style="COLOR: #800000">mx:FormItem</span> <span style="COLOR: #0000ff">></span> <span style="COLOR: #000000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />                <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        </span> <span style="COLOR: #0000ff"><</span> <span style="COLOR: #800000">mx:FormItem </span> <span style="COLOR: #ff0000">label</span> <span style="COLOR: #0000ff">="Price Quote"</span> <span style="COLOR: #0000ff">></span> <span style="COLOR: #000000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />            </span> <span style="COLOR: #0000ff"><</span> <span style="COLOR: #800000">mx:Label </span> <span style="COLOR: #ff0000">text</span> <span style="COLOR: #0000ff">="{ standardEuroFormatter.format( stockQuote.lastStockQuote ) }"</span> <span style="COLOR: #0000ff">/></span> <span style="COLOR: #000000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />            </span> <span style="COLOR: #0000ff"><</span> <span style="COLOR: #800000">mx:Label </span> <span style="COLOR: #ff0000">text</span> <span style="COLOR: #0000ff">="{ stockQuote.statusMessage }"</span> <span style="COLOR: #0000ff">/></span> <span style="COLOR: #000000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        </span> <span style="COLOR: #0000ff"></</span> <span style="COLOR: #800000">mx:FormItem</span> <span style="COLOR: #0000ff">></span> <span style="COLOR: #000000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />    </span> <span style="COLOR: #0000ff"></</span> <span style="COLOR: #800000">mx:Form</span> <span style="COLOR: #0000ff">></span> <span style="COLOR: #000000">    <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /></span> <span style="COLOR: #0000ff"></</span> <span style="COLOR: #800000">mx:Panel</span> <span style="COLOR: #0000ff">></span> </div> <p> <br />此视图中我们ä¸éœ€è¦ä‹É用ModelLocatoråQŒè€Œæ˜¯ä½¿ç”¨StockQuoteä½œäØ“å‚æ•°ä¼ å…¥StockMarketPod.mxml<br />引用视图的代ç ?br /></p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /> <span style="COLOR: #0000ff"><</span> <span style="COLOR: #800000">mx:Script</span> <span style="COLOR: #0000ff">></span> <span style="COLOR: #000000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />    </span> <span style="COLOR: #0000ff"><![CDATA[</span> <span style="COLOR: #808080"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        import com.adobe.cairngorm.samples.dashboard.model.ModelLocator;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        import com.adobe.cairngorm.samples.dashboard.model.StockQuote;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />                                    <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        [Bindable]<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        private var model : ModelLocator = ModelLocator.getInstance();<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        [Bindable]<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        private var stockQuote : StockQuote = model.stockQuote;    <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />    </span> <span style="COLOR: #0000ff">]]></span> <span style="COLOR: #000000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /> </span> <span style="COLOR: #0000ff"></</span> <span style="COLOR: #800000">mx:Script</span> <span style="COLOR: #0000ff">></span> <span style="COLOR: #000000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /> <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /></span> <span style="COLOR: #0000ff"><</span> <span style="COLOR: #800000">view:StockMarketPod <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />    </span> <span style="COLOR: #ff0000">stockQuote</span> <span style="COLOR: #0000ff">="{ stockQuote }"</span> <span style="COLOR: #ff0000"> <br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />    title</span> <span style="COLOR: #0000ff">="Stockmarket Pod"</span> <span style="COLOR: #0000ff">/></span> </div> <p> </p> <p>åªä¼ é€’需è¦çš„信毾l™è§†å›¾æ˜¯ä¸€ä¸ªæ¯”è¾ƒå¥½çš„åšæ³•,而尽é‡å°‘使用ModelLocator˜q™æ ·çš„全局å˜é‡åQŒè¿™æ ·ä¹Ÿä½¿ç”¨è§†å›¾é‡ç”¨æ€§æ›´é«˜ã€?br /></p><img src ="http://www.aygfsteel.com/usherlight/aggbug/90621.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/usherlight/" target="_blank">云自无心水自é—?/a> 2006-12-29 00:36 <a href="http://www.aygfsteel.com/usherlight/archive/2006/12/29/90621.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> Ö÷Õ¾Ö©Öë³ØÄ£°å£º <a href="http://" target="_blank">Âê¶àÏØ</a>| <a href="http://" target="_blank">ÅíË®</a>| <a href="http://" target="_blank">½­ÁêÏØ</a>| <a href="http://" target="_blank">ÑĮ̀ÊÐ</a>| <a href="http://" target="_blank">½ðÕ¯ÏØ</a>| <a href="http://" target="_blank">ÊèÀÕÏØ</a>| <a href="http://" target="_blank">¼òÑôÊÐ</a>| <a href="http://" target="_blank">¹âÔóÏØ</a>| <a href="http://" target="_blank">ͼÃÇÊÐ</a>| <a href="http://" target="_blank">ƽÎäÏØ</a>| <a href="http://" target="_blank">Ǩ°²ÊÐ</a>| <a href="http://" target="_blank">á·É½ÏØ</a>| <a href="http://" target="_blank">¼òÑôÊÐ</a>| <a href="http://" target="_blank">ºØÀ¼ÏØ</a>| <a href="http://" target="_blank">ÇåºÓÏØ</a>| <a href="http://" target="_blank">¹àÔÆÏØ</a>| <a href="http://" target="_blank">²ÔÄÏÏØ</a>| <a href="http://" target="_blank">ÄÏÁêÏØ</a>| <a href="http://" target="_blank">ÌÀÒõÏØ</a>| <a href="http://" target="_blank">ÄϾ¸ÏØ</a>| <a href="http://" target="_blank">ÑÎÔ´ÏØ</a>| <a href="http://" target="_blank">±¦·áÏØ</a>| <a href="http://" target="_blank">ÉϸßÏØ</a>| <a href="http://" target="_blank">½ð̳ÊÐ</a>| <a href="http://" target="_blank">¼ªÄ¾Èø¶ûÏØ</a>| <a href="http://" target="_blank">Á°Ë®ÏØ</a>| <a href="http://" target="_blank">ɽ¶«Ê¡</a>| <a href="http://" target="_blank">»ÆÃ·ÏØ</a>| <a href="http://" target="_blank">ÂúÖÞÀïÊÐ</a>| <a href="http://" target="_blank">ͨÖÝÇø</a>| <a href="http://" target="_blank">ÓÎÏ·</a>| <a href="http://" target="_blank">ÂêÇúÏØ</a>| <a href="http://" target="_blank">½­ÁêÏØ</a>| <a href="http://" target="_blank">¾°Äþ</a>| <a href="http://" target="_blank">²ÔÉ½ÏØ</a>| <a href="http://" target="_blank">ÖÐÑôÏØ</a>| <a href="http://" target="_blank">»ªÆºÏØ</a>| <a href="http://" target="_blank">ÎýÁÖºÆÌØÊÐ</a>| <a href="http://" target="_blank">ƽ²ýÏØ</a>| <a href="http://" target="_blank">ƽÁ¹ÊÐ</a>| <a href="http://" target="_blank">Ë«ÁÉÊÐ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>