flex 博客阅读器 实现代码

flex 博客阅读器的具体实现代码,大家可以参考下。

根据由 刘刚 翻译的“flex中文帮助”整理而来

为了完成这个项目,执行的步骤如下:
1. 设置项目
2. 检查要访问的远程数据源
    出于安全的原因,在客户端计算机上Flash Player 中运行的应用程序,只有在满足如下
    条件之一的情况下,才能访问远程的数据:
    a. 应用程序的SWF 文件与远程数据源位于同一个域中。
    b. 使用代理,同时SWF 文件与代理位于同一个服务器中。
    c. 在数据源的宿主web 服务器上安装crossdomain.xml(跨域策略)文件。
    本节中例子使用的是第三种方法。
插入并配置 blog 阅读器
在本小节,你将学习创建一个blog 阅读器。
1. 在导航视图中选择Lessons 项目,选择File > New > MXML Application 并创建一个
    叫BlogReader.mxml 的文件。
2. 将BlogReader.mxml 设置为被编译的默认文件。
3. 在MXML 编辑器的设计模式下,从组件视图中拖拉出一个面板容器,并设置它的相
    应属性值:
    Title: Blog Reader
    Width: 475
    Height: 400
    X: 10
    Y: 10
4. 在设计模式下,从组件视图中拖拉出如下组件到面板容器里:
    DataGrid
    TextArea
    LinkButton
5. 使用鼠标将控件布置成垂直排列的、左对齐的列。
6. 选择DataGrid 控件并设置相应属性:
    Id: dgPosts
    X: 20
    Y: 20
    Width: 400
7. 选择TextArea 控件并设置相应属性:
    X: 20
    Y: 175
    Width: 400
8. 选择LinkButton 控件并设置相应属性:
    Label: Read Full Post
    X: 20
    Y: 225
    界面布局看起来就象这样:

   


9. 点击工具条上的Source button 切换成编辑器源代码模式。在BlogReader.mxml 文件
   中输入如下MXML 代码:
  
   http://www.adobe.com/2006/mxml" layout="absolute">
                                    title="Blog Reader">
              
                     
                           
                           
                           
                      

               

             
              
        

   

10. 保存文件, 完成编译后运行。一个浏览器窗口将打开, 如下所示。


到这一步,应用程序还没有显示任何blog 信息。接下来的一步是使用一个称之为
HTTPService 的RPC 服务组件来获取blog 的信息。


插入 HTTPService 组件
对于 blog 阅读器这个项目,其数据源来自于http://www.adobe.com/go/mchotinblog。你
使用HTTPService 组件来访问blog 的XML。该组件发送HTTP GET 或POST 请求,并获取
反馈回来的数据。
1. 在源代码模式下,在标签中输入标签:
id="feedRequest"
url="
http://weblogs.macromedia.com/mchotin/index.xml"
useProxy="false"/>
url 属性指明了被请求文件所在的位置。在本例中,该URL 一直是有效的,但是你仍然
需要确定它是否已经发生改变。
useProxy 属性表明你并不打算在服务器上使用代理。因为Matt's blog 上面有
crossdomain.xml 设置,所以Flash Player 可以访问该服务器上的远程数据。
接下来提示应用程序向指定的URL 发送请求。

2. 在标签后,添加creationComplete 属性(粗体显示):
http://www.adobe.com/2006/mxml" layout="absolute"
creationComplete="feedRequest.send()" >
你的应用程序每次启动时,HTTPService 组件的send()方法将被调用。该方法向指定
的URL 发出HTTP GET 或POST 请求,并得到HTTP 回应。在本例中,RSS feed 将返回
XML 数据。
接下来,检测RSS feed 的获取是否成功。然后将数据绑定到Label 控件上,就象这样:

3. 在标签中,将title 属性的值用随后的表达式替换:
title="{feedRequest.lastResult.rss.channel.title}"
当HTTPService 组件返回XML 时,在名叫lastResult 的ActionScript 对象中进行剖析。
lastResult 对象的结构反映了XML 文档的结构。


