################################################################################
##
##  Licensed to the Apache Software Foundation (ASF) under one or more
##  contributor license agreements.  See the NOTICE file distributed with
##  this work for additional information regarding copyright ownership.
##  The ASF licenses this file to You under the Apache License, Version 2.0
##  (the "License"); you may not use this file except in compliance with
##  the License.  You may obtain a copy of the License at
##
##      http://www.apache.org/licenses/LICENSE-2.0
##
##  Unless required by applicable law or agreed to in writing, software
##  distributed under the License is distributed on an "AS IS" BASIS,
##  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
##  See the License for the specific language governing permissions and
##  limitations under the License.
##
################################################################################
accessibilityClass.help = 指定要實作此元件協助工具行為的協助程式類別。
alternative.help = 指定此類別的建議取代。
arrayElementType.help = 指定此陣列元素允許的資料類型。
bindable.help = 表示此屬性或方法或此類別的所有屬性可以用於資料連結運算式。
defaultProperty.help = 指定未使用屬性標籤將此類別的值括起來時，可以在 MXML 中設定此類別的哪一個屬性。
deprecated.help = 將此屬性、方法或類別標示為即將過時，且不再建議使用。
embed.help = 將資產檔 (例如 JPEG、PNG、MP3、XML 等) 嵌入 SWF，並初始化此變數至對應的資產類別。
event.help = 宣告此類別發送的事件。
exclude.help = 從 Flash Builder 的程式碼提示和 ASDoc 中省略此類別的指定屬性、方法、樣式或事件。
excludeClass.help = 從 Flash Builder 的程式碼提示和 ASDoc 中省略此類別。
hostComponent.help = 指定將使用此 Spark 外觀的 SkinnableComponent。
iconFile.help = 指定將在 Flash Builder 中代表此元件的圖示。
inspectable.help = 指定此屬性在 Flash Builder 屬性檢視窗中的顯示方式。也可用於指定String 類型之屬性在 MXML 中的允許值。
managed.help = 表示 LCDS 應該監控對此類別實體的所有修改 (建立/更新/刪除)。受管理的類別會自動為可連結。
nonCommitingChangeEvent.help = 指定表示確認之前，微調變更此屬性值的事件，例如在 TextInput 中的修改。
percentProxy.help = 指定對應至此屬性的百分比屬性。例如，在 MXML 中 width="100%" 會在 ActionScript 中將 percentWidth 設為 100。
remoteClass.help = 指定對應至此類別以進行 AMF 序列化的遠端類別。
resourceBundle.help = 表示此類別使用特定資源包，以使該資源包編譯至 SWF 中。
richTextContent.help = 表示在 MXML 中使用字元資料設定此屬性時，所有字元都應該線性解譯為文字。
skinPart.help = 表示在此元件的外觀中，此屬性的值是外觀部分。
skinState.help = 宣告此元件外觀必須支援的檢視狀態。
style.help = 宣告此元件支援的 CSS 樣式。
swf.help = 指定此 ActionScript 應用程式 SWF 標頭的資訊。
transient.help = 表示此屬性不應加入 AMF 序列化。
