<?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>神の翩翩夏日 &#187; 学习笔记</title>
	<atom:link href="http://www.glglife.com/tag/%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.glglife.com</link>
	<description>生命在于折腾</description>
	<lastBuildDate>Sat, 07 Aug 2010 03:53:22 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Flex学习笔记六</title>
		<link>http://www.glglife.com/2008/01/14/flex-study-notes-six/</link>
		<comments>http://www.glglife.com/2008/01/14/flex-study-notes-six/#comments</comments>
		<pubDate>Mon, 14 Jan 2008 08:05:21 +0000</pubDate>
		<dc:creator>柳世杀神·GabrielGon</dc:creator>
				<category><![CDATA[FLEX]]></category>
		<category><![CDATA[ActionScript3]]></category>
		<category><![CDATA[学习笔记]]></category>

		<guid isPermaLink="false">http://www.glglife.com/2008/01/14/flex%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0%e5%85%ad/</guid>
		<description><![CDATA[1、parentApplication

&#160;&#160; 组件的parentApplication属性包含此组件的Application对象，Application对象本身的parentApplication为null。当Flex程序生成的SWF文件被其他的Flex程序加载时，被加载的Flex程序中组件的parentApplication属性保持不变，这种情况下，parentApplication属性有可能代表主程序

&#160;&#160; 组建还有两个相关属性：parent属性，指包含组件的父级对象；parentDocument属性，指组件所在的Application程序或用户组中位于层级顶部的对象。parentDocument和parent属性很容易混淆，它们有时会指向同一对象。比如在自定义一个继承Canvas的组件，叫cartCell，其中放入一个id为cart_check的CheckBox，那么这个cart_check的parent属性和parentDocument属性总代表cartCall组件本身。如果在cartCell中再创建一个名为check_holder的Canvas，将cart_check放在check_holder里面，这样cartCell中就形成了两级容器。此时cart_check的parent指向check_holder，而parentDocument仍然指向cartCell组件不变。

2、关于dispatchEvent&#160;&#160; 他是Flex事件机制中的一个核心方法，用来派发事件：&#160;&#160; this.parentApplication.dispatchevent(new cartEvent(data,cart_check.selected));&#160;&#160; 这句代码的作用是，this.parentApplication对象（也就是Application本身），将新创建的cartEvent对象派发出去。新建的cartEvent对象还包含了两个属性，存放的必要的信息。当有对象侦听这个事件时，就可以获得这些信息

<span class="readmore"><a href="http://www.glglife.com/2008/01/14/flex-study-notes-six/" title="Flex学习笔记六">阅读全文——共882字</a></span>]]></description>
			<content:encoded><![CDATA[<p><strong>1、parentApplication</strong></p>
<p>&nbsp;&nbsp; 组件的parentApplication属性包含此组件的Application对象，Application对象本身的parentApplication为null。当Flex程序生成的SWF文件被其他的Flex程序加载时，被加载的Flex程序中组件的parentApplication属性保持不变，这种情况下，parentApplication属性有可能代表主程序</p>
<p>&nbsp;&nbsp; 组建还有两个相关属性：parent属性，指包含组件的父级对象；parentDocument属性，指组件所在的Application程序或用户组中位于层级顶部的对象。parentDocument和parent属性很容易混淆，它们有时会指向同一对象。比如在自定义一个继承Canvas的组件，叫cartCell，其中放入一个id为cart_check的CheckBox，那么这个cart_check的parent属性和parentDocument属性总代表cartCall组件本身。如果在cartCell中再创建一个名为check_holder的Canvas，将cart_check放在check_holder里面，这样cartCell中就形成了两级容器。此时cart_check的parent指向check_holder，而parentDocument仍然指向cartCell组件不变。</p>
<p><strong>2、关于dispatchEvent<br />&nbsp;&nbsp; </strong>他是Flex事件机制中的一个核心方法，用来派发事件：<br />&nbsp;&nbsp; this.parentApplication.dispatchevent(new cartEvent(data,cart_check.selected));<br />&nbsp;&nbsp; 这句代码的作用是，this.parentApplication对象（也就是Application本身），将新创建的cartEvent对象派发出去。新建的cartEvent对象还包含了两个属性，存放的必要的信息。当有对象侦听这个事件时，就可以获得这些信息</p>
<p><strong>3、熟练super()的使用环境</strong></p>
<p>&nbsp;</p>
<p>BTW：这时候的网速真快啊&hellip;&hellip;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.glglife.com/2008/01/14/flex-study-notes-six/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex学习笔记五&amp;关于FDT的和Eclipse的一点牢骚</title>
		<link>http://www.glglife.com/2008/01/12/flex-5-u0026amp-study-notes-on-fdt-and-eclipse-point-grumbling/</link>
		<comments>http://www.glglife.com/2008/01/12/flex-5-u0026amp-study-notes-on-fdt-and-eclipse-point-grumbling/#comments</comments>
		<pubDate>Sat, 12 Jan 2008 07:20:59 +0000</pubDate>
		<dc:creator>柳世杀神·GabrielGon</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[FLEX]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[学习笔记]]></category>

		<guid isPermaLink="false">http://www.glglife.com/2008/01/12/flex%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0%e4%ba%94%e5%85%b3%e4%ba%8efdt%e7%9a%84%e5%92%8ceclipse%e7%9a%84%e4%b8%80%e7%82%b9%e7%89%a2%e9%aa%9a/</guid>
		<description><![CDATA[1、ComboBox，重点理解DropdownEvent事件。在列表被弹出或收回时，会分别派发DropdownEvent对象的OPEN事件和CLOSE事件。对这两个时间进行监听，便可捕捉用户的动作。

2、注意，与之外的都是一个整体，而不是分开的

3、发现还有很多人不明白这个void为什么要加。这里说明一下：是为了方便不带参的function除错（debug）。例如：&#160;&#160; function testVoid():void{&#160;&#160;&#160;&#160; trace(&#34;testVoid&#34;) &#160;&#160;&#160; }&#160; 然后我testVoid(1),运行这时候程序就会出错。&#160; 函数参数为void的意思是这个函数不接受任何参数。所以，养成好习惯，只要不传参的function等，都加上void声明吧

4、Alert的show是一个静态方法，格式如下：&#160;&#160; show(text,title,flags,parent,closeHandle,iconClass,defaultButtonFlag)

<span class="readmore"><a href="http://www.glglife.com/2008/01/12/flex-5-u0026amp-study-notes-on-fdt-and-eclipse-point-grumbling/" title="Flex学习笔记五&#038;关于FDT的和Eclipse的一点牢骚">阅读全文——共2683字</a></span>]]></description>
			<content:encoded><![CDATA[<p>1、ComboBox，重点理解DropdownEvent事件。在列表被弹出或收回时，会分别派发DropdownEvent对象的OPEN事件和CLOSE事件。对这两个时间进行监听，便可捕捉用户的动作。</p>
<p>2、注意，与之外的都是一个整体，而不是分开的</p>
<p>3、发现还有很多人不明白这个void为什么要加。这里说明一下：是为了方便不带参的function除错（debug）。例如：<br />&nbsp;&nbsp; function testVoid():void{<br />&nbsp;&nbsp;&nbsp;&nbsp; trace(&quot;testVoid&quot;) <br />&nbsp;&nbsp;&nbsp; }<br />&nbsp; 然后我testVoid(1),运行这时候程序就会出错。<br />&nbsp; 函数参数为void的意思是这个函数不接受任何参数。所以，养成好习惯，只要不传参的function等，都加上void声明吧</p>
<p>4、Alert的show是一个静态方法，格式如下：<br />&nbsp;&nbsp; show(text,title,flags,parent,closeHandle,iconClass,defaultButtonFlag)</p>
<p>5、关于evt:CloseEvent，CloseEvent之后的值是在evt.detail</p>
<p>6、关于itemRender，实在不明白概念的，就理解为&ldquo;界面/组件绑定&rdquo;吧&hellip;&hellip;是，这样对真正的意思有些偏移，不过若实在对itemRender的概念混淆，也只能暂时在全部顿悟之前，先这样理解吧。这里也说说真正的意思：<br />&nbsp; 用来控制数据表现形式的机制我们称之为&ldquo;itemRender&rdquo;。用户可以定义自己的itemRenderer对象，来覆盖某些有itemRenderer对象的组件的默认属性。自定义的itemRenderer相当于一个简单的自定义组件。同样，里面可以放置其他控件来表现更加丰富的内容。<br />&nbsp; 顺便一说，这个东西相当使用，可以用来实现很多有趣的功能。<br />&nbsp; <strong>[2008.1.14附加]<br /></strong>&nbsp;&nbsp;可以作为用来作为与itemRender的组件又一个共同的特点，那就是拥有一个名为&ldquo;data&rdquo;的属性。<br />&nbsp; 当组件被用作<span>itemRenderer时，就拥有了data属性。data代表的是当前元素的数据信息，一般是Object类型，包括若干属性，data的数据格式和数据源的数据格式是一一对应的。 <br />&nbsp;&nbsp;&nbsp; itemRenderer的data是由控件主动传入的，直接使用就可以了。<br />&nbsp;&nbsp;&nbsp; 比如datagrid的数据源是books，其中每一条数据类型是book，那么itemRenderer的data也是book类型。<br /></span></p>
<p>7、关于function的函数中带事件<br />&nbsp;&nbsp; 如internal function selectHandler(evt:CloseEvbent):void{}。意思是说将事件evt:CloseEvbent的结果带入到函数中，从而供这个function进行使用。这个和我们一直理解的function一样，只是带入的东西不同罢了<br />&nbsp;&nbsp; 然后，这里是作者Email的解释（以<font color="#cc0000"><font color="#000000"><strong>bookList.addEventListener(DropdownEvent.CLOSE,chooseHandler)</strong></font><font color="#000000">为例</font></font>）：<br />&nbsp;&nbsp;&nbsp;<font color="#800000"><font color="#ff6600"><font color="#000000"> </font><font color="#cc0000"><font color="#000000"><font color="#cc0000">bookList.addEventListener(DropdownEvent.CLOSE,chooseHandler);<br />&nbsp;&nbsp;&nbsp; 这句代码的意思是添加一个事件监听器，chooseHandler是函数名。<br />&nbsp;&nbsp;&nbsp; 在使用</font></font></font><font color="#cc0000"> <font color="#000000"><font color="#cc0000">addEventListener方式添加</font></font></font><font color="#cc0000"><font color="#000000"><font color="#cc0000">事件监听函数时，该函数在定义时必须定义参数类型，也就是监听的事件类型。这样，当目标发送该事件时，会把事件作为参数传递过来，如果函数没有定义参数，也就无法接受事件传递的信息。&nbsp;</font></font></font></font></font></p>
<p><font color="#000000"><strong>作者EMAIL2：</strong></font></p>
<p><font color="#cc0000">&nbsp;&nbsp;&nbsp;&nbsp;在使用</font><font color="#cc0000"> <font color="#000000"><font color="#cc0000">addEventListener方式添加 </font></font></font><font color="#cc0000"><font color="#000000"><font color="#cc0000">事件监听函数时，该函数在定义时必须定义参数类型，也就是监听的事件类型。这样，当目标发送该事件时，会把事件作为参数传递过来，如果函数没有定义参数，也就无法接受事件传递的信息。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 比如：<br />&nbsp;&nbsp;&nbsp;&nbsp; btn.addEventListener(MouseEvent.CLICK,doClick);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 那么，doClick函数在定义时，就必须是：doClick(event:MouseEvent)，这个参数的名字可以随便定义，但类型必须是 </font></font></font><font color="#cc0000"><font color="#000000"><font color="#cc0000">MouseEvent或者</font></font></font><font color="#cc0000"><font color="#000000"><font color="#cc0000">MouseEvent类的父类。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 事件类型的工作机制是这样的： </p>
<p>&nbsp;&nbsp;&nbsp; 1、注册事件监听器，把监听对象和监听函数记录下来，也就是把btn和doClick记录下来。<br />&nbsp;&nbsp;&nbsp; 2、当事件发生时，程序开始检查是否有对象进行了监听，如果有，这些监听函数就会被调用，调用的形式就像：obj.doClick(event)，其中obj表示添加了监听器的对象btn，也就是执行了</font></font></font><font color="#cc0000"><font color="#000000"> <font color="#cc0000">addEventListener的对象，参数event表示事件对象。因此，doClick函数必须定义准确的参数，参数类型必须是event的类型或其父类类型，否则，变量类型不对，将引发运行错误。<br /></font></font></font><font color="#800000"><font color="#ff6600"><font color="#cc0000"><font color="#000000"><font color="#cc0000"><br />&nbsp;&nbsp;&nbsp; <font color="#000000">如果一下子还是无法理解过来，那么就记住这点：addEventListener的是什么事件，那么在这个事件触发的自定义函数中，就要定义这个addEventListener监听的事件的事件类型。<br />&nbsp;&nbsp;&nbsp; 例子：<br />&nbsp;&nbsp;&nbsp; <strong>exp1:</strong><br />&nbsp;&nbsp;&nbsp; <font color="#cc0000">bookList.addEventListener(DropdownEvent.CLOSE,chooseHandler);</font><br /></font></font></font></font></font></font><font color="#800000"><font color="#ff6600"><font color="#cc0000"><font color="#000000"><font color="#cc0000">&nbsp;&nbsp;&nbsp; internal function chooseHandler(evt:DropdownEvent):void{}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<font color="#000000"><strong>exp2:<br /></strong><font color="#993300"><font color="#000000">&nbsp;&nbsp;&nbsp; </font><font color="#cc0000">btn.addEventListener(MouseEvent.CLICK,doClick);</font><br /><font color="#800000"><font color="#ff6600"><font color="#cc0000"><font color="#000000"><font color="#cc0000">&nbsp;&nbsp;&nbsp; internal function chooseHandler(evt:MouseEvent):void{}</font></font></font></font></font></font></font></font></font></font></font></font></p>
<p><font color="#cc0000">&nbsp;&nbsp;&nbsp; 然后就可以通过evt来调用监听事件的参数和值了。如<br />&nbsp;&nbsp;&nbsp; internal function closeHandler(evt:CloseEvent):void{<br />&nbsp;&nbsp;&nbsp;&nbsp;if(evt.detail==Alert.YES){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;viewLabel.text=&quot;选择的是：yes&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;viewLabel.text=&quot;选择的是：No&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;}</font></p>
<p><font color="#800000"><font color="#ff6600"><font color="#cc0000"><font color="#000000"><font color="#cc0000"><font color="#000000"><font color="#993300"><font color="#800000"><font color="#ff6600"><font color="#cc0000"><font color="#000000"><font color="#cc0000">&nbsp;&nbsp;&nbsp; <font color="#000000">可能有些朋友已经注意到了为什么后面带入的evt中没有具体的事件名？而仅仅是类的成员名？是这样，我们以MouseEvent来说<br />&nbsp;&nbsp;&nbsp; 导入的MouseEvent对象包含了所有的鼠标事件，如单击、双击、鼠标按下、鼠标松开、鼠标移动等等，这些事件名被封装成MouseEvent类的成员属性。在使用时，我们直接引用类成员名，而不需知道真正的事件名。</font></font></font></font></font></font></font></font></font></font></font></font></font><font color="#800000"><font color="#ff6600"><font color="#cc0000"><font color="#000000"><font color="#cc0000"><font color="#000000"><font color="#993300"><font color="#800000"><font color="#ff6600"><font color="#cc0000"><font color="#000000"><font color="#cc0000"><br /></font></font></font></font></font></font></font></font></font></font></font></font></p>
<p><font color="#800000"></font>
<p>嗯，最后，记住今天所说的：数组，push吧！</p>
<p>BWT:FDT你是个球，你是个大球，下了几百次都下不下来</p>
]]></content:encoded>
			<wfw:commentRss>http://www.glglife.com/2008/01/12/flex-5-u0026amp-study-notes-on-fdt-and-eclipse-point-grumbling/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex学习笔记四</title>
		<link>http://www.glglife.com/2008/01/12/flex-study-notes-four/</link>
		<comments>http://www.glglife.com/2008/01/12/flex-study-notes-four/#comments</comments>
		<pubDate>Sat, 12 Jan 2008 01:25:19 +0000</pubDate>
		<dc:creator>柳世杀神·GabrielGon</dc:creator>
				<category><![CDATA[FLEX]]></category>
		<category><![CDATA[学习笔记]]></category>

		<guid isPermaLink="false">http://www.glglife.com/2008/01/12/flex%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0%e5%9b%9b/</guid>
		<description><![CDATA[1、有人问到，在验证控件的时候，字体默认是9号的，英文还好，中文的话就模糊到一起去了。解决办法如下：

&#160;&#160; .errorTip{&#160;&#160;&#160; font-size:12;&#160;&#160; }

2、addEventListener，很重要，任何可视化组件都有这个监听方法，addEventListerner有五个参数：addEventListener(type:String,listener:Function,useCapture:Boolean=false,priority:int = 0,useWeakReference:Boolean = false)其中前两个参数最重要，分别指事件的类型和对应的执行函数名。后面的三个参数也不容忽视，一般情况下可以省略，我们先不去考虑。具体在后面说明

3、MouseEvent包含了所有鼠标事件，如单击、双击、鼠标按下、鼠标松开、鼠标移动等等。他们都被封装成MouseEvent类的成员属性。使用时，直接引用类成员名，而不需要知道真正的事件名。exp:btn.adEventListener(MouseEvent.CLICK,doClick)

<span class="readmore"><a href="http://www.glglife.com/2008/01/12/flex-study-notes-four/" title="Flex学习笔记四">阅读全文——共552字</a></span>]]></description>
			<content:encoded><![CDATA[<p>1、有人问到，在验证控件的时候，字体默认是9号的，英文还好，中文的话就模糊到一起去了。解决办法如下：</p>
<p>&nbsp;&nbsp; .errorTip{<br />&nbsp;&nbsp;&nbsp; font-size:12;<br />&nbsp;&nbsp; }</p>
<p>2、addEventListener，很重要，任何可视化组件都有这个监听方法，addEventListerner有五个参数：<br />addEventListener(type:String,listener:Function,useCapture:Boolean=false,priority:int = 0,useWeakReference:Boolean = false)<br />其中前两个参数最重要，分别指事件的<strong>类型</strong>和<strong>对应的执行函数名</strong>。后面的三个参数也不容忽视，一般情况下可以省略，我们先不去考虑。具体在后面说明</p>
<p>3、MouseEvent包含了所有鼠标事件，如单击、双击、鼠标按下、鼠标松开、鼠标移动等等。他们都被封装成MouseEvent类的成员属性。使用时，直接引用类成员名，而不需要知道真正的事件名。exp:btn.adEventListener(MouseEvent.CLICK,doClick)</p>
<p>4、从块中与mxml的其他组件互动，有些初学者还是有些许混淆。只需要记住：<br />&nbsp;&nbsp; &middot;首先定义其他标签的id<br />&nbsp;&nbsp; &middot;&middot;在中写代码块<br />&nbsp;&nbsp; &middot;&middot;&middot;在mxml的需要互动的组件中，写明动作（什么时候）=&quot;代码块名&quot;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.glglife.com/2008/01/12/flex-study-notes-four/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex学习笔记三&amp;一点其他</title>
		<link>http://www.glglife.com/2008/01/09/flex-study-notes-that-the-other-three-u0026amp/</link>
		<comments>http://www.glglife.com/2008/01/09/flex-study-notes-that-the-other-three-u0026amp/#comments</comments>
		<pubDate>Wed, 09 Jan 2008 04:53:26 +0000</pubDate>
		<dc:creator>柳世杀神·GabrielGon</dc:creator>
				<category><![CDATA[FLEX]]></category>
		<category><![CDATA[学习笔记]]></category>

		<guid isPermaLink="false">http://www.glglife.com/2008/01/09/flex%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0%e4%b8%89%e4%b8%80%e7%82%b9%e5%85%b6%e4%bb%96/</guid>
		<description><![CDATA[今天时间有些紧迫，事情也较多，又收了一个新学生，大部分时间在写未来几个月的教案。因此只看了一些容器、组件的特性相关的文字。曾经都是直接拖过来用的（除了一些必要动态添加的地方），今天全部自己在Code下打了一次，也有些许感悟，更加深层的理解这些东西是怎么运作的

在看书的途中，和友人正好聊起容器类组件，然后说到了ViewStack，他说有些不明白有什么用。这里说一下ViewStack的理解：隐藏的Accordion，元素位置上较Accordion灵活，转换方式也不一样。初学者可以这样理解：MC的帧切换&#8230;&#8230;（呃～我知道，这样说很容易挨砖，不过这样确实比较容易理解他的本意：ViewStack由若干个容器组成，每次只有一个容器是可见或活动的。ViewStack容器不为用户提供切换前容器的界面接口，我们可以通过ActionScript来控制，或者把他和其他控制类容器联合一起使用，利用他们提供的功能来实现界面的转换）

不过&#8230;&#8230;既然继承自ViewStack的TabNavigator与ViewStack的功能一样，并且前者比后者还多了一个供用户切换内容的界面接口，那么ViewStack用来干嘛&#8230;&#8230;自定义菜单吗&#8230;&#8230;

同样的，说一下从文中理解的Tile和Grid。其实是我的一个疑问。如果真按照书上所说，若要精确控制每一行对象的个数还要计算组件的宽度和子级元素的宽度，而Tile的功能和一个1*1的Grid是一样的（呃～我是这样理解，若有勘误，还望指正）。那么Tile不是相当于没用？碰到任何需要的情况直接用Grid就行了嘛！难道Tile和Grid比较起来仅仅就是&#8220;方便&#8221;一点？

<span class="readmore"><a href="http://www.glglife.com/2008/01/09/flex-study-notes-that-the-other-three-u0026amp/" title="Flex学习笔记三&#038;一点其他">阅读全文——共955字</a></span>]]></description>
			<content:encoded><![CDATA[<p>今天时间有些紧迫，事情也较多，又收了一个新学生，大部分时间在写未来几个月的教案。因此只看了一些容器、组件的特性相关的文字。曾经都是直接拖过来用的（除了一些必要动态添加的地方），今天全部自己在Code下打了一次，也有些许感悟，更加深层的理解这些东西是怎么运作的</p>
<p>在看书的途中，和友人正好聊起容器类组件，然后说到了ViewStack，他说有些不明白有什么用。这里说一下ViewStack的理解：隐藏的Accordion，元素位置上较Accordion灵活，转换方式也不一样。<br />初学者可以这样理解：MC的帧切换&hellip;&hellip;（呃～我知道，这样说很容易挨砖，不过这样确实比较容易理解他的本意：ViewStack由若干个容器组成，每次只有一个容器是可见或活动的。ViewStack容器不为用户提供切换前容器的界面接口，我们可以通过ActionScript来控制，或者把他和其他控制类容器联合一起使用，利用他们提供的功能来实现界面的转换）</p>
<p>不过&hellip;&hellip;既然继承自ViewStack的TabNavigator与ViewStack的功能一样，并且前者比后者还多了一个供用户切换内容的界面接口，那么ViewStack用来干嘛&hellip;&hellip;自定义菜单吗&hellip;&hellip;</p>
<p>同样的，说一下从文中理解的Tile和Grid。其实是我的一个疑问。如果真按照书上所说，若要精确控制每一行对象的个数还要计算组件的宽度和子级元素的宽度，而Tile的功能和一个1*1的Grid是一样的（呃～我是这样理解，若有勘误，还望指正）。那么Tile不是相当于没用？碰到任何需要的情况直接用Grid就行了嘛！难道Tile和Grid比较起来仅仅就是&ldquo;方便&rdquo;一点？</p>
<p><strong>另外，关于一点其他的东西</strong><br />最近很多人都在问我&ldquo;面向对象（OOP）&rdquo;应该怎样理解，这个问题曾经在我刚刚接触OOP的时候也困惑过一段时间。今天本来打算写一篇比较简单易懂，特别是菜鸟们一看就知道什么是面向对象的概念的文章，可是在写好准备发布之际，突然想到报名我学习班的各位&hellip;&hellip;这样似乎对他们有些不公平了。因此还是将文章转为内部共享了&hellip;&hellip;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.glglife.com/2008/01/09/flex-study-notes-that-the-other-three-u0026amp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex学习笔记二&amp;《Flex第一步》错误汇总</title>
		<link>http://www.glglife.com/2008/01/08/study-notes-flex-2-u0026amp-u0026quotflex-first-stepu0026quot-error-summary/</link>
		<comments>http://www.glglife.com/2008/01/08/study-notes-flex-2-u0026amp-u0026quotflex-first-stepu0026quot-error-summary/#comments</comments>
		<pubDate>Mon, 07 Jan 2008 19:30:53 +0000</pubDate>
		<dc:creator>柳世杀神·GabrielGon</dc:creator>
				<category><![CDATA[FLEX]]></category>
		<category><![CDATA[学习笔记]]></category>

		<guid isPermaLink="false">http://www.glglife.com/2008/01/08/flex%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0%e4%ba%8c%e3%80%8aflex%e7%ac%ac%e4%b8%80%e6%ad%a5%e3%80%8b%e9%94%99%e8%af%af%e6%b1%87%e6%80%bb/</guid>
		<description><![CDATA[Flex学习笔记

12：23对初学者来说，XML/XMXL可以这样理解：标签、属性与标签、属性的环环套环环

XMXL中，是可以设置组件的长宽百分比的。而在AS中，只能设置为像素值，若要在AS中设置百分比，需要用到percentWidth和percentHeight两个属性

13：00若一开始即要执行的是一段AS，记得在头applicationComplete进去，例如：applicationComplete=&#34;initApp()&#34;当然。不仅仅是AS，一切要将程序最先运行的代码都要放在这个监听函数中

<span class="readmore"><a href="http://www.glglife.com/2008/01/08/study-notes-flex-2-u0026amp-u0026quotflex-first-stepu0026quot-error-summary/" title="Flex学习笔记二&#038;《Flex第一步》错误汇总">阅读全文——共2732字</a></span>]]></description>
			<content:encoded><![CDATA[<h2><font face="'黑体', sans-serif" size="5"><font color="#ff0000">Flex学习笔记</font></font></h2>
<p><font face="'宋体', sans-serif" size="2"><strong>12：23<br /></strong>对初学者来说，XML/XMXL可以这样理解：标签、属性与标签、属性的环环套环环</font></p>
<p><font face="'宋体', sans-serif" size="2">XMXL中，是可以设置组件的长宽百分比的。而在AS中，只能设置为像素值，若要在AS中设置百分比，需要用到percentWidth和percentHeight两个属性</font></p>
<p><font face="'宋体', sans-serif" size="2"><strong>13：00</strong><br />若一开始即要执行的是一段AS，记得在头applicationComplete进去，例如：applicationComplete=&quot;initApp()&quot;<br />当然。不仅仅是AS，一切要将程序最先运行的代码都要放在这个监听函数中</font></p>
<p><font face="'宋体', sans-serif" size="2">&ldquo;一切皆是对象&rdquo;你可以这样理解：首先脑袋中构思一副图，然后将一块块小的拼图块分工画好，之后用addChild之类的方法将他们丢到舞台上去，并拼接在一起，成为你脑袋中构思的那幅图。这里有个例子可以帮你理解这段话<br />intelnal function initApp():void{<br />&nbsp;&nbsp;&nbsp; //创建一个新的Panel的实例，这里，虽然创建了Panel这个对象，单仅仅是被创建了，并不会马上显示出来，直到调用了addChild，才将这个对象添加到容器中，从而对象被绘制，出现在显示层<br />&nbsp;&nbsp;&nbsp; var win:Panel = new Panel();<br />&nbsp;&nbsp;&nbsp; //设置组件的位置<br />&nbsp;&nbsp;&nbsp; win.x = 20;<br />&nbsp;&nbsp;&nbsp; win.y = 20;<br />&nbsp;&nbsp;&nbsp; //将该实例添加到程序容器中并显示<br />&nbsp;&nbsp;&nbsp; addChild(win);<br />}</font></p>
<p><font face="'宋体', sans-serif" size="2"><strong>13：15<br /></strong>关于import，曾经一直有点让我很是迷惑，也问讯过不少人：到底怎么判断什么情况下import什么包？而几乎所有人给我的答案几乎都是：用什么import什么。当然，这点我一直知道，所以当时很是不明白&ldquo;怎么判断我要用什么&rdquo;这个问题，因此关于import的包一直都是*，导致程序臃肿的可以。今天看了44～45页的EXP，瞬间明白了这个让我迷惑已久的import判断，其实之前所有人给我的回答都是正确的，也是不可再细分的回答-用什么就import什么。呃～是的，如果你现在有和我曾经一样的疑问，我现在也只能这样回答你-用什么就import什么&hellip;&hellip;当然。若要综合理解，我想35页的容器层级关系表给我了很大的帮助。可是在这个功能限制诸多的Blog上就不怎么方便画出，并上传那个表了&#8230;见谅<br />自此，&ldquo;一切皆对象&rdquo;这句话的意思，更加深刻的明白了一层。如果要用一个词来概括这一层，那么就是：附加/帖附。一个变量/常量与一个类/函数/包的附加/帖附</font></p>
<p><font face="'宋体', sans-serif" size="2"><strong>16：50<br /></strong>在看《Flex第一步》的时候，对于一个AS3的BUTTON的问题有些不明白，回头翻看《AS3殿堂之路》的目录时，一些以前所不容易理解的东西竟然都在《AS3殿堂之路》的后半部分，实在让人激动。现在想想，这两本书实在是天作之合的极品天书配对。买的太值了<br />另，关于ActionScript3 Cookbook，昨天在出版社网站上付款邮购了，今天确认状态，竟然告诉我这书还没印出！网页上面是预售！问什么时候能出来，答案竟是&hellip;&hellip;不明&hellip;&hellip;我喷血哦～～早知道在淘宝上多花十几块钱买了算了！不过&hellip;&hellip;问题在这里，出版社自己的库房都没有印出来的书，那些淘宝商家怎么会拿到了？而且还是正版？</font></p>
<p><font face="'宋体', sans-serif" size="2"><strong>16：57</strong><br />暂时放下《AS3殿堂之路》，待看完《FLEX第一步》后续章节继续<br />（PS：感叹，冲动之下买的即时贴这段时间使用率大增，难道真的一切冥冥中自有天意？）</font></p>
<p><font face="'宋体', sans-serif" size="2"><strong>18：32</strong><br />自定义组件中，creationComplete为程序初始化后的触发事件。通常我们将程序运行前的准备工作卸载此事件的监听中（类似于Application的applicationComplete，使用方法也一样）</font></p>
<p><font face="'宋体', sans-serif" size="2"><strong>18：52<br /></strong>今天到此为止，先消化一下<br />备注：P35为FLEX容器层级关系表</font></p>
<p><font face="'宋体', sans-serif" size="2"><strong>20:21</strong><br />自定义组件就包含在自身的标签中，不要重定义</font></p>
<h2><font face="'黑体', sans-serif" size="5" color="#ff0000">《Flex第一步》错误汇总</font></h2>
<p>&nbsp;</p>
<h2><font color="#800000">比较严重错误(一般知识性错误)</font></h2>
<p><strong><strong>
<p><strong>第41页</strong><br />4.1.3节的最后一段，介绍DividedBox的属性liveDragging时，原文：&ldquo;<font color="#339966">当为true时，表示在拖动分割块时，分割块附近的元素只在鼠标松开时才调整位置；如果为false，则在拖动时就会不断的调整位置。</font>&rdquo; 写反了，应该是：&ldquo;<font color="#ff0000">当为false时，表示在拖动分割块时，分割块附近的元素只在鼠标松开时才调整位置；如果为true，则在拖动时就会不断的调整位置。</font>&rdquo;</p>
<p><strong>第91页</strong><br />代码错误，原文：<br />　　 <br />　　private var mXML:XMLList = <br />　　 <font color="#339966">&lt;menu&gt; <br /></font>　　 &lt;item label=&quot;文件&quot;&gt; <br />　　 &lt;node label=&quot;新建画板&quot; data=&quot;new&quot;/&gt; <br />　　 &lt;node label=&quot;清除画板&quot; data=&quot;clear&quot; enabled=&quot;false&quot;/&gt; <br />　　 &lt;node type=&quot;separator&quot; /&gt; <br />　　 &lt;node label=&quot;退出系统&quot; data=&quot;logout&quot;/&gt; <br />　　 &lt;/item&gt; <br />　　 &lt;item label=&quot;帮助&quot;&gt; <br />　　 &lt;node label=&quot;帮助&quot; data=&quot;help&quot;/&gt; <br />　　 &lt;node label=&quot;关于作者&quot; data=&quot;about&quot;/&gt; <br />　　 &lt;/item&gt; <br />　　 <font color="#339966">&lt;/menu&gt;; <br /></font>　　 <br />　　这里的根节点应该留空，正确的代码： </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private var mXML:XMLList = <br />　　 <font color="#ff0000">&lt;&gt; <br /></font>　　 &lt;item label=&quot;文件&quot;&gt; <br />　　 &lt;node label=&quot;新建画板&quot; data=&quot;new&quot;/&gt; <br />　　 &lt;node label=&quot;清除画板&quot; data=&quot;clear&quot; enabled=&quot;false&quot;/&gt; <br />　　 &lt;node type=&quot;separator&quot; /&gt; <br />　　 &lt;node label=&quot;退出系统&quot; data=&quot;logout&quot;/&gt; <br />　　 &lt;/item&gt; <br />　　 &lt;item label=&quot;帮助&quot;&gt; <br />　　 &lt;node label=&quot;帮助&quot; data=&quot;help&quot;/&gt; <br />　　 &lt;node label=&quot;关于作者&quot; data=&quot;about&quot;/&gt; <br />　　 &lt;/item&gt; <br />　　<font color="#ff0000"> &lt;/&gt;; <br /></font></p>
<p></strong></strong><br />
<h2><font color="#800000">一般错误（笔误）</font></h2>
<p><font size="2"><strong><font size="2"><strong><font size="2"><strong><font size="2"><strong>
<p><font size="2"><strong>第63页</strong><br /></font><font size="2" color="#339966">&lt;mx:buttonbar id=&quot;Btns&quot; &hellip; &gt;</font><font size="2"><font color="#339966"> </font>应该为 </font><font size="2" color="#ff0000">&lt;mx:buttonbar id=&quot;btns&quot; &hellip;&gt;</font></p>
<p><font size="2"><strong>第191页</strong><br /></font><font size="2">第一段第一行 <font color="#339966">&ldquo;</font><font color="#339966">建立了如图8.2所示的视图结构&rdquo;</font> 应该为 <font color="#ff0000">如图8.3所示</font> </font></p>
<p><font size="2"><strong>第317页<br /></strong>本页的倒数第八行代码里有一个标签为<font color="#339966">&quot;&lt;/mx:c&gt;&quot;</font>&nbsp; 应该为 <font color="#ff0000">&quot;&lt;mx:WebService&gt;&quot;</font></font></p>
<p><font size="2"><strong>第320页</strong><br /></font><font size="2">中间一段： <font color="#339966">&ldquo;另外，为了提供PHP的运行效率&hellip;&rdquo;</font> 应该为 <font color="#ff0000">&ldquo;另外，为了提高PHP的运行效率&hellip;&rdquo;</font></font></p>
<p></strong></font></strong></font></strong></font></strong></font></p>
]]></content:encoded>
			<wfw:commentRss>http://www.glglife.com/2008/01/08/study-notes-flex-2-u0026amp-u0026quotflex-first-stepu0026quot-error-summary/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex学习笔记一</title>
		<link>http://www.glglife.com/2008/01/07/flex-study-notes-a/</link>
		<comments>http://www.glglife.com/2008/01/07/flex-study-notes-a/#comments</comments>
		<pubDate>Mon, 07 Jan 2008 01:36:02 +0000</pubDate>
		<dc:creator>柳世杀神·GabrielGon</dc:creator>
				<category><![CDATA[FLEX]]></category>
		<category><![CDATA[学习笔记]]></category>

		<guid isPermaLink="false">http://www.glglife.com/2008/01/07/flex%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0%e4%b8%80/</guid>
		<description><![CDATA[今天《Flex第一步》到了，初略看了一下，虽然大部分都明白，不过我深知自己的基础不慎牢靠，而一些很低级的错误也就栽倒在这些初级问题上。于今天开始做个学习笔记，以做备忘

今天进程：仔细研读1～3章节内容。分别为：Flex简介、Flex的安装和开发环境建立、Mxml语言简介

要点&#38;备忘&#38;进度：1、Flex Builder Plug-in And Flex SDK为Eclipse框架插件运行，Eclipse下载地址：www.eclipse.org2、创建一个Flex Project，并按照规范代码格式和习惯写一个Helloworld。&#160;&#160;&#160;&#160;-一个Button&#160;&#160;&#160; -一个Label&#160;&#160;&#160; -点击Button改变Label的text3、MXML文件结构&#160;&#160;&#160;&#160;-mx:Application:特殊标签，每个Flex项目中，可能有多个MXML，但作为程序入口的运行文件只有一个，主文件标示是根节点为mx:Application，一个程序中只能出现一个mx:Application节点。&#160;&#160;&#160; -命名空间（概念仍需强化）4、自定义MXML组件（P27），注意：任何元素最好使用相对路径（当然，远程引用的除外，这里指一个项目中的元素），否则会出现一些稀奇古怪的错误5、MXML中使用ActionScript&#160;&#160;&#160; -方式一：在组件的时间属性中使用ActionScript来处理事件&#160;&#160;&#160; -方式二：在MXML文件中插入ActionScript块6、创建外部ActionScript文件&#160;&#160;&#160;&#160;-7、创建ActionScript类文件&#160;&#160;&#160; -新建一个ActionScript Class&#160;&#160;&#160; -在CDATA内直接引用，并在头中用applicationComplete将时间处理交给initApp()&#160;&#160;&#160; EXP（Test.as）：&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; internal function initApp():void{&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; var myTest:Test = new Test()&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;]]&#62;&#160;&#160;&#160; 8、编辑非可视化对象&#160;&#160;&#160; -简历一个数组和一个XML对象，并将他们分别显示在一个List和一个Tree中&#160;&#160;&#160; -注意：XML标签的label属性的缺失

<span class="readmore"><a href="http://www.glglife.com/2008/01/07/flex-study-notes-a/" title="Flex学习笔记一">阅读全文——共995字</a></span>]]></description>
			<content:encoded><![CDATA[<p>今天《Flex第一步》到了，初略看了一下，虽然大部分都明白，不过我深知自己的基础不慎牢靠，而一些很低级的错误也就栽倒在这些初级问题上。于今天开始做个学习笔记，以做备忘</p>
<p><strong>今天进程：</strong><br />仔细研读1～3章节内容。分别为：Flex简介、Flex的安装和开发环境建立、Mxml语言简介</p>
<p><strong>要点&amp;备忘&amp;进度：</strong><br />1、Flex Builder Plug-in And Flex SDK为Eclipse框架插件运行，Eclipse下载地址：<a href="http://www.eclipse.org/" onclick="pageTracker._trackPageview('/outgoing/www.eclipse.org/?referer=');">www.eclipse.org</a><br />2、创建一个Flex Project，并按照规范代码格式和习惯写一个Helloworld。<br />&nbsp;&nbsp;&nbsp;&nbsp;-一个Button<br />&nbsp;&nbsp;&nbsp; -一个Label<br />&nbsp;&nbsp;&nbsp; -点击Button改变Label的text<br />3、MXML文件结构<br />&nbsp;&nbsp;&nbsp;&nbsp;-mx:Application:特殊标签，每个Flex项目中，可能有多个MXML，但作为程序入口的运行文件只有一个，主文件标示是根节点为mx:Application，一个程序中只能出现一个mx:Application节点。<br />&nbsp;&nbsp;&nbsp; -命名空间（概念仍需强化）<br />4、自定义MXML组件（P27），注意：任何元素最好使用相对路径（当然，远程引用的除外，这里指一个项目中的元素），否则会出现一些稀奇古怪的错误<br />5、MXML中使用ActionScript<br />&nbsp;&nbsp;&nbsp; -方式一：在组件的时间属性中使用ActionScript来处理事件<br />&nbsp;&nbsp;&nbsp; -方式二：在MXML文件中插入ActionScript块<br />6、创建外部ActionScript文件<br />&nbsp;&nbsp;&nbsp;&nbsp;-<br />7、创建ActionScript类文件<br />&nbsp;&nbsp;&nbsp; -新建一个ActionScript Class<br />&nbsp;&nbsp;&nbsp; -在CDATA内直接引用，并在头中用applicationComplete将时间处理交给initApp()<br />&nbsp;&nbsp;&nbsp; EXP（Test.as）：<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <!--DATA[<-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; internal function initApp():void{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var myTest:Test = new Test()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]]&gt;<br />&nbsp;&nbsp;&nbsp; <br />8、编辑非可视化对象<br />&nbsp;&nbsp;&nbsp; -简历一个数组和一个XML对象，并将他们分别显示在一个List和一个Tree中<br />&nbsp;&nbsp;&nbsp; -注意：XML标签的label属性的缺失
<p><strong>PS：ActionScript3 Cookbook的简体中文版原来已经发行了&hellip;&hellip;今天才知道，已经去电子工业邮购了一本，期待早点到。之前看了一点电子书（扫描版&hellip;&hellip;），发现确实是经典之作，实在是一本适合放在桌面上随时翻阅的宝典。Cookbook系列盛名不负啊～</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.glglife.com/2008/01/07/flex-study-notes-a/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
