<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>IT妖怪 &#187; syw00syw</title>
	<atom:link href="http://blog.ityao.com/archives/author/syw00syw/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.ityao.com</link>
	<description>热爱生活，热爱程序</description>
	<lastBuildDate>Wed, 03 Aug 2011 02:56:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>外部调用字体文件实现字体嵌入</title>
		<link>http://blog.ityao.com/archives/739</link>
		<comments>http://blog.ityao.com/archives/739#comments</comments>
		<pubDate>Fri, 11 Jun 2010 11:15:06 +0000</pubDate>
		<dc:creator>syw00syw</dc:creator>
				<category><![CDATA[杂七杂八]]></category>

		<guid isPermaLink="false">http://blog.ityao.com/?p=739</guid>
		<description><![CDATA[为了能在客户浏览器上准确显示设计者设计使用的字体，需要将字体文件嵌入到程序中，实现起来分为 字体文件编译进swf 和 外部调用字体文件两种。 编译进swf中会导致swf文件体积骤然增大，让swf文件调用外部的字体文件则更加适用（此时的字体文件为swf格式的文件） 步骤一    创建swf格式的字体文件。创建外部css文件，定义嵌入字体@font-face{ src:url(&#8220;&#8230;./xxx/xxx/MSYHBD.TTF&#8221;)   font-family:XXX   }; 在管理器窗口右键点击该css文件选择“将css编译为SWF”，执行编译，bindebug中会生成与该css同名的swf文件，此乃包含MSYHBD字体的文件，供其他程序调用。 步骤二    注意先将之前“将css编译为SWF”设置的勾选去掉，在程序代码中使用方法 styleManager.loadStyleDeclarations(&#8220;&#8230;./xxx/xxx/XXX.swf&#8221;)来调用;   编译运行。 END]]></description>
			<content:encoded><![CDATA[<p>为了能在客户浏览器上准确显示设计者设计使用的字体，需要将字体文件嵌入到程序中，实现起来分为 字体文件编译进swf 和 外部调用字体文件两种。</p>
<p>编译进swf中会导致swf文件体积骤然增大，让swf文件调用外部的字体文件则更加适用（此时的字体文件为swf格式的文件）</p>
<p>步骤一    创建swf格式的字体文件。创建外部css文件，定义嵌入字体@font-face{ src:url(&#8220;&#8230;./xxx/xxx/MSYHBD.TTF&#8221;)   font-family:XXX   };</p>
<p>在管理器窗口右键点击该css文件选择“将css编译为SWF”，执行编译，bindebug中会生成与该css同名的swf文件，此乃包含MSYHBD字体的文件，供其他程序调用。</p>
<p>步骤二    注意先将之前“将css编译为SWF”设置的勾选去掉，在程序代码中使用方法 styleManager.loadStyleDeclarations(&#8220;&#8230;./xxx/xxx/XXX.swf&#8221;)来调用;   编译运行。</p>
<p>END</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ityao.com/archives/739/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FlexBuilder中使用代码片断工具</title>
		<link>http://blog.ityao.com/archives/665</link>
		<comments>http://blog.ityao.com/archives/665#comments</comments>
		<pubDate>Wed, 05 May 2010 11:25:40 +0000</pubDate>
		<dc:creator>syw00syw</dc:creator>
				<category><![CDATA[Adobe AIR]]></category>
		<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[ADOBE RIA]]></category>

		<guid isPermaLink="false">http://blog.ityao.com/?p=665</guid>
		<description><![CDATA[1.1 工具介绍 使用代码片断工具，您可以存储内容（文档中重复出现的代码如public function …( ):void{   }等）以便快速重复使用。多种软件都含有此工具（例如Dreamweaver），flexbuilder中此工具包含在CFEclipse插件中。 1.2 安装与使用 安装步骤： a．  帮助       安装新软件； b．  使用（W）一栏中输入地址   http://www.cfeclipse.org/update c．  输入网址后按Enter，程序连接服务器，窗口显示“暂挂中”，连接完毕后窗口会显示出可供安装的程序，选择CFEclipse CFML Editor   点 下一步 d．  点 完成  开始下载   出现安全警告提示软件未签名 点击确定  之后按提示重启flex builder e．  打开工具窗口（Snip Tree View）； f．   编辑代码片断   新建片断 g．  按钮插入该片断（只适用于AS代码文件） h．  片断中适用参量：$${    }   如图中代码 在插入该片断时会出现提示框，要求输入$${}标记的参数值name  如图 确定后整段代码被插入]]></description>
			<content:encoded><![CDATA[<h2>1.1 工具介绍</h2>
<p>使用代码片断工具，您可以存储内容（文档中重复出现的代码如public function …( ):void{   }等）以便快速重复使用。多种软件都含有此工具（例如Dreamweaver），flexbuilder中此工具包含在CFEclipse插件中。</p>
<h2>1.2 安装与使用</h2>
<p>安装步骤：</p>
<p>a．  帮助       安装新软件；</p>
<p><a rel="attachment wp-att-657" href="http://blog.ityao.com/archives/665/attachment/001"><img class="alignnone size-medium wp-image-657" src="http://blog.ityao.com/wp-content/uploads/2010/05/001-259x300.jpg" alt="" width="259" height="300" /></a></p>
<p>b．  使用（W）一栏中输入地址   <a href="http://www.cfeclipse.org/update">http://www.cfeclipse.org/update</a></p>
<p><a rel="attachment wp-att-658" href="http://blog.ityao.com/archives/665/attachment/002"><img class="alignnone size-medium wp-image-658" src="http://blog.ityao.com/wp-content/uploads/2010/05/002-282x300.jpg" alt="" width="282" height="300" /></a></p>
<p>c．  输入网址后按Enter，程序连接服务器，窗口显示“暂挂中”，连接完毕后窗口会显示出可供安装的程序，选择CFEclipse CFML Editor   点 下一步</p>
<p>d．  点 完成  开始下载   出现安全警告提示软件未签名 点击确定  之后按提示重启flex builder</p>
<p>e．  打开工具窗口（Snip Tree View）；</p>
<p><a rel="attachment wp-att-659" href="http://blog.ityao.com/archives/665/attachment/003"><img class="alignnone size-full wp-image-659" src="http://blog.ityao.com/wp-content/uploads/2010/05/003.jpg" alt="" width="579" height="588" /></a></p>
<p>f．   编辑代码片断   新建片断<a rel="attachment wp-att-660" href="http://blog.ityao.com/archives/665/attachment/004"><img class="alignnone size-full wp-image-660" src="http://blog.ityao.com/wp-content/uploads/2010/05/004.jpg" alt="" width="17" height="19" /></a></p>
<p><a rel="attachment wp-att-661" href="http://blog.ityao.com/archives/665/attachment/005"><img class="alignnone size-full wp-image-661" src="http://blog.ityao.com/wp-content/uploads/2010/05/005.jpg" alt="" width="500" height="745" /></a></p>
<p>g．  <a rel="attachment wp-att-662" href="http://blog.ityao.com/archives/665/attachment/006"><img class="alignnone size-full wp-image-662" src="http://blog.ityao.com/wp-content/uploads/2010/05/006.jpg" alt="" width="22" height="24" /></a>按钮插入该片断（只适用于AS代码文件）</p>
<p>h．  片断中适用参量：$${    }   如图中代码</p>
<p><a rel="attachment wp-att-663" href="http://blog.ityao.com/archives/665/attachment/007"><img class="alignnone size-full wp-image-663" src="http://blog.ityao.com/wp-content/uploads/2010/05/007.jpg" alt="" width="491" height="741" /></a></p>
<p>在插入该片断时会出现提示框，要求输入$${}标记的参数值name  如图</p>
<p><a rel="attachment wp-att-664" href="http://blog.ityao.com/archives/665/attachment/008"><img class="alignnone size-full wp-image-664" src="http://blog.ityao.com/wp-content/uploads/2010/05/008.jpg" alt="" width="320" height="169" /></a></p>
<p>确定后整段代码被插入</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ityao.com/archives/665/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>httpservice request传参数的几种方式</title>
		<link>http://blog.ityao.com/archives/629</link>
		<comments>http://blog.ityao.com/archives/629#comments</comments>
		<pubDate>Wed, 05 May 2010 04:18:40 +0000</pubDate>
		<dc:creator>syw00syw</dc:creator>
				<category><![CDATA[Adobe AIR]]></category>
		<category><![CDATA[Adobe Flash]]></category>
		<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[ADOBE RIA]]></category>

		<guid isPermaLink="false">http://blog.ityao.com/?p=629</guid>
		<description><![CDATA[mxml代码中 httpservice 组件,连接一php计算器 httpService组件，在as块中传入参数 as代码中，使用httpservice类 as代码中使用urlloader]]></description>
			<content:encoded><![CDATA[<p>mxml代码中 httpservice 组件,连接一php计算器</p>
<pre class="brush: plain; title: ; notranslate">
&lt;s:Button click=&quot;this.hs.send();&quot;/&gt;
&lt;fx:Declarations&gt;
	&lt;s:HTTPService id=&quot;hs&quot; url=&quot;http://127.0.0.1/cal.php&quot; method=&quot;GET&quot;&gt;
		&lt;s:request xmlns=&quot;&quot;&gt;
			&lt;calculator&gt;plus&lt;/calculator&gt;
			&lt;param1&gt;10&lt;/param1&gt;
			&lt;param2&gt;23&lt;/param2&gt;
		&lt;/s:request&gt;
		&lt;s:fault&gt;
			&lt;![CDATA[
				trace(&quot;&quot;)
			]]&gt;
		&lt;/s:fault&gt;
		&lt;s:result&gt;
			&lt;![CDATA[
				trace(event.result.result.equals)
			]]&gt;
		&lt;/s:result&gt;
	&lt;/s:HTTPService&gt;
&lt;/fx:Declarations&gt;
</pre>
<p>httpService组件，在as块中传入参数</p>
<pre class="brush: plain; title: ; notranslate">
var param:Object = {calculator:&quot;minus&quot;,param1:&quot;23&quot;,param2:&quot;13&quot;}
httpServ.send(param)

&lt;mx:HTTPService id=&quot;httpServ&quot;&gt;
	&lt;mx:resultFormat&gt;text&lt;/mx:resultFormat&gt;
	&lt;mx:url&gt;http://127.0.0.1/cal.php&lt;/mx:url&gt;
	&lt;mx:fault&gt;Alert.show(event.toString(), event.type);&lt;/mx:fault&gt;
&lt;/mx:HTTPService&gt;
</pre>
<p>as代码中，使用httpservice类</p>
<pre class="brush: plain; title: ; notranslate">
public var httpservice:mx.rpc.http.HTTPService = new mx.rpc.http.HTTPService();
public var param:Object={calculator:&quot;minus&quot;,param1:&quot;23&quot;,param2:&quot;13&quot;};
public function send_data():void{
	httpservice.url =&quot;http://127.0.0.1/cal.php&quot;;
	httpservice.method = &quot;POST&quot;;
	httpservice.addEventListener(ResultEvent.RESULT, resultHandler);
	httpservice.addEventListener(FaultEvent.FAULT, this.HttpErrorHandle);
	httpservice.send(param);
		}
</pre>
<p>as代码中使用urlloader</p>
<pre class="brush: plain; title: ; notranslate">
public function Temp()
		{
			var url:String = &quot;http://127.0.0.1/cal.php&quot;
			var urlVariables:URLVariables = new URLVariables();
			urlVariables.decode(&quot;calculator=plus&amp;param1=10&amp;param2=22&quot;);
			var request:URLRequest = new URLRequest(url);
			request.data = urlVariables;
			request.method = URLRequestMethod.POST

			var loader:URLLoader = new URLLoader()
			loader.dataFormat = URLLoaderDataFormat.TEXT
			loader.addEventListener(Event.COMPLETE, onComplete)
			loader.load(request);

		}
		public function onlistener(event:Event):void{
			var xml:XML = new XML(event.target.data)

			trace(xml..equals)
		}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.ityao.com/archives/629/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AS3中使用Twitter API</title>
		<link>http://blog.ityao.com/archives/601</link>
		<comments>http://blog.ityao.com/archives/601#comments</comments>
		<pubDate>Tue, 04 May 2010 07:59:49 +0000</pubDate>
		<dc:creator>syw00syw</dc:creator>
				<category><![CDATA[Adobe AIR]]></category>
		<category><![CDATA[Adobe Flash]]></category>
		<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[ADOBE RIA]]></category>

		<guid isPermaLink="false">http://blog.ityao.com/?p=601</guid>
		<description><![CDATA[自制app使用Twitter API 1.1   准备工作 A．注册Twitter用户 B． 下载库文件http://dev.twitter.com/pages/libraries 本实例使用ActionScript 库文件 TwitterScript http://code.google.com/p/twitterscript/ C． Twitter官方文档 http://dev.twitter.com/doc TwitterScript并无说明文档，Twitter官方的文档和TwitterScript的代码不一致，但不矛盾。 1.2 需求说明 制作AIR程序（图1），实现如下功能 a．  显示当前用户头像，用户名 b．  显示当前用户following   followers c．  显示当前用户friends Tweet  public Tweet d．  提交新Tweet，并体现到friends Tweet中 图1 程序界面 1.3编写代码 Twitter数据调用多数需要身份验证，有的是不需要的。 Twitter的身份验证简单，只需将用户名和密码编码后嵌入到实际调用数据的request的requestHeaders中即可（暂不考虑OAuth），不同于facebook须登录后得到session-key才能调用数据。 TwitterScript 中的方法： 类Twitter.as中function setAuthenticationCredentials(“username”,”password”) 此方法只是将用户的名和密码编码,function twitterRequest（）负责将编码嵌入到requestHeaders，该嵌入过程被整合到各个具体调用数据的方法中因此编写程序代码时不用考虑此过程 A．制作登录页面，通过TextInput将用户名密码传给程序。（图2） 图2 提示：两个state ，登录界面和程序界面两个界面大小可以不同：代码如 Sign in按钮click=“sign_in( )” B． 定义sign_in方法，调用数据 var twitter：Twitter = new [...]]]></description>
			<content:encoded><![CDATA[<h1>自制app使用Twitter API</h1>
<h2>1.1   准备工作</h2>
<p>A．注册Twitter用户</p>
<p>B． 下载库文件<a href="http://dev.twitter.com/pages/libraries">http://dev.twitter.com/pages/libraries</a></p>
<p>本实例使用ActionScript 库文件 TwitterScript <a href="http://code.google.com/p/twitterscript/">http://code.google.com/p/twitterscript/</a></p>
<p>C． Twitter官方文档 <a href="http://dev.twitter.com/doc">http://dev.twitter.com/doc</a> TwitterScript并无说明文档，Twitter官方的文档和TwitterScript的代码不一致，但不矛盾。</p>
<h2>1.2 需求说明</h2>
<p>制作AIR程序（图1），实现如下功能</p>
<p>a．  显示当前用户头像，用户名</p>
<p>b．  显示当前用户following   followers</p>
<p>c．  显示当前用户friends Tweet  public Tweet</p>
<p>d．  提交新Tweet，并体现到friends Tweet中</p>
<p><em>图1 程序界面</em></p>
<h2>1.3编写代码</h2>
<p>Twitter数据调用多数需要身份验证，有的是不需要的。</p>
<p>Twitter的身份验证简单，只需将用户名和密码编码后嵌入到实际调用数据的request的requestHeaders中即可（暂不考虑OAuth），不同于facebook须登录后得到session-key才能调用数据。</p>
<p>TwitterScript 中的方法：</p>
<p>类Twitter.as中function setAuthenticationCredentials(“username”,”password”)</p>
<p>此方法只是将用户的名和密码编码,function twitterRequest（）负责将编码嵌入到requestHeaders，该嵌入过程被整合到各个具体调用数据的方法中因此编写程序代码时不用考虑此过程</p>
<p>A．<strong>制作登录页面，通过TextInput将用户名密码传给程序</strong>。（图2）</p>
<p>图2</p>
<p>提示：两个state ，登录界面和程序界面两个界面大小可以不同：代码如</p>
<pre class="brush: plain; title: ; notranslate">&lt;s:WindowedApplication xmlns:fx=&quot;http://ns.adobe.com/mxml/2009&quot;
					   xmlns:s=&quot;library://ns.adobe.com/flex/spark&quot;
					   xmlns:mx=&quot;library://ns.adobe.com/flex/mx&quot; width=&quot;800&quot; height=&quot;500&quot;
					   currentState=&quot;sign_out&quot; width.sign_out=&quot;320&quot; height.sign_out=&quot;230&quot;
					   width.sign_in=&quot;628&quot; height.sign_in=&quot;500&quot;&gt;</pre>
<p>Sign in按钮click=“sign_in( )”</p>
<p><strong>B． </strong><strong>定义sign_in方法，调用数据</strong></p>
<p>var twitter：Twitter = new Twitter（）</p>
<p>twitte.setAuthenticationCredentials(usrId.text, passwd.text)</p>
<p>对用户名 密码编码， userId 和 passwd是登录页面两个输入框的ID</p>
<p>twitter.loadInfo(userId.text)</p>
<p>twitter.addEventListener(TwitterEvent.ON_SHOW_INFO, onloadInfo)</p>
<p>调用user信息</p>
<p>twitter.loadFriends(usrId.text)</p>
<p>twitter.addEventListener(TwitterEvent.ON_FRIENDS_RESULT, onloadfriends)</p>
<p>调用user following</p>
<p>twitter.loadFriendsTimeline(userID.text)</p>
<p>twitter.addEventListener(TwitterEvent.ON_FRIENDS_TIMELINE_RESULT, onloadUserTimeLine)</p>
<p>调用friends Tweet</p>
<p>twitter.addEventListener(TwitterEvent.ON_ERROR, onerror)</p>
<p>监听error</p>
<p>C． <strong>处理返回结果。制作程序界面</strong>（如图3）</p>
<p>图3</p>
<p>a．显示用户名 头像</p>
<p>loadInfo方法返回的data类型为TwitterUser，包含name ，square url等，处理方法略</p>
<p>b．显示following用户名</p>
<p>loadFriends方法返回TwitterUser的Array</p>
<p>var tmp：Array = event.data as Array</p>
<p>for (var i:int; i&lt;tmp.length; i++){</p>
<p>var user:TwitterUser = tmp[i];</p>
<p>followname.addItem({flwname:user.name})</p>
<p>followname:ArrayCollection 绑定为显示following 的List的数据源，List标签中建itemrenderer 代码如</p>
<pre class="brush: plain; title: ; notranslate">&lt;fx:Script&gt;
		&lt;![CDATA[

			[Bindable]
			public var displayname:String;
			override public function set data(value:Object):void{

				displayname = new String(value.flwname)

			}
		]]&gt;
	&lt;/fx:Script&gt;
	&lt;s:VGroup&gt;
			&lt;s:Label text=&quot;{displayname}&quot;/&gt;
	&lt;/s:VGroup&gt;</pre>
<p>提示：也可显示头像、创建时间、时区等等</p>
<p>c．显示user ‘s friends Tweet   public Tweet</p>
<p>loadFriendsTimeline方法返回Tweet的Array包含text 和发布者信息等</p>
<p>var tmp:Array = event.data as Array;</p>
<p>for(var i:int;i&lt;event.data.length;i++){ tweetArray.addItem(tmp[i])}</p>
<p>tweetArray：ArrayCollection绑定为显示tweet的DataGrid的数据源，DataGrid代码</p>
<pre class="brush: plain; title: ; notranslate">&lt;mx:DataGrid x=&quot;10&quot; y=&quot;87&quot; width=&quot;607&quot; height=&quot;327&quot; dataProvider=&quot;{tweetArray}&quot;&gt;
			&lt;mx:columns&gt;
				&lt;mx:DataGridColumn headerText=&quot;Tweet&quot; dataField=&quot;text&quot;/&gt;
				&lt;mx:DataGridColumn headerText=&quot;Tweeter&quot; dataField=&quot;user.name&quot; width=&quot;100&quot;/&gt;
			&lt;/mx:columns&gt;
		&lt;/mx:DataGrid&gt;</pre>
<p>d．  提交新Tweet。添加输入框和提交按钮，按钮事件sendTweet（）</p>
<p>public function sendTweet():void{</p>
<p>var Tweet:String = tweet.text</p>
<p>将输入内容赋值给变量Tweet</p>
<p>twitter.setStatus(Tweet);</p>
<p>提交Tweet</p>
<p>twitter.addEventListener(TwitterEvent.ON_SET_STATUS, onsetstatus)</p>
<p>监听是否成功</p>
<p>tweet.text = &#8220;&#8221;} 将输入框中文本清除</p>
<p>提交成功后onsetstatus方法刷新一下DataGrid的数据 定义刷新方法</p>
<p>function freshTweet（）本例将loadFriendsTimeline方法提出另定义为LoadFriendsTimeLine方法，function freshTweet（）执行LoadFriendsTimeLine方法。</p>
<p>e．  添加刷新按钮  添加button 定义skinClass=“com.skin.freshButton”按钮图存同一路径 freshButton 代码</p>
<pre class="brush: plain; title: ; notranslate">&lt;s:states&gt;
		&lt;s:State name=&quot;disabled&quot; /&gt;
		&lt;s:State name=&quot;down&quot; /&gt;
		&lt;s:State name=&quot;over&quot; /&gt;
		&lt;s:State name=&quot;up&quot; /&gt;
	&lt;/s:states&gt;
	&lt;s:BitmapImage source=&quot;@Embed('arrow_refresh.png')&quot;/&gt;</pre>
<p>按钮 buttonmode=“true”click=“freshTweet（）”</p>
<p>f．   添加Alert.Show 。之前监听Error的响应方法 编写代码</p>
<p>var alert:Alert = Alert.show(&#8220;something was wrong,click button for try again&#8221;)</p>
<p>登录页面 检验是否输入用户名密码</p>
<p>if(userId.text==&#8221;"||passwd.text==&#8221;"){ Alert.show(&#8220;please enter your username and password!&#8221;)}</p>
<h1>2 Twitter官网工具</h1>
<p>API Status    查看各API状态</p>
<p><a href="http://dev.twitter.com/status">http://dev.twitter.com/status</a></p>
<p>API Console     Web Console</p>
<p><a href="http://dev.twitter.com/start">http://dev.twitter.com/start</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ityao.com/archives/601/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

