论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Flash AS编程教程
Tag:2.0,3.0菜鸟,游戏,,cs,技巧,源码,,文本,文字,函数,音乐,随机,拖拽,asp,access,xml,mc,视频教程

AS3最in的写法

文章类别:Flash AS编程 | 发表日期:2008-10-6 18:37:02


Well, ok, pun intended.

問題:
你想知道在某個物件(假設是 btn )中是否有一個名為 ‘title’ 的屬性,該怎麼做?

解法:

基本上這個問題有很多種可能解法,常見的有

1、用 try/catch block 去探測 if( btn[’title’] ) 如果回傳 false 就知道不存在

2、用 describeType 之類的 object utility 透過 reflection 知道物件的結構

但這種做法各有不同的爛法。

第1種做法會讓程式碼變的很不優雅,要一大堆 try/catch block。
第2種做法更麻煩,只為了找一個屬性,要把全部的東西都 dump 出來。

正解:

前幾天在翻 air 的 source code,意外發現下面這種寫法

if( ‘title’ in btn ){…}

他/她 直接用 in 就可以探測出 btn 中是否有某個物件,而且不需要 try/catch。

以往 in 都是用在 for in loop這樣的情境中,從來不知道也可以這樣玩,所以當初一看到可真是驚為天人。

後來翻了一下手冊才發現在 language elements 那章就明明白白有講啊,是自已白目沒認真看…

後記:

這件事告讓我們,沒事多讀 framework source code 絕對好處多多,每次我在看的時後,都覺得就在跟 adobe 的工程師對話,邊看邊想像他寫作時腦中的思路,為何他要做這個決定?為何這樣設計?為何寫這段code ?他有試過其它的方式嗎?是不有有其它限制?

不過看 code 也是要有技巧的,不是直接從第一行看到尾,這樣很容易入寶山還是空手回,比較好的方式是先有一個目標,然後進去挖,再搭配一些小技巧,收穫就會比較多(而且比較有效率…)。

上一篇:{教程}As3 onReleaseOutside 人气:3862
下一篇:{教程}MinimalComps 组件source下载 人气:3251
视频教程列表
文章教程搜索
 
Flash AS推荐教程
Flash AS热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058