XML 的结构通常如下所示:


<br>other child nodes of <channel><br><item><br><title><br>other child nodes of <item><br></item><br>...<br>HTTPService 组件的lastResult 对象反映了这种结构,你的代码看起来就象这样:<br><?xml version="1.0" encoding="utf-8"?><br><mx:application xmlns:mx="<a href=" http:><font color=#0000ff>http://www.adobe.com/2006/mxml</font></a>"<br>layout="absolute"<br>creationComplete="feedRequest.send()" ><br><mx:HTTPService<br>id="feedRequest"<br>url="<a href="http://weblogs.macromedia.com/mchotin/index.xml"><font color=#0000ff>http://weblogs.macromedia.com/mchotin/index.xml</font></a>"<br>useProxy="false" /><br><mx:panel x="10" y="10" width="475" height="400" layout="absolute" <br>title="{feedRequest.lastResult.rss.channel.title}"><br><mx:datagrid x="20" y="20" id="dgPosts" width="400"><br><mx:columns><br><mx:datagridcolumn headertext="Column 1" datafield="col1"/><br><mx:datagridcolumn headertext="Column 2" datafield="col2"/><br><mx:datagridcolumn headertext="Column 3" datafield="col3"/><br></mx:columns><br></mx:datagrid><br><mx:linkbutton x="20" y="225" label="Read Full Post"/><br><mx:textarea x="20" y="175" width="400"/><br></mx:panel><br></mx:application><br>4. 保存文件,编译完运行。<br><strong></strong></p><p><strong>组装 DataGrid 控件</strong><br>在应用程序中,使用DataGrid 控件显示新近贴子的标题。<br>1. 在源代码模式下,在<mx:datagrid>标签中输入随后的dataProvider 属性:<br><mx:datagrid x="20" y="20" id="dgPosts" width="400" <br><strong>dataProvider="{feedRequest.lastResult.rss.channel.item}"</strong> ><br>名称为item 的XML 结点为DataGrid 控件提供数据。在XML 中这个结点是重复的,所<br>以它在DataGrid 中也是重复的。<br>2. 在第一个<mx:datagridcolumn>标签里,键入如随后所示的headerText 和dataField<br>属性值:<br><mx:datagridcolumn headertext="Posts" <strong>dataField="title"</strong> /><br>DataGrid 控件的第一列用来显示标题。实现它是通过确定包含标题数据的XML 中的字<br>段,然后输入这个字段作为dataField 的属性值。在dataProvider 属性(item)中指定的XML<br>结点,名为title 的子结点中包含了所需的信息。<br>3. 在第二个<mx:datagridcolumn>标签中,输入如随后所示的headerText,dataField 和<br>width 属性值:<br><mx:datagridcolumn headertext="Date" <strong>dataField="pubDate" width="150"</strong> /><br>DataGrid 中的第二列用来显示日期。在本例中,包含数据的字段被称之为pubDate。<br>4. 删除第三个<mx:datagridcolumn>标签,因为我们在这里并不需要第三列。<br><mx:datagrid>标签看起来就象这样:<br><mx:datagrid x="20" y="20" id="dgPosts" width="400" <br>dataProvider="{feedRequest.lastResult.rss.channel.item}"><br><mx:columns><br><mx:datagridcolumn headertext="Posts" datafield="title"/><br><mx:datagridcolumn headertext="Date" datafield="pubDate" width="150"/><br></mx:columns><br></mx:datagrid><br>5. 保存文件,编译后运行。</p><p><img height=663 alt="" src="https://ss.0133.cn/article/a3/c9/fd/a3c9fd2cf673d3be90fb2cb46d6f0b4c.jpg-600" width=648></p><p><strong>显示所选的项</strong><br>当用户在DataGrid 控件中进行选择时,你希望应用程序在TextArea 控件中只显示贴子<br>的头几行内容。在XML 供给器的项结点中,这个信息被包含在一个称之为description 的字<br>段里。<br>1. 在源代码模式中,在<mx:textarea>标签中输入如随后所示的htmlText 属性:<br><mx:textarea x="20" y="175" width="400" <br><strong>htmlText="{dgPosts.selectedItem.description}"</strong> /><br>对于在DataGrid 组件中所选择的每个项(名称为dgPosts),description 字段的数值被使<br>用作为htmlText 的属性,该属性使你可以显示HTML 格式的文本。<br>2. 保存文件,编译后运行。点击 DataGrid 控件中的分列,每个贴子的头几行内容将出<br>现在TextArea 控件中。</p><p><img height=531 alt="" src="https://ss.0133.cn/article/4a/38/85/4a3885e3418221c9c80b24fa740bbba0.jpg-600" width=520></p><p><br><strong>创建一个动态连接</strong><br>RSS 供给器并不提供贴子的完整文本,但是你还是可以使用户能够读到这些贴子,如果<br>他们有兴趣的话。RSS 供给器没有提供的信息,可以通过连接到各个贴子的URLs 来实现。<br>在XML 供给器的item 结点中,这个信息被包含在一个称之为link 的字段中。<br>你可以创建一个动态连接来显示在DataGrid 中被选贴子的全部内容。<br>1. 在源代码模式里,在<mx:linkbutton>标签中输入如随后所示的click 属性:<br><mx:linkbutton x="20" y="225" label="Read Full Post" <br><strong>click="navigateToURL(new URLRequest(dgPosts.selectedItem.link));"</strong> /><br>DataGrid 控件中被选项的连接字段的值,dgPosts.selectedItem.link 由navigateToURL()<br>方法的参数所指定,每当用户点击LinkButton 控件时被调用。navigateToURL() 方法在一<br>个新打开的浏览器窗口中,加载从指定URL 传来的文档。<br>2. 保存文件,编译后运行。</p><p>以上就是制作一个bolg阅读器的步骤与代码。</p></div><p>以上就是flex 博客阅读器 实现代码的详细内容,更多请关注0133技术站其它相关文章!</p></article><div class="post-actions"><a href="javascript:;" etap="like" class="post-like action action-like" data-pid="0"><i class="fa fa-thumbs-o-up"></i>赞(<span>0</span>)</a><a href="javascript:;" class="action action-rewards" data-event="rewards"><i class="fa fa-jpy"></i> 打赏</a></div><div class="post-copyright">未经允许不得转载:<a href="/">0133技术站首页</a> » <a href="/cate155/">Flex</a></div><!--<div class="article-tags">标签:<a href="/archives/tag/javascript" rel="tag">JavaScript</a><a href="/archives/tag/%e5%be%ae%e4%bf%a1" rel="tag">微信</a><a href="/archives/tag/%e5%be%ae%e4%bf%a1%e7%9a%84%e7%89%88%e6%9c%ac%e5%8f%b7" rel="tag">微信的版本号</a><a href="/archives/tag/%e7%89%88%e6%9c%ac%e5%8f%b7" rel="tag">版本号</a><a href="/archives/tag/%e8%af%ad%e4%b9%89%e5%8c%96" rel="tag">语义化</a></div>--><nav class="article-nav"><span class="article-nav-prev">上一篇<br><a href="/cate155/11962096108225.html" rel="prev">基于Socket的网络连接 Flex与.NET互操作(一)</a></span><span class="article-nav-next">下一篇<br><a href="/cate155/11962115725625.html" rel="next">Flex字符串比较 还有Flex字符串操作</a></span></nav><div class="relates relates-thumb"><div class="title"><h3>相关文章</h3></div><ul><li><a href="/cate155/1114728209600.html"><img data-src="https://ss.0133.cn/article/a1/0c/df/a10cdf0c49f2fcbb45847d64e06f9bcd.jpg-160" alt="全面了解flex的用途" class="thumb"></a><a href="/cate155/1114728209600.html">全面了解flex的用途</a></li><li><a href="/cate155/1114729423225.html"><img data-src="https://ss.0133.cn/article/75/48/05/75480534530eb5b18c6bbe4efab7ed7e.jpg-160" alt="Flex中对表格某列的值进行数字格式化并求百分比添加%" class="thumb"></a><a href="/cate155/1114729423225.html">Flex中对表格某列的值进行数字格式化并求百分比添加%</a></li><li><a href="/cate155/1114730636900.html"><img data-src="https://ss.0133.cn/article/1d/db/63/1ddb63979c205de86f6a59c660a5a7c2.jpg-160" alt="Flex中对表格中某列的值进行数字格式化保留两位小数" class="thumb"></a><a href="/cate155/1114730636900.html">Flex中对表格中某列的值进行数字格式化保留两位小数</a></li><li><a href="/cate155/1114731850625.html"><img data-src="https://ss.0133.cn/article/1d/db/63/1ddb63979c205de86f6a59c660a5a7c2.jpg-160" alt="Flex中怎么给表格中的滚动条定位避免刷新回到原处" class="thumb"></a><a href="/cate155/1114731850625.html">Flex中怎么给表格中的滚动条定位避免刷新回到原处</a></li><li><a href="/cate155/1114733064400.html"><img data-src="https://ss.0133.cn/article/1d/db/63/1ddb63979c205de86f6a59c660a5a7c2.jpg-160" alt="Flex 输出文件到本地的两种方法" class="thumb"></a><a href="/cate155/1114733064400.html">Flex 输出文件到本地的两种方法</a></li><li><a href="/cate155/1114734278225.html"><img data-src="https://ss.0133.cn/article/1d/db/63/1ddb63979c205de86f6a59c660a5a7c2.jpg-160" alt="ie9下关闭弹出窗口出现__flash__removeCallback未定义错误" class="thumb"></a><a href="/cate155/1114734278225.html">ie9下关闭弹出窗口出现__flash__removeCallback未定义错误</a></li><li><a href="/cate155/1114735492100.html"><img data-src="https://ss.0133.cn/article/db/0e/2b/db0e2bd9fa4861d9b5b87a7be1eb5a29.jpg-160" alt="Flex设置LinkButton的背景色有思路有源码" class="thumb"></a><a href="/cate155/1114735492100.html">Flex设置LinkButton的背景色有思路有源码</a></li><li><a href="/cate155/1114736706025.html"><img data-src="https://ss.0133.cn/article/a8/17/0f/a8170fd1f141b3c90c03481675f5922d.jpg-160" alt="Flex播放器(实现播放、缓冲进度条和音频曲线显示)" class="thumb"></a><a href="/cate155/1114736706025.html">Flex播放器(实现播放、缓冲进度条和音频曲线显示)</a></li></ul></div><!-- <div class="title" id="comments"><h3>评论 <small>抢沙发</small></h3></div><div id="respond" class="no_webshot"><form action="return false;" method="post" id="commentform"><div class="comt"><div class="comt-title"><img data-src="https://secure.gravatar.com/avatar/?s=100&d=mm" class="avatar avatar-100" height="50" width="50"><p><a id="cancel-comment-reply-link" href="javascript:;">取消</a></p></div><div class="comt-box"><textarea placeholder="你的评论可以一针见血" class="input-block-level comt-area" name="comment" id="comment" cols="100%" rows="3" tabindex="1" onkeydown="if(event.ctrlKey&&event.keyCode==13){document.getElementById('submit').click();return false};"></textarea><div class="comt-ctrl"><div class="comt-tips"><input type='hidden' name='comment_post_ID' value='6053' id='comment_post_ID'/><input type='hidden' name='comment_parent' id='comment_parent' value='0'/><p style="display: none;"><input type="hidden" id="akismet_comment_nonce" name="akismet_comment_nonce" value="40dd7081eb"/></p><label for="comment_mail_notify" class="checkbox inline hide" style="padding-top:0"><input type="checkbox" name="comment_mail_notify" id="comment_mail_notify" value="comment_mail_notify" checked="checked"/>有人回复时邮件通知我</label><p style="display: none;"><input type="hidden" id="ak_js" name="ak_js" value="245"/></p></div><button type="button" name="submit" id="submit" tabindex="5">提交评论</button>--><!-- <span data-type="comment-insert-smilie" class="muted comt-smilie"><i class="icon-thumbs-up icon12"></i> 表情</span> --><!-- </div></div><div class="comt-comterinfo" id="comment-author-info"><ul><li class="form-inline"><label class="hide" for="author">昵称</label><input class="ipt" type="text" name="author" id="author" value="" tabindex="2" placeholder="昵称"><span class="text-muted">昵称 (必填)</span></li><li class="form-inline"><label class="hide" for="email">邮箱</label><input class="ipt" type="text" name="email" id="email" value="" tabindex="3" placeholder="邮箱"><span class="text-muted">邮箱 (必填)</span></li><li class="form-inline"><label class="hide" for="url">网址</label><input class="ipt" type="text" name="url" id="url" value="" tabindex="4" placeholder="网址"><span class="text-muted">网址</span></li></ul></div></div></form></div>--></div></div><div class="sidebar"><div class="widget widget_ui_tags"><h3>编程</h3><div class="items"><a href="/cate104/">Java</a><a href="/cate105/">C语言</a><a href="/cate133/">新手学堂</a><a href="/cate149/">数据库</a><a href="/cate151/">ASP编程</a><a href="/cate153/">PHP编程</a><a href="/cate154/">XML/RSS</a><a href="/cate155/">Flex</a><a href="/cate156/">正则表达式</a><a href="/cate158/">R语言</a><a href="/cate159/">汇编语言</a><a href="/cate160/">其他教程</a><a href="/cate165/">移动</a></div></div><form method="get" class="search-form clearfix" id="search-formhybrid-search" target="_blank" action="/search/article/"><div class="search-input-wrap"><input type="text" class="search-text" placeholder="来搜我" name="word" id="search-texthybrid-search" value="" data-placeholder=""><b class="search-liaosheji"></b><button type="submit" class="search-button"><i class="icon-search"></i></button></div></form><div style="text-align:center;margin:0 auto;"><ul class='hot-search layui-clear'><li style="float:left;margin-right:20px;">热门搜索:</li><li style="float:left;margin-right:20px;"><a href='/search/article/?word=用实现ajax读博客rss示例代码'>用实现ajax读博客rss示例代码</a></li><li style="float:left;margin-right:20px;"><a href='/search/article/?word=阅读代码'>阅读代码</a></li><li style="float:left;margin-right:20px;"><a href='/search/article/?word=代码阅读'>代码阅读</a></li><li style="float:left;margin-right:20px;"><a href='/search/article/?word=源代码阅读'>源代码阅读</a></li><li style="float:left;margin-right:20px;"><a href='/search/article/?word=博客订阅'>博客订阅</a></li></ul></div><br/><div class="widget widget_ui_posts"><h3>置顶推荐</h3><ul><li><a href="/cate99/113178750199025.html"><span class="thumbnail"><img data-src="https://ss.0133.cn/upload/article/000/000/001/61bd4e2ed5539753.jpg" alt="淘宝购物使用哪种工具沟通" class="thumb"></span><span class="text">淘宝购物使用哪种工具沟通</span><span class="muted">2021-12-18</span></a></li></ul></div><div class="widget widget_recent_entries"><h3>猜你喜欢</h3><ul><li><a href="/cate155/11202221056100.html" target="_blank">Flex 事件分发(FlexViewer事件机制)剥离过程</a><span class="post-date">2021-09-26</span></li><li><a href="/cate155/11493716982500.html" target="_blank">Flex 获取每月第几周小例子</a><span class="post-date">2021-10-07</span></li><li><a href="/cate155/11960899825025.html" target="_blank">让Flex Builder 3.0与Eclipse3.4整合起来</a><span class="post-date">2021-10-13</span></li><li><a href="/cate155/11962164770000.html" target="_blank">Flex 实现可以拖动的毛玻璃效果</a><span class="post-date">2021-10-13</span></li><li><a href="/cate155/11962007832400.html" target="_blank">Flex与.NET互操作(十二):FluorineFx.Net的及时通信应用(Remote Shared Objects)(三)</a><span class="post-date">2021-10-13</span></li><li><a href="/cate155/11494075399025.html" target="_blank">Flex中在Tree绑定数据后自动展开树节点的方法</a><span class="post-date">2021-10-07</span></li><li><a href="/cate155/11493829412900.html" target="_blank">Flex实现的上传摄像头拍照并将UI保存为图片</a><span class="post-date">2021-10-07</span></li><li><a href="/cate155/11493871577600.html" target="_blank">flex复选框和下拉列表的几种用法整理</a><span class="post-date">2021-10-07</span></li></ul></div><!--<div class="widget widget_ui_tags"><h3>热门标签</h3><div class="items"><a href="/archives/tag/javascript">JavaScript (324)</a></div></div><div class="widget widget_ui_comments"><h3>最新评论</h3><ul><li><a href="" title=""><img data-src="" class="avatar avatar-100" height="50" width="50"><strong></strong></a></li></ul></div>--></div><div id="leftbar" class="leftbar"><div class="leftbar-con"><div style="text-align: center; width: 160px;"></div></div></div></section><footer class="footer"><div class="container"><p>© 2022 <a href="/">WEB前端开发</a></p><p><a href="/cate88/">工具教程</a> | <a href="/cate71/">前端开发</a> | <a href="/cate61/">常见问题</a> | <a href="/cate129/">操作系统</a> | <a href="/cate103/">编程</a> | <a href="/cate108/">网络安全</a> | <a href="/cate120/">设计</a> | <a href="/cate137/">站长技巧</a></p><div class="footer-gav" style="margin-bottom: 10px ;font-size: 12px;"><img src="https://ss.0133.cn/newimg88/2016/06/beian-gov-cn.png" style="vertical-align: middle; height: 14px;"/><a href="https://beian.miit.gov.cn/" target="_blank">鄂ICP备2021014202号-2</a></div><div class="footer-qrcode"></div></div></footer><script> window.jsui = { www: '', uri: '/wp-content/themes/dux', ver: '5.2.5', roll: ["1", "2"], ajaxpager: '0', url_rp: '/about' }; </script><script type='text/javascript' src='/wp-content/themes/dux/js/libs/bootstrap.min.js?ver=5.2.5'></script><script type='text/javascript' src='/wp-content/themes/dux/js/loader.js?ver=5.2.5'></script><script type='text/javascript' src='/wp-includes/js/wp-embed.min.js?ver=5.0.2'></script><script async="async" type='text/javascript' src='/wp-content/plugins/akismet/_inc/form.js?ver=4.0.8'></script><script type="text/javascript"> var $win = jQuery(window); var $WindowW = $win.width(); var $threebar = jQuery("#leftbar"); if ($threebar.length) { var offsetT = $threebar.offset().top; $win.on("scroll.leftbar", function () { if ($WindowW >= 1200) { if ($win.scrollTop() >= (offsetT)) { $threebar.find(".leftbar-con").css({ "position": "fixed", "top": 0 }); } else { $threebar.find(".leftbar-con").css("position", "static") } } }); } // Array var imagesArr = []; $('#article-content').find("img").each(function (index, Element) { imagesArr.push(Element) }); mediumZoom(imagesArr, { margin: 24, background: '#FFFFFF', scrollOffset: 0 }) </script><script> (function (i, s, o, g, r, a, m) { i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () { (i[r].q = i[r].q || []).push(arguments) }, i[r].l = 1 * new Date(); a = s.createElement(o), m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m) })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga'); ga('create', 'UA-3448069-1', 'css88.com'); ga('send', 'pageview'); </script><script> var _hmt = _hmt || []; (function () { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?08985692e4db1e8be1cff8097c2979b7"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script><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></html>