GVKun编程网logo

Flash XMLUI format

4

在本文中,我们将为您详细介绍FlashXMLUIformat的相关知识,此外,我们还会提供一些关于@JoinColumnOrFormula(formula=@JoinFormulaorg.hibern

在本文中,我们将为您详细介绍Flash XMLUI format的相关知识,此外,我们还会提供一些关于@JoinColumnOrFormula(formula=@JoinFormula org.hibernate.mapping.Formula cannot be cast to org.hibernate.mapping.Column、Actionscript,AS3,MXML,Flex,Flex Builder,Flash Builder,Flash,AIR,Flash Player之关系、asp.net-mvc – 为什么DisplayFormat DataFormatString不工作?、BinaryFormatter、SoapFormatter、XML3种序列化的有用信息。

本文目录一览:

Flash XMLUI format

Flash XMLUI format

XML 转化为 UI

Macromedia Flash Basic 8 和 Flash Professional 8 有几种可扩展功能,如"行为"、"命令"(JavaScript API)、"效果"和"工具"。有了这些功能,高级用户可以扩展或自动化创作工具的功能。"XML 转化为 UI"引擎与这些可扩展功能中的各项合作,就可以创建对话框,供用户查看扩展功能是要求还是接受参数。

"XML 转化为 UI"使用了 XML 用户界面语言 (XUL) 的一个子集和为 Flash 创建的一些标记。这些标记只使用 XML 定义对话框。"XML 转化为 UI"呈现引擎会分析 XML,并生成模式 对话框。与无模式 对话框不同,必须使模式对话框关闭(接受或取消),应用程序才能继续运行。

XML 标记用于"行为"时,定义对话框的标记位于定义该行为的同一个 XML 文件中。对于"效果"、"工具"以及"JavaScript API",XML 标记必须放置在一个独立的 XML 文件中。

"XML 转化为 UI"对话框的布局标记摘要

以下标记用于对话框布局:

标记

说明

<column>

创建表格网格布局中的一列。

<columns>

创建表格网格布局中的 <column> 标记的容器标记。

<dialog>

创建整个对话框的容器标记。

<grid>

创建使用 <rows> 和 <columns> 的表格布局的容器。

<hbox>

创建水平布局项目的容器。

<row>

创建表格网格布局中的一行

<rows>

创建表格网格布局中的 <row> 标记的容器标记。

<separator>

创建在 <hBox> 中垂直显示,在 <vBox> 中水平显示的分隔线。

<spacer>

创建用于排列控件的透明填充间隔。

<vbox>

创建垂直布局项目的容器。

"XML 转化为 UI"对话框的控件标记摘要

以下 XML 标记用于创建控件:

标记

说明

<button>

创建按钮控件。

<checkbox>

创建复选框控件。

<choosefile>

创建文件选择器控件(不属于 XUL 标准)。

<colorchip>

创建颜色选择器控件(不属于 XUL 标准)。

<flash>

创建嵌入式 SWF 文件的容器(不属于 XUL 标准)。

<label>

创建可以与其它控件关联的文本标签。

<listbox>

创建列表框控件,以包含 <listitem> 标记。

<listitem>

创建列表框控件中的单个项目。

<menulist>

创建包含 <menupop> 和 <menuitem> 标记的弹出菜单控件。

<menupop>

创建弹出菜单控件中的弹出菜单;包含 <menuitem> 标记。

<menuitem>

创建弹出菜单控件中的单个项目。

<popupslider>

创建弹出滑块控件(不属于 XUL 标准)。

<property>

创建嵌入式 SWF 文件中的自定义属性;与 <flash> 标记一起使用。

<radiogroup>

创建单选按钮控件组的容器。

<radio>

创建单个单选按钮控件。此标记必须用于 <radiogroup> 标记内部。

<targetlist>

创建可列出一个类的所有实例并供用户选择实例的控件。

<textbox>

创建允许输入文本的控件。

<column>

可用性

Flash MX 2004。

用法

<column>
    ...
    child tags
</column>

属性

无。

子标记

控件标记。

父标记

<columns>

说明

布局标记;创建表格网格布局中的一列。列标记必须在 <columns> 标记内部,而后者又必须在 <grid> 标记内部。

示例

请参阅 <grid> 的示例。

<columns>

可用性

用法

<columns>
</columns>

属性

子标记

<column>

父标记

<grid>

说明

布局标记;为表格网格布局中的 <column> 标记创建容器标记。<columns> 标记必须在 <grid> 标记内部。

示例

<dialog>

可用性

用法

<dialog 
    id = "myID"
    title="yourTitle"
    buttons="accept[,cancel]">
...
child tags
</dialog>

属性

id 字符串;代表唯一的标识字符串,供可扩展功能用于标识对话框和访问对话框返回的值。

title 字符串;是显示在对话框标题栏中的文本。

buttons 接受字符串"accept"和/或"cancel",这两个字符串分别代表"确定"和"取消"按钮。

子标记

<hbox>、<grid>、<vbox>

说明

布局标记;创建整个对话框的容器标记。所用的所有其它标记都必须包含在此标记内。

示例

要查看将 <dialog> 标记与 <hBox> 和 <vBox> 标记一起使用的示例,请参阅 <hbox> 和 <vbox> 中的示例。要查看将 <dialog> 标记与 <grid> 标记一起使用的示例,请参阅 <grid> 中的示例。

<grid>

可用性

用法

<grid>
</grid>

属性

子标记

<columns>、<rows>

父标记

<dialog>

说明

布局标记;创建使用 <rows> 和 <columns> 标记的表格布局的容器。

示例

下面的示例使用 <grid>、<columns> 和 <rows> 标记来定义对话框。要了解此对话框是如何与 JavaScript API 命令合作的,请参阅 <menulist> 的示例。

<dialog id="scale-dialog" title="Scale Selection" buttons="accept,cancel">
    <grid>
        <columns>
            <column/>
        </columns>
        <rows>
            <row align="center">
                <label value="Scale x: " control="xScale"/>
                <textBox id="xScale"/>    
            </row>
                <label value="Scale y:" control="yScale"/>
                <textBox id="yScale" />
            </row> 
        </rows> 
    </grid>
</dialog>

<hBox>

可用性

用法

<hBox>
</hBox>

属性

子标记

<hBox>、<vBox>

父标记

<dialog>、<hBox>、 说明

布局标记;创建水平布局项目的容器。所有在 <hBox> 标记定义内的布局对象都是彼此水平排列。默认情况下,所有布局对象的间隔是均匀的,但是可以用 <space> 标记改变此设置。

示例

下面的示例选自"行为"定义文件 Web_Goto_Webpage.xml,定义了一个带文本框控件和下拉菜单控件的对话框:

<dialog id="GotoWebPage-dialog" title="转到 URL" buttons="accept,68)">    <vBox>
        <hBox>
            <label value="URL:" control="URL"/>
            <textBox literal="true" required="true" width="40" id="URL"/>
        </hBox> 
        <hBox>
            <label value="打开方式:" control="targetwindow"/>
            <menulist literal="true" id="targetwindow">
                <menupopup>
                    <menuitem label=''"_self"''/>                    
                    <menuitem label=''"_parent"''/>
                    <menuitem label=''"_blank"''/>
                    <menuitem label=''"_top"''/>
                </menupopup>
            </menulist>
        </hBox>
    </vBox> 
</dialog>

下图显示"转到 URL"对话框。VBox 和 HBox 容器上分别添加了红蓝轮廓,以便说明这些容器标记是如何用于定义此布局的:

<row>

可用性

用法

<row>
</row>

属性

子标记

父标记

说明

布局标记;创建表格网格布局中的一行。行标记必须在 <rows> 标记内部,而后者又必须在 <grid> 标记内部。

示例

下面的示例使用 <row> 标记来帮助定义对话框。要了解此对话框是如何与 JavaScript API 命令合作的,请参阅         </columns>

可用性 

用法

属性 

子标记

父标记

说明

布局标记;创建表格网格布局中的一行。行标记必须在 <rows> 标记内部,而后者又必须在 <grid> 标记内部。

@H_722_3014@

警告

示例

下面的示例使用 <row> 标记来帮助定义对话框。要了解此对话框是如何与 JavaScript API 命令合作的,请参阅 <menulist> 的示例。

<dialog id="scale-dialog" title="Scale Selection" buttons="accept,cancel">
    <grid>
        <columns>
            <column/>
            <column/>
        </columns>
        <rows>
            <row align="center">
                <label value="Scale x: " control="xScale"/>
                <textBox id="xScale"/>    
            </row>
            <row align="center">
                <label value="Scale y:" control="yScale"/>
                <textBox id="yScale" />
            </row> 
        </rows> 
    </grid>
</dialog>

<rows>

可用性

Flash MX 2004。

用法

<rows>
    ...
    child tags
    ...
</rows>

属性

无。

子标记

<row>

父标记

<grid>

说明

布局标记;创建表格网格布局中的 row 标记的容器标记。columns 标记必须在 <grid> 标记内部。

示例

下面的示例使用 <grid>、<columns> 和 <rows> 标记来定义对话框。要了解此对话框是如何与 JavaScript API 命令合作的,请参阅

    <grid>
        <columns>
            <column/>
            <column/>
        </columns>
        <rows>
            <row align="center">
                <label value="Scale x: " control="xScale"/>
                <textbox id="xScale"/>    
            </row>
            <row align="center">
                <label value="Scale y:" control="yScale"/>
                <textbox id="yScale" />
            </row> 
        </rows> 
    </grid>
</dialog>

<separator>

可用性

Flash MX 2004。

用法

<separator/>

属性

无。

子标记

无。

父标记

<hbox>、<vbox>

说明

布局标记;创建在 <hBox> 中垂直显示,在 <vBox> 中则水平显示的分隔线。

示例

下面的示例向"指定帧提示点导航"行为对话框添加分隔线。当前对话框(为 Flash MX 2004 自带)是在 CuePointNamedFrame.xml 文件中定义的。

<dialog id="NamedFrameCuePointDialog" title="指定帧提示点导航" buttons="accept,cancel">
    <vBox>
        <hBox>
            <label value="选择带有如下指定帧的剪辑:" control="target" required="true" />
            <targetlist id="target"/>
        </hBox> 
        <hBox>
            <checkBox id="stop" label="跳至并停止?(跳至并播放)" checked="false" />
        </hBox> 
    </vBox> 
</dialog>

这些标记生成下面的对话框:

下面的示例添加了分隔线并删除了 <hBox> 标记:

<dialog id="NamedFrameCuePointDialog" title="指定帧提示点导航" buttons="accept,cancel">
    <vBox>
        <label value="选择带有如下提定帧的剪辑:" control="target" required="true" />
        <targetlist id="target"/>
        <separator/>
        <checkBox id="stop" label="跳至并停止?(跳至并播放)" checked="false" />
    </vBox> 
</dialog>

修改后的标记生成下面的对话框:

<spacer>

可用性

Flash MX 2004。

用法

<spacer/>

属性

无。

子标记

无。

父标记

<column>、<hbox>、<row>、<vbox>

说明

布局标记;创建用于排列控件的透明填充间隔。

示例

下面的示例使用 JavaScript API 创建了一个简单的命令,可将所选值发送到"输出"面板。创建文件(如本部分所述),并放入用户级配置文件夹中的 Commands 文件夹。

创建一个名为 Trace Selections.jsfl 的文件。把下面的代码放入该文件并保存文件:

//在 Trace Selections.xml 文件中使用 XML 定义
//创建"XML 转化为 UI"对话框
var traceSelectionsDlg = fl.getDocumentDOM().xmlPanel( fl.configURI + "Commands/Trace Selections.xml" ); 
 
if (traceSelectionsDlg.dismiss == "accept") {
    fl.trace("CheckBox 1: " + traceSelectionsDlg.checkBox1);
    fl.trace("CheckBox 2: " + traceSelectionsDlg.checkBox2);
    fl.trace("CheckBox 3: " + traceSelectionsDlg.checkBox3);
    fl.trace("CheckBox 4: " + traceSelectionsDlg.checkBox4);
    fl.trace("CheckBox 5: " + traceSelectionsDlg.checkBox5);
}

然后,创建一个名为 Trace Selections.xml 的文件(本示例没有使用 <spacer/> 标记,因此第二行复选框控件左对齐)。把下面的代码放入该文件并保存文件:

<dialog id="traceSelections" title="Trace Selections" buttons="accept,cancel">
    <vBox>
        <hBox>
            <checkBox id="checkBox1" label="checkBox1"/>
            <checkBox id="checkBox2" label="checkBox2"/>
            <checkBox id="checkBox3" label="checkBox3"/>
        </hBox>
        <hBox>
            <checkBox id="checkBox4" label="checkBox4"/>
            <checkBox id="checkBox5" label="checkBox5"/>
        </hBox>
    </vBox>
</dialog>

这时,"命令"菜单上出现 Trace Selections 命令。如果从"命令"菜单中选择 Trace Selections 命令,则出现 Trace Selections.xml 定义的对话框,如下图所示:

最后,把 <spacer/> 标记添加到 Trace Selections.xml 文件:

<dialog id="traceSelections" title="Trace Selections" buttons="accept,cancel">
    <vBox>
        <hBox>
            <checkBox id="checkBox1" label="checkBox1"/>
            <checkBox id="checkBox2" label="checkBox2"/>
            <checkBox id="checkBox3" label="checkBox3"/>
        </hBox>
        <hBox>
            <spacer/>
            <checkBox id="checkBox4" label="checkBox4"/>
            <checkBox id="checkBox5" label="checkBox5"/>
        </hBox>
    </vBox>
</dialog>

向第二行复选框添加 <spacer/> 标记会使 checkBox4 和 checkBox5 移向右边:

<vBox>

可用性

Flash MX 2004。

用法

<vBox>
    ...
    child tags
    ...
</vBox>

属性

无。

子标记

<vbox>、控件标记

父标记

<grid>

说明

布局标记;创建垂直布局项目的容器。

示例

下面的示例使用 <vBox> 和 <hBox> 标记,重新定义 <popupslider> 示例中所用的基于 <grid> 的对话框:

<dialog id="skew-dialog" title="Skew Selection" buttons="accept,cancel">
    <vBox>
        <hBox>
            <label value="Skew x: " control="xSkew" align="left"/>
            <popupslider id="xSkew" minvalue="-180" maxvalue="180"/>    
        </hBox>
        <hBox>
            <label value="Skew y:" control="ySkew" align="left"/>
            <popupslider id="ySkew" minvalue="-180" maxvalue="180"/>
        </hBox>
        <hBox>
            <label value="Edge:" control="edge" align="left"/>
            <menulist id="edge">
                <menupop>
                    <menuitem label="top center"/>
                    <menuitem label="right center"/>
                    <menuitem label="bottom center"/>
                    <menuitem label="left center"/>
                </menupop>
            </menulist>
        </hBox> 
    </vBox>
</dialog>

下图所示的"Skew Selection"对话框是使用 <vBox> 和 <hBox> 标记代替 <grid> 标记定义的。VBox 和 HBox 容器上分别添加了红蓝轮廓,以便说明这些容器标记是如何用于定义此布局的:

<button>

可用性

Flash MX 2004。

用法

<button 
    id="myID" 
    label="myLabel" 
    tabindex="myIdx" 
    accesskey="myChar"/>

属性

id 字符串;代表唯一的标识字符串,供可扩展功能用于标识控件和访问控件返回的值。

label 字符串;是显示在按钮上的文本。

tabindex 数字;是个整数,用于设置控件在选项卡顺序中的位置(仅限 Windows)。

accesskey 字符串;是个字符,用于此控件的快捷键(仅限 Windows)。

oncommand JavaScript 命令,单击此按钮时执行。

子标记

无。

父标记

<dialog>、<vbox>

说明

控件标记;创建按钮控件。

示例

下面的示例使用 JavaScript API 来创建"命令"菜单中显示的新命令。创建两个文件(如本部分所述),并放入用户级配置文件夹中的Commands 文件夹。有关详细信息,请参阅"Flash 入门"中的随 Flash 安装的配置文件夹。

首先,创建一个名为 button.jsfl 的文件,并放入 Commands 文件夹中。把下面的代码放入该文件并保存文件:

//在 button.xml 文件中使用 XML 定义
//创建"XML 转化为 UI"对话框
var buttonDlg = fl.getDocumentDOM().xmlPanel( fl.configURI + "Commands/button.xml" ); 

然后,创建一个名为 button.xml 的文件,并放入 Commands 文件夹。把下面的代码放入该文件并保存文件:

<?xml version="1.0"?>
<dialog id="button-dialog" title="Button Example" buttons="accept,cancel">
    <grid>
        <columns>
            <column/>
        </columns>
        <rows>
            <row>
                <label width="150" value="The following buttons will send text to the Output Panel"/>
            </row>
            <row>
                <button id="helloBtn"  label="Hello" oncommand="fl.trace(''Hello'')"/>
            </row>
            <row>
                <button id="worldBtn" label="world" oncommand="fl.trace(''world'')"/>    
            </row> 
        </rows> 
    </grid>
</dialog>

这时,"命令"菜单上出现 button 命令。如果已经打开了一个 Flash 文档,则可以从"命令"菜单中选择 button 命令,会出现 button.xml 定义的对话框。

<checkBox>

可用性

Flash MX 2004。

用法

<checkBox 
    id="myID" 
    label="myLabel" 
    tabindex="myIdx" 
    checked="true|false" 
    accesskey="myChar"/>

属性

id 字符串;代表唯一的标识字符串,供可扩展功能用于标识控件和访问控件返回的值。

label 字符串;是显示在复选框旁的文本。

tabindex 数字;是个整数,用于设置控件在选项卡顺序中的位置(仅限 Windows)。

checked 布尔值;设置默认值。若为 true,则首次出现对话框时已选择该框;若为 false,则情况相反。

accesskey 字符串;是个字符,用于此控件的快捷键(仅限 Windows)。

子标记

无。

父标记

<vbox>

说明

控件标记;创建复选框控件。

示例

下面的示例选自 Labeled Frame CuePoint Navigation 行为定义文件:

<dialog id="NamedFrameCuePointDialog" title="Labeled Frame CuePoint Navigation" buttons="accept,cancel">
    <vBox>
        <hBox>
            <label value="Select clip with labeled frames:" control="target"/>
            <targetlist id="target"/>
        </hBox> 
        <hBox>
            <checkBox id="stop" label="gotoAndStop? (vs gotoAndplay)" checked="false" />
        </hBox> 
    </vBox> 
</dialog>

<choosefile>

可用性

Flash MX 2004。

用法

<choosefile 
    id="myID" 
    literal="true|false" 
    pathtype="relative|absolute"
    required="true|false"
    size="mySize"
    tabindex="myIdx"
    type=""open|save
    value="myValue"
    width="myWidth"/>

属性

id 字符串;代表唯一的标识字符串,供可扩展功能用于标识控件和访问控件返回的值。

literal 布尔值;若为 true,则控件返回的值带引号 ("")。若为 false(默认设置),则返回的值不带引号 ("")。

pathtype 字符串;两个可能的值是 relative 和 absolute

required 布尔值:若为 true,则只有为此控件输入值后,"确定"按钮才有效;若为 false,则控件不影响"确定"按钮。

size 数字;是个整数,使用平均字符宽度设置输入字段的宽度。

tabindex 数字;是个整数,用于设置控件在选项卡顺序中的位置(仅限 Windows)。

type 字符串;可以是"open" 或 "save"

value 字符串;是显示在文本输入区的默认文本。

width 数字;设置文本输入区的宽度,以像素为单位。

子标记

无。

父标记

<vbox>

说明

控件标记;创建文件选择器控件(不属于 XUL 标准)。用户可用此控件访问操作系统的文件选择对话框。

示例

下面的示例使用 JavaScript API 来创建"命令"菜单中显示的新命令。创建两个文件(如本部分所述),并放入用户级配置文件夹中的Commands 文件夹。有关详细信息,请参阅"Flash 入门"中的随 Flash 安装的配置文件夹。

首先,创建一个名为 choosefile.jsfl 的文件,并放入 Commands 文件夹中。把下面的代码放入该文件并保存文件:

//在 choosefile.xml 文件中使用 XML 定义
//创建"XML 转化为 UI"对话框
var chooseFileDlg = fl.getDocumentDOM().xmlPanel( fl.configURI + "Commands/choosefile.xml" ); 
if (chooseFileDlg.dismiss == "accept") { 
    var path = chooseFileDlg.choosefileControl;
    fl.trace(path);
}

然后,创建一个名为 choosefile.xml 的文件,并放入 Commands 文件夹。把下面的代码放入该文件并保存文件:

<?xml version="1.0"?>
<dialog id="choosefile-dialog" title="Choose File Example" buttons="accept,cancel">
    <vBox>
        <label value="Please select a file: "/>
        <choosefile id="choosefileControl" type="open" pathtype="relative"/>
    </vBox>
</dialog>

这时,"命令"菜单上出现 choosefile 命令。如果已经打开了一个 Flash 文档,则可以从"命令"菜单中选择 choosefile 命令,会出现choosefile.xml 定义的对话框,如下图所示:

<colorchip>

可用性

Flash MX 2004。

用法

<colorchip 
    id="myID" 
    color="myColor"/>

属性

id 字符串;代表唯一的标识字符串,供可扩展功能用于标识控件和访问控件返回的值。

color 数字;是个十六进制数字,代表用作默认值的颜色。

子标记

无。

父标记

<vbox>

说明

控件标记;创建颜色选择器控件(不属于 XUL 标准)。此标记为 Flash 特有,不属于 XUL 标记集。

示例

下面的示例使用 JavaScript API 来创建"命令"菜单中显示的新命令。创建两个文件(如本部分所述),并放入用户级配置文件夹中的Commands 文件夹。有关详细信息,请参阅"Flash 入门"中的随 Flash 安装的配置文件夹。

首先,创建一个名为 setcolor.jsfl 的文件,并放入 Commands 文件夹中。把下面的代码放入该文件并保存文件:

//在 setcolor.xml 文件中使用 XML 定义
//创建"XML 转化为 UI"对话框
var setcolorDlg = fl.getDocumentDOM().xmlPanel( fl.configURI + "Commands/setcolor.xml" ); 
 
if (setcolorDlg.dismiss == "accept") { 
    fl.getDocumentDOM().setFillColor(setcolorDlg.fillColor);
    fl.getDocumentDOM().setstrokeColor(setcolorDlg.strokeColor);
}

然后,创建一个名为 setcolor.xml 的文件,并放入 Commands 文件夹。把下面的代码放入该文件并保存文件:

<dialog id="setcolor-dialog" title="Set Color" buttons="accept,cancel">
    <grid>
        <columns>
            <column/>
            <column/>
        </columns>
        <rows>
            <row align="left">
                <label value="Set fill color: " control="fillColor" align="left"/>
                <colorchip id="fillColor" color="#000000"/>    
            </row>
            <row align="left">
                <label value="Set stroke color:" control="strokeColor" align="left"/>
                <colorchip id="strokeColor" color="#000000"/>
            </row> 
        </rows> 
    </grid>
</dialog>

这时,"命令"菜单上出现 setcolor 命令。如果已经打开了一个 Flash 文档,请在舞台上绘制一个形状,然后从"命令"菜单中选择setcolor 命令。会出现 setcolor.xml 定义的对话框,如下图所示:

<flash>

可用性

Flash MX 2004。

用法

<flash 
    id="myID" 
    width="x" 
    height="y" 
    src="SWF file">
    ...
    child tags
    ...
</flash>

属性

id 字符串;代表唯一的标识字符串,供可扩展功能用于标识控件和访问控件返回的值。

width 数字;设置 <flash> 控件的宽度,以像素为单位。

height 数字;设置 <flash> 控件的高度,以像素为单位。

src 字符串;是要嵌入到对话框中的 SWF 文件的路径。

子标记

<property>

父标记

<vbox>

说明

控件标记;创建嵌入的 SWF 文件的容器(不属于 XUL 标准)。JavaScript API 中的 xmlui 对象允许获取和设置嵌入的 SWF 文件中的参数值。

示例

下面的示例选自 blur.xml 文件,为 Blur Timeline Effect 定义了对话框。

<dialog id="blur-dialog" title="Blur"> 
    <flash id="blur_ui" src="blur.swf" width="772" height="456">
        <property id="first" />
        <property id="dur" />
        <property id="hor" />
        <property id="vert" />
        <property id="regPoint" />
        <property id="blur_amount" />
        <property id="baseScale" />
    </flash>
</dialog>

<label>

可用性

Flash MX 2004。

用法

<label 
    control="myControlID" 
    accesskey="char" 
    value="myText" 
    align="left|center|right"/>

属性

control 字符串;是与关联控件的 ID 值匹配的字符串标识符。

accesskey 字符串;是个字符,用于此控件的快捷键(仅限 Windows)。

align 字符串;leftcenter 或 right 分别确定文本是左对齐、居中对齐还是右对齐。

value 字符串;是显示在对话框中的文本。

子标记

无。

父标记

<vbox>

说明

控件标记;创建可以与其它控件关联的文本标签。

示例

下面的示例选自 HideScreen.xml 文件,定义了"Hide Screen Behavior"。

<dialog id="SelectScreenDialog" title="Select Screen" buttons="accept,cancel">
    <vBox>
        <hBox>
            <label value="Select Screen:" control="TARGET"/>
            <targetlist id="TARGET"/>
        </hBox> 
    </vBox> 
</dialog>

<listBox>

可用性

Flash MX 2004。

用法

<listBox 
    id="myID" 
    tabindex="myIdx" 
    rows="numRows">
    ...
    child tags
    ...
</listBox>

属性

id 字符串;代表唯一的标识字符串,供可扩展功能用于标识控件和访问控件返回的值。

rows 数字;是个整数,代表列表框中显示的行数。

tabindex 数字;是个整数,用于设置控件在选项卡顺序中的位置(仅限 Windows)。

子标记

<listitem>

父标记

<vbox>

说明

控件标记;创建列表框控件,以包含 <listitem> 标记。

示例

下面的示例修改了 <popupslider> 中的 skew 命令示例,以便对传递给 JavaScript skewSelection() 方法的 edge 参数使用 <listBox> 控件,而不是 <menulist> 控件。

下面的示例使用 JavaScript API 来创建"命令"菜单中显示的新命令。创建两个文件(如本部分所述),并放入用户级配置文件夹中的Commands 文件夹。有关详细信息,请参阅"Flash 入门"中的随 Flash 安装的配置文件夹。

首先,创建一个名为 skewlist.jsfl 的文件,并放入 Commands 文件夹中。把下面的代码放入该文件并保存文件:

// 在 skew.xml 文件中使用 XML 定义创建"XML 转化为 UI"对话框
var skewlistDlg = fl.getDocumentDOM().xmlPanel( fl.configURI + "Commands/skewlist.xml" ); 
 
// 把对话框中的 xskew 和 yskew 的值放入本地变量。
// 注意:我们把 skewlistDlg["xSkew"] 的返回值转换为数字后,才分配
// 给 xSkew,因为 skewSelection 方法把数字视为参数。
var xSkew = Number(skewlistDlg.xSkew);
var ySkew = Number(skewlistDlg.ySkew);
var edge = skewlistDlg.edge;
 
if (skewlistDlg.dismiss == "accept") {
 
    // 把对话框中的 xSkew 和 ySkew 的值放入
    // 本地变量。此代码把对话框中的值转换为
    // 数字后,才分配给本地变量,
    // 因为 skewSelection() 方法把数字视为
    // xSkew 和 ySkew 参数。
    var xSkew = Number(skewlistDlg.xSkew);
    var ySkew = Number(skewlistDlg.ySkew);
    var edge    = skewlistDlg.edge;
 
    // 检查是否为有效输入,因为发送 0 或 undefined 到
    // skewSelection() 会使对象消失。
    var inputIsValid = true;
    if (xSkew == 0 || isNaN(xSkew)) {
        inputIsValid = false;
    }
    if (ySkew == 0 || isNaN(ySkew)) {
        inputIsValid = false;
    }
 
    // 调用 skewSelection() 来执行调整大小命令。
    if (inputIsValid ) {
        fl.getDocumentDOM().skewSelection(xSkew,ySkew,edge); 
    }
}

然后,创建一个名为 skewlist.xml 的文件,并放入 Commands 文件夹。把下面的代码放入该文件并保存文件:

<dialog id="skewlist-dialog" title="Skew Selection" buttons="accept,cancel">
    <grid>
        <columns>
            <column/>
            <column/>
        </columns>
        <rows>
            <row align="left">
                <label value="Skew x: " control="xSkew" align="left"/>
                <popupslider id="xSkew" minvalue="-180" maxvalue="180"/>
            </row>
            <row align="left">
                <label value="Skew y:" control="ySkew" align="left"/>
                <popupslider id="ySkew" minvalue="-180" maxvalue="180"/>
            </row> 
            <row align="left">
                <label value="Edge:" control="edge" align="left"/>
                <listBox id="edge" rows="5">
                    <listitem label="top center"/>
                    <listitem label="right center"/>
                    <listitem label="bottom center"/>
                    <listitem label="left center"/>
                </listBox>
            </row> 
        </rows> 
    </grid>
</dialog>

这时,"命令"菜单上出现 skewlist 命令。在舞台上绘制一个形状,然后用指针工具选中它。如果从"命令"菜单中选择 skewlist 命令,则出现 skewlist.xml 定义的对话框,如下图所示:

<listitem>

可用性

Flash MX 2004。

用法

<listitem 
    label="mylabel" 
    value="myValue"/>

属性

label 字符串;是显示在列表框中的该项目的文本。

value 字符串;用户选择此项目时返回的文本。如果没有设置,则返回 label 属性的值。

子标记

无。

父标记

<listbox>

说明

控件标记;创建列表框控件中的单个项目。此标记必须用于 <listBox> 标记内部。

示例

请参阅 <listbox> 的示例。

<menulist>

可用性

Flash MX 2004。

用法

<menulist 
    ="myID" id
    ="myIdx">tabindex
    <menupop>
        <menuitem/>
        ...
        <menuitem/>
    </menupop>
</menulist>

属性

id 字符串;代表唯一的标识字符串,供可扩展功能用于标识控件和访问控件返回的值。

tabindex 数字;是个整数,用于设置控件在选项卡顺序中的位置(仅限 Windows)。

子标记

<menupop>

父标记

<vbox>

说明

控件标记;创建包含 <menupop> 和 <menuitem> 标记的弹出菜单控件。

示例

下面的示例使用 JavaScript API 来创建"命令"菜单中显示的一个 Convert to Symbol 新命令。此命令是"修改"菜单上"Convert to Symbol"对话框的简化形式。创建两个文件(如本部分所述),并放入用户级配置文件夹中的 Commands 文件夹。有关详细信息,请参阅"Flash 入门"中的随 Flash 安装的配置文件夹。

首先,创建一个名为 Convert to Symbol.jsfl 的文件,并放入 Commands 文件夹中。把下面的代码放入该文件并保存文件:

// 在 Convert to Symbol.xml 文件中使用 XML 定义
// 创建"XML 转化为 UI"对话框
var convertToSymbolDlg = fl.getDocumentDOM().xmlPanel( fl.configURI + "Commands/Convert to Symbol.xml" ); 
 
if (convertToSymbolDlg.dismiss == "accept") {
    var type = new String(convertToSymbolDlg.type);
    fl.getDocumentDOM().convertToSymbol(type.toLowerCase(),convertToSymbolDlg.name,convertToSymbolDlg.registration); 
}

然后,创建一个名为 Convert to Symbol.xml 的文件,并放入 Commands 文件夹。把下面的代码放入该文件并保存文件:

<dialog id="convertToSymbolDlg" title="Convert to Symbol" buttons="accept,cancel">
    <grid>
        <columns>
            <column/>
            <column/>
        </columns>
        <rows>
            <row align="right">
                <label value="Name: " control="name" align="right"/>
                <textBox id="name" value="Symbol 1"/>    
            </row>
            <row><spacer/></row>
            <row align="right">
                <label value="Behavior:" control="type" align="right"/>
                <radiogroup id="type">
                    <radio label="Movie clip"/>
                    <radio label="Button"/>
                    <radio label="Graphic"/>
                </radiogroup>
            </row> 
            <row align="right">
                <label value="Registration:" control="registration"/>
                <menulist id="registration">
                    <menupop>
                        <menuitem label="top left"/>
                        <menuitem label="top center"/>
                        <menuitem label="top right"/>
                        <menuitem label="center left"/>
                        <menuitem label="center"/>
                        <menuitem label="center right"/>
                        <menuitem label="bottom left"/>
                        <menuitem label="bottom center"/>
                        <menuitem label="bottom right"/>
                    </menupop>
                </menulist>
            </row> 
        </rows> 
    </grid>
</dialog>

这时,"命令"菜单上出现 Convert to Symbol 命令。在舞台上绘制一个形状,然后用指针工具选中它。如果从"命令"菜单中选择 Convert to Symbol 命令,则出现 Convert to Symbol.xml 定义的对话框,如下图所示:

<menupop>

可用性

Flash MX 2004。

用法

<menulist>
    <menupop>
        <menuitem/>
        ...
        <menuitem/>
    </menupop>
</menulist>

属性

无。

子标记

<menuitem>

父标记

<menulist>

说明

控件标记;创建弹出菜单控件的弹出菜单,并且必须至少包含一个 <menuitem> 标记。

示例

以下示例创建了带 8 个元素的弹出菜单控件。要查看整个对话框的 XML 定义,请参阅 <menulist> 的示例。

<menulist id="registration">
    <menupop>
        <menuitem label="top left"/>
        <menuitem label="top center"/>
        <menuitem label="top right"/>
        <menuitem label="center left"/>
        <menuitem label="center"/>
        <menuitem label="center right"/>
        <menuitem label="bottom left"/>
        <menuitem label="bottom center"/>
        <menuitem label="bottom right"/>
    </menupop>
</menulist>

<menuitem>

可用性

Flash MX 2004。

用法

<menulist>
    <menupop>
        <menuitem
            label="displayText"
            value="itemValue"/>
        ...
        <menuitem
            label="displayText"
            value="itemValue"/>
    </menupop>

属性

label 字符串;是显示在弹出菜单中的该项目的文本。

value 字符串;用户选择此项目时返回的文本。如果没有设置,则返回 label 属性的值。

子标记

无。

父标记

<menupop>

说明

控件标记;创建弹出菜单控件的弹出项目,并且必须至少包含一个 <menuitem> 标记。

示例

以下示例创建了带 8 个元素的下拉菜单控件。要查看整个对话框的 XML 定义,请参阅 <menulist> 的示例。

<menulist id="registration">
    <menupop>
        <menuitem label="top left"/>
        <menuitem label="top center"/>
        <menuitem label="top right"/>
        <menuitem label="center left"/>
        <menuitem label="center"/>
        <menuitem label="center right"/>
        <menuitem label="bottom left"/>
        <menuitem label="bottom center"/>
        <menuitem label="bottom right"/>
    </menupop>
</menulist>

<popupslider>

可用性

Flash MX 2004。

用法

<popupslider 
="myLabel"     id
=""     tabindex
=""     minvalue
=""/>    maxvalue

属性

id 字符串;代表唯一的标识字符串,供可扩展功能用于标识控件和访问控件返回的值。

tabindex 数字;是个整数,代表控件在选项卡顺序中的位置(仅限 Windows)。

minvalue 数字;是个整数,代表最小值。

maxvalue 数字;是个整数,代表最大值。

子标记

无。

父标记

<vbox>

说明

控件标记;创建弹出滑块控件(不属于 XUL 标准)。

示例

下面的示例使用 JavaScript API 来创建"命令"菜单中显示的新命令。创建两个文件(如本部分所述),并放入用户级配置文件夹中的Commands 文件夹。有关详细信息,请参阅"Flash 入门"中的随 Flash 安装的配置文件夹。

首先,创建一个名为 skew.jsfl 的文件,并放入 Commands 文件夹中。把下面的代码放入该文件并保存文件:

// 在 skew.xml 文件中使用 XML 定义创建"XML 转化为 UI"对话框
var skewDlg = fl.getDocumentDOM().xmlPanel( fl.configURI + "Commands/skew.xml" ); 
 
// 把对话框中的 xskew 和 yskew 的值放入本地变量。
// 注意:我们把 skewDlg["xSkew"] 的返回值转换为数字后,才分配
// 给 xSkew,因为 skewSelection 方法把数字视为参数。
var xSkew = Number(skewDlg.xSkew);
var ySkew = Number(skewDlg.ySkew);
var edge = skewDlg.edge;
 
if (skewDlg.dismiss == "accept") {
 
    // 把对话框中的 xSkew 和 ySkew 的值放入
    // 本地变量。此代码把对话框中的值转换为
    // 数字后,才分配给本地变量,
    // 因为 skewSelection() 方法把数字视为
    // xSkew 和 ySkew 参数。
    var xSkew = Number(skewDlg.xSkew);
    var ySkew = Number(skewDlg.ySkew);
    var edge    = skewDlg.edge;
 
    // 检查是否为有效输入,因为发送 0 或 undefined 到
    // skewSelection() 会使对象消失。
    var inputIsValid = true;
    if (xSkew == 0 || isNaN(xSkew)) {
        inputIsValid = false;
    }
    if (ySkew == 0 || isNaN(ySkew)) {
        inputIsValid = false;
    }
 
    // 调用 skewSelection() 来执行调整大小命令。
    if (inputIsValid ) {
        fl.getDocumentDOM().skewSelection(xSkew,edge); 
    }
}

然后,创建一个名为 skew.xml 的文件,并放入 Commands 文件夹。把下面的代码放入该文件并保存文件:

<dialog id="skew-dialog" title="Skew Selection" buttons="accept,cancel">
    <grid>
        <columns>
            <column/>
            <column/>
        </columns>
        <rows>
            <row align="left">
                <label value="Skew x: " control="xSkew" align="left"/>
                <popupslider id="xSkew" minvalue="-180" maxvalue="180"/>
            </row>
            <row align="left">
                <label value="Skew y:" control="ySkew" align="left"/>
                <popupslider id="ySkew" minvalue="-180" maxvalue="180"/>
            </row> 
            <row align="left">
                <label value="Edge:" control="edge" align="left"/>
                <menulist id="edge">
                    <menupop>
                        <menuitem label="top center"/>
                        <menuitem label="right center"/>
                        <menuitem label="bottom center"/>
                        <menuitem label="left center"/>
                    </menupop>
                </menulist>
            </row> 
        </rows> 
    </grid>
</dialog>

这时,"命令"菜单上出现倾斜命令。在舞台上绘制一个形状,然后用指针工具选中它。如果从"命令"菜单中选择 倾斜命令,则出现skew.xml 定义的对话框,如下图所示:

<property>

类别

Flash MX 2004。

用法

<property
    id="myID"/>

属性

id 字符串;代表唯一的标识字符串,供可扩展功能用于标识控件和访问控件返回的值。

子标记

无。

父标记

<flash>

说明

控件标记;创建嵌入的 SWF 文件中的自定义属性;与 <flash> 标记一起使用。此标记用于声明嵌入到"XML 转化为 UI"对话框中的 SWF文件所特有的属性。

示例

请参阅 <flash> 的示例。

<radiogroup>

可用性

Flash MX 2004。

用法

<radiogroup 
= "myID"     id
= "myLabel"    label
    groupBox = "true|false">
    <radio/>
    ...
    <radio/>
</radiogroup>

属性

id 字符串;代表唯一的标识字符串,供可扩展功能用于标识控件和访问控件返回的值。

label 字符串;定义显示在单选按钮组上方的字符串。

groupBox 布尔值;若为 true,则整个单选按钮组有边框。

子标记

<radio>

父标记

<vbox>

说明

控件标记;创建单选按钮控件组的容器。此标记允许组合单选按钮,并且必须至少包含一个 <radio> 标记。

示例

下面的示例定义了 <menulist> 的示例中包含的一组 <radio> 控件。要查看完整示例,请参阅 <menulist>。

<radiogroup id="type">
    <radio label="Movie clip"/>
    <radio label="Button"/>
    <radio label="Graphic"/>
</radiogroup>

<radio>

可用性

Flash MX 2004。

用法

<radiogroup>
    <radio label="myLabel" selected="" accesskey=""/>
    ...
</radiogroup>

属性

label 显示在单选按钮旁的文本。

selected 布尔值;若为 true,则该单选按钮是单选组中的默认选择。

accesskey 字符串;是个字符,用于此控件的快捷键(仅限 Windows)。

子标记

无。

父标记

<radiogroup>

说明

控件标记;创建单个单选按钮控件。此标记必须用于 <radiogroup> 标记内部。

示例

下面的示例定义了 <menulist> 的示例中包含的一组 <radio> 控件。要查看完整示例,请参阅 <menulist>。

<radiogroup id="type">
    <radio label="Movie clip"/>
    <radio label="Button"/>
    <radio label="Graphic"/>
</radiogroup>

<targetlist>

可用性

Flash MX 2004。

用法

<targetlist 
="myLabel"     id
="myClass1[,myClass2][,...,myClassN]"     class
    ="true|false" required
    ="relative|absolute"/>pathtype

属性

id 字符串;代表唯一的标识字符串,供可扩展功能用于标识控件和访问控件返回的值。

class 要为之列出实例的类。

required 布尔值;若为 true,则只有为此控件输入值后,"确定"按钮才有效;若为 false 则控件不影响"确定"按钮。

pathtype 字符串;两个可能的值是 relative 和 absolute。 

子标记

无。

说明

控件标记;创建一个列出类的所有实例并供用户选择的控件。

示例

下面的示例选自加载图像行为定义文件。该标记定义了 targetlist 控件,供用户选择图形加载到的影片剪辑。要查看完整的对话框定义,请参阅 Behaviors 文件夹中的 Graphic_load_graphic.xml 文件。

<vBox>
    <label value=""/>
    <label value="选择要将该图像载入到哪个影片剪辑:"/>
    <targetlist id="target"/>
</vBox>

<targetlist> 标记创建的控件如下图所示:

<textBox>

可用性

Flash MX 2004。

用法

<textBox 
    id = "myID" 
    literal = "true|false" 
    maxlength = "myLength" 
    multiline = "true|false" 
    size = "mySize" 
    tabindex = "myIdx" 
    value = "myValue"/>

属性

id 字符串;代表唯一的标识字符串,供可扩展功能用于标识控件和访问控件返回的值。

literal 布尔值;若为 true,则此控件返回的值带引号 ("")。若为 false(默认设置),则返回的值不带引号 ("")。

maxlength 数字;设置最多可输入的字符数。

multiline 布尔值;若为 true,则允许多行输入。若为 false(默认设置),则只允许输入一行。

size 数字;是个整数,使用平均字符宽度设置输入字段的宽度。

tabindex 数字;是个整数,代表控件在选项卡顺序中的位置(仅限 Windows)。

value 字符串;是显示在文本框中的默认文本。

子标记

无。

父标记

<vbox>

说明

控件标记;创建允许输入文本的控件。

示例

下面的示例使用 JavaScript API 来创建"命令"菜单中显示的新命令。创建两个文件(如本部分所述),并放入用户级配置文件夹中的Commands 文件夹。有关详细信息,请参阅"Flash 入门"中的随 Flash 安装的配置文件夹。

首先,在 Commands 文件夹中创建一个名为 scale.jsfl 的文件。把下面的代码放入该文件并保存文件:

// 在 scale.xml 文件中使用 XML 定义
// 创建"XML 转化为 UI"对话框
var scaleDlg = fl.getDocumentDOM().xmlPanel( fl.configURI + "Commands/scale.xml" ); 
 
if (scaleDlg.dismiss == "accept") {
 
    // 把对话框中的 xScale 和 yScale 值放入
    // 本地变量。此代码把对话框中的值转换为
    // 数字后,才分配给本地变量,
    // 因为 scaleSelection() 方法把数字视为参数。
    var xScale = Number(scaleDlg.xScale);
    var yScale = Number(scaleDlg.yScale);
    
 
    // 检查是否为有效输入,因为发送 0 或 undefined 到
    // scaleSelection() 会使对象消失。
    var inputIsValid = true;
    if (xScale == 0 || isNaN(xScale)) {
        inputIsValid = false;
    }
    if (yScale == 0 || isNaN(yScale)) {
        inputIsValid = false;
    }
 
    // 调用 scaleSelection 来执行调整大小命令。
    if (inputIsValid ) {
        fl.getDocumentDOM().scaleSelection(xScale,yScale); 
    }
}

然后,创建一个名为 scale.xml 的文件,并放入 Commands 文件夹。把下面的代码放入该文件并保存文件:

<?xml version="1.0"?>
<dialog id="scale-dialog" title="Scale Selection" buttons="accept,cancel">
    <grid>
        <columns>
            <column/>
            <column/>
        </columns>
        <rows>
            <row align="center">
                <label value="Scale x: " control="xScale"/>
                <textBox id="xScale"/>    
            </row>
            <row align="center">
                <label value="Scale y:" control="yScale"/>
                <textBox id="yScale" />
            </row> 
        </rows> 
    </grid>
</dialog>

这时,"命令"菜单上出现缩放命令。在舞台上绘制一个形状,然后用指针工具选中它。如果从"命令"菜单中选择缩放命令,则出现scale.xml 定义的对话框,如下图所示:

关于配置文件夹

配置文件夹包含 Flash 8 应用程序的可自定义元素。如果您自定义或扩展 Flash 8,可修改这些文件或将源文件添加到一个或多个配置文件夹中。通过熟悉这些文件夹,可以了解 Flash 8 提供的用于扩展的接口。

@H_70_3011@

 

配置文件夹中的文件构成了 Flash 8 接口的大部分内容。请勿修改、删除这些文件或者添加文件,除非您知道如何自定义和扩展Flash 8。

配置文件夹位于三个不同的位置中,具体情况取决于您的操作系统。第一个文件夹(即应用程序配置)的位置与应用程序有关。第二个文件夹(即用户配置)存储于计算机的当前活动用户可写入的位置。此位置将会位于以下一个文件夹位置,具体情况取决于您的操作系统:

用户配置:

Windows:

  • 98 第二版:C:\Windows Directory\Application Data\Macromedia\Flash 8
  • 2000 和 XP:C:\Documents and Settings\用户名\Local Settings\Application Data\Macromedia\Flash 8

Mac OS:

  • Mac OS X:Hard disk/Users/用户名/Library/Application Support/Macromedia/Flash 8

第三个文件夹(即所有用户配置)是 HelpPanel 所在的文件夹。取决于您的操作系统,此位置将会是以下其中之一:

所有用户配置:

Windows:

  • 98 第二版:C:\Windows Directory\All Users\Application Data\Macromedia\Flash 8
  • 2000 和 XP:C:\Documents and Settings\All Users\Local Settings\Application Data\Macromedia\Flash 8

Mac OS:

  • Mac OS X:Hard disk/Users/Shared/Library/Application Support/Macromedia/Flash 8

应用程序级配置目录

应用程序配置文件夹为:

@H_70_3011@

文件/文件夹名

内容

authplay.dll/authplaylib

在创作工具中使用的外部 Macromedia Flash Player(测试影片、调试影片)。

Components*

已编译的组件 SWC 文件的位置,这些文件驱动"组件"面板。

Components FLA

示例组件的源文件。

Configuration.xml

可用于配置 Flash 8,使其在退出时删除 aso 文件夹。

Dictionaries

拼写检查器使用的字典文件。

HelpSWF

"帮助"菜单中使用的 Macromedia Flash 内容。

Importers*

用于扩展 Flash 中可用的导入器的文件。

Libraries*

驱动"窗口">"公用库"菜单的 FLA 源文件的位置。

Templates*

驱动"文件">"从模板新建..."对话框的 FLA 源文件的位置。

*这些文件夹/文件可位于"Application Data"配置文件夹和"User"配置文件夹中。当这两个文件夹中有同名文件时,用户级配置优先。Extension Manager 将文件安装到"User"配置文件夹中。

用户级配置目录

用户配置文件夹为:

@H_70_3011@

文件/文件夹名

内容

missfont.map

 

ActionsPanel

用于自定义"动作"面板的文件:

  • ActionsPanel.xml:工具箱内容的配置 XML
  • AsCodeHints.xml:代码提示的配置 XML
  • AsColorSyntax.xml:彩色语法突出显示的配置 XML
  • Custom Actions:用于将自定义的动作添加到工具箱的文件。

Behaviors

定义行为的 XML 文件。

Classes

ActionScript 的类文件。

Color Sets

颜色管理系统使用的颜色设置。

Commands

JSFL 和 XML 文件,它们定义可通过"命令"菜单找到的 JavaScript 命令。

Data Types

定义在数据绑定架构面板中使用的数据类型的 XML 文件。

Detection

Flash Player 检测工具包使用的文件。

Effects

定义特效的 XML 文件。

Encoders

定义在数据绑定架构面板中使用的编码器的 XML 文件。

Font Embedding

包含字体嵌入表的 XML 文件。

Formatters

定义在数据绑定架构面板中使用的格式程序的 XML 文件。

HTML

用于发布命令的 HTML 模板。

Include

全局 ActionScript 的包含文件的位置。

Keyboard Shortcuts

指定在 Flash MX 中可用的自定义快捷键和助记键设置。

Kinds

定义在数据绑定架构面板中使用的种类的 XML 文件。

Panel Sets

指定在 Flash MX 中可用的默认、开发人员、设计人员和自定义的面板设置。

Publish Profiles

XML 文件的位置,这些文件存储可在"文件">"发布设置..."对话框中找到的配置文件。

Screen Types

定义在创作工具中使用的幻灯片和表单屏幕的数据文件。

StartPage

FLA 源文件的位置,这些源文件由"文件">"另存为模板..."所放置,并驱动"文件">"从模板新建..."对话框。

Templates*

FLA 源文件的位置,这些源文件由"文件">"另存为模板..."所放置,并驱动"文件">"从模板新建..."对话框。

Tools

定义工具的 JSFL 和 XML 文件

Video

包含视频编码配置文件。

WindowSWF

在"窗口"菜单中使用的 Macromedia Flash 内容。

*这些文件夹/文件可位于"Application Data"配置文件夹和"User"配置文件夹中。当这两个文件夹中有同名文件时,用户级配置优先。Extension Manager 将文件安装到"User"配置文件夹中。

所有用户级配置文件夹

"All Users"配置文件夹包含"HelpPanel"文件夹,后者又包含驱动"帮助"面板的文件。这些文件可位于"All Users"配置文件夹和"User"配置文件夹中。当这两个文件夹中有同一书名时,"User"配置文件夹优先。Extension Manager 将文件安装到"User"配置文件夹中。

@JoinColumnOrFormula(formula=@JoinFormula org.hibernate.mapping.Formula cannot be cast to org.hibernate.mapping.Column

@JoinColumnOrFormula(formula=@JoinFormula org.hibernate.mapping.Formula cannot be cast to org.hibernate.mapping.Column

@JoinColumnOrFormula (formula=@JoinFormula 在 hibernate4.3.11 中报错:

Caused by: java.lang.ClassCastException: org.hibernate.mapping.Formula cannot be cast to org.hibernate.mapping.Column
    at org.hibernate.cfg.annotations.TableBinder.bindFk(TableBinder.java:433)
    at org.hibernate.cfg.annotations.CollectionBinder.bindCollectionSecondPass(CollectionBinder.java:1467)
    at org.hibernate.cfg.annotations.CollectionBinder.bindOneToManySecondPass(CollectionBinder.java:865)
    at org.hibernate.cfg.annotations.CollectionBinder.bindStarToManySecondPass(CollectionBinder.java:780)
    at org.hibernate.cfg.annotations.CollectionBinder$1.secondPass(CollectionBinder.java:729)
    at org.hibernate.cfg.CollectionSecondPass.doSecondPass(CollectionSecondPass.java:70)
    at org.hibernate.cfg.Configuration.originalSecondPassCompile(Configuration.java:1697)
    at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1426)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1846)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1930)
    at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:372)
    at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:454)
    at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:439)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1631)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1568)
    ... 75 more

M_CIF_INTERNATIONAL_CHECK

package com.hnair.opcnet.ods.ml.model;

import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import org.hibernate.annotations.Where;

import com.hnair.opcnet.common.util.DateUtils;

@Entity
@Table(name="M_CIF_INTERNATIONAL_CHECK")
public class M_CIF_INTERNATIONAL_CHECK implements java.io.Serializable {
	private static final long serialVersionUID = -1; 

	@Id 
	@GeneratedValue(strategy = GenerationType.IDENTITY) 
	@Column(name =  "ID") 
	private Long id;
	
	@Column(name =  "SRC_ID") 
	private String srcId;
	@OneToMany(fetch = FetchType.EAGER, mappedBy="check")
//	@Where(clause="DELETED = 0")
	private Set<M_CIF_INTERNATIONAL_CHECK_FILE> checkFile = new HashSet<M_CIF_INTERNATIONAL_CHECK_FILE>(); 

	public void setId(Long id){
		this.id=id;
	}
	public Long getId(){
		return id;
	}
	
	public Set<M_CIF_INTERNATIONAL_CHECK_FILE> getCheckFile() {
		return checkFile;
	}
	public void setCheckFile(Set<M_CIF_INTERNATIONAL_CHECK_FILE> checkFile) {
		this.checkFile = checkFile;
	}
}

M_CIF_INTERNATIONAL_CHECK_FILE

package com.hnair.opcnet.ods.ml.model;

import java.util.Date;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import org.hibernate.annotations.JoinColumnOrFormula;
import org.hibernate.annotations.JoinColumnsOrFormulas;
import org.hibernate.annotations.JoinFormula;

import com.hnair.opcnet.common.util.DateUtils;

@Entity
@Table(name="M_CIF_INTERNATIONAL_CHECK_FILE")
public class M_CIF_INTERNATIONAL_CHECK_FILE implements java.io.Serializable {
	private static final long serialVersionUID = -1; 

	@Id 
	@GeneratedValue(strategy = GenerationType.IDENTITY) 
	@Column(name =  "ID") 
	private Long id;
	 
	@Column(name =  "SRC_ID") 
	private String srcId;
	
	@ManyToOne(cascade = CascadeType.REFRESH, targetEntity = M_CIF_INTERNATIONAL_CHECK.class)
	@JoinColumnsOrFormulas(value={
			@JoinColumnOrFormula(column=@JoinColumn(name = "CHECKID", referencedColumnName = "SRC_ID", nullable = true, insertable = false, updatable = false))
			,@JoinColumnOrFormula(formula=@JoinFormula(value="0", referencedColumnName = "DELETED"))
			})
	private M_CIF_INTERNATIONAL_CHECK check;
	
	
	 /** 删除标志 */ 
	@Column(name =  "DELETED") 
	private Integer deleted;

	public void setId(Long id){
		this.id=id;
	}
	public Long getId(){
		return id;
	}
	
	 /** 设置 删除标志 */ 
	public void setDeleted(Integer deleted){
		this.deleted=deleted;
	}
	 /** 获取 删除标志 */ 
	public Integer getDeleted(){
		return deleted;
	}
	public M_CIF_INTERNATIONAL_CHECK getCheck() {
		return check;
	}
	public void setCheck(M_CIF_INTERNATIONAL_CHECK check) {
		this.check = check;
	}
}

主表 M_CIF_INTERNATIONAL_CHECK 中使用 @Where (clause="DELETED = 0")

子表 M_CIF_INTERNATIONAL_CHECK_FILE 取消,@JoinColumnOrFormula (formula=@JoinFormula (value="0", referencedColumnName = "DELETED"))

是正常的

Actionscript,AS3,MXML,Flex,Flex Builder,Flash Builder,Flash,AIR,Flash Player之关系

Actionscript,AS3,MXML,Flex,Flex Builder,Flash Builder,Flash,AIR,Flash Player之关系

 
 
标签:

Actionscript AS3 MXML Flex Flex Builder Flash Builder Flash AIR Flash Player 

 

ActionScript

ActionScript通常简称为AS,它是Flash平台的语言。AS编写的程序,最终可以编译成SWF、SWC。SWF就是我们常说的Flash动画。但是现在SWF已经不仅仅是动画,而是RIA的载体。

ActionScript有3个版本,分别是1.0版(AS1),2.0版(AS2)和3.0版(AS3)。只有Flash Player 9及以上播放器才支持AS3编译的SWF。这三个版本的差别非常大,现在最流行的版本是AS3。

Flex与MXML

因为在开发RIA的时候,需要很多常用的功能,例如控件(Button,ComboBox,List……)、布局(VGroup、VBox……)等等…… Adobe就开发了一套官方的框架集来实现这些功能,这套框架集就叫做Flex。

为了方便程序员快速编写RIA程序界面,Adobe又实现了一种基于XML语法的语言MXML,这套语言很像HTML,可以与AS混用,MXML最终也是编译成SWF或SWC。 Flex框架就是使用AS3与MXML两种语言写成的。但说白了,MXML 外加实现了MXML语法,如果你有兴趣,也可以自己实现这些。 Flash和Flex,都是用AS编写,使用swf体现。

Flash

现在Adobe已经将Flash其定义为一个平台(Flash Plantform),包括了Flash IDE、Flash Builder、AIR、Flash Player以及更多。但我们一般讲Flash,有两个意思,一个是指Flash动画(也就是网页上扩展名为swf的动画),另一个就是Flash IDE。

Flash(IDE)从4.0开始进入中国,前期一直在网页动画方面告诉发展,多被用来做网页小广告(让你cpu100%的罪魁祸首之一)和MV(showgood三国系列、小小系列、大学自习室……曾经风靡一时啊)。那时的“闪客”,主要是做动画,即使涉及到编程,也大多是用当时的AS1.0(后来Flash MX 2004升级为AS2.0)写一点stop、gotoAndplay之类的东东了。Flash(IDE)发展到8.0版本以后,才开始大量用于编程,当时比较流行的就是“Flash留言本”等等。相关历史我做了一张图来表示,括号里的数字是年份。

Flash Builder/Flex Builder

AS发展到3.0之后,由于其语法和JAVA比较像,再加上增强的性能与强类型,可以完全脱离FLA文件,使用纯文本编码,受到了许多其他程序员(尤其是JAVA程序员)的青睐。由此得以高速发展,用AS开发程序的人也越来越多。AS在视频网站、游戏行业发展迅速。但是,Flash IDE虽然是一个很好的动画制作工具,却不是一个好的开发工具。于是,Adobe又发布了Flex Builder,一个基于Eclipse的IDE,并发布了Flex SDK,后来又开源了。

有了免费的编译器,Flex得以快速发展。用Flex Builder也可以开发纯AS项目(即所有的文件都是as文件,不包含MXML,也不包含FLA)。一个真正的程序猿,应该更愿意使用这种方式吧?Flex Builder从4.0开始,被Adobe改名为Flash Builder。

Flash Builder和Flash IDE不应该放在一起比较,它们不是一类软件。如果一定要比较一下的话,那么就是Flash IDE比较偏重于设计一点,用它做动画比较方便,当然也可以用它编写AS3程序。用Flash IDE编写的程序,会有一个FLA源文件,可能还包含多个as文件。Flash Builder偏重于程序,用它可以开发MXML(也就是Flex)项目。也可以用它编写纯AS项目。用Flash Builder编写的项目,都是纯文本文件(.as或者.mxml)。 对于程序流,当然偏爱Flash Builder,而设计流比较偏爱Flash IDE。

当然,IDE并非只有Adobe官方的东西,Flash Develop就是个免费的IDE。如果你愿意,用记事本做编辑器也没什么不好(比如说zrong就正在尝试VIM),因为SDK和编译器都是免费的。

Flash Player

swf动画需要在网页上显示出来,就需要安装Flash Player。Flash Player的不同版本,其实与Flash IDE也有一定的对应关系(从上图也能看出来)。但到了AS3时代后,这个对应关系就不那么明显了。Flash Player 9是能支持AS3 的最低版本(其实前面还有一个Flash Player 8.5,只是没普及就升级到9了),后面的Flash Player 都能支持AS3了。关于Flash Player,我写过一篇有史以来关于Flash Player的最详细说明,看这个就很清楚了。

AIR

Flash Player 再强大,也是运行在浏览器中,受浏览器约束。为了摆脱浏览器,Adobe又出奇招,发布了AIR。AIR其实就是一个Runtime,你可以把它理解成JVM。有了AIR,就可以用AS3开发桌面软件,而且开发出的软件可跨平台运行(这和JAVA的一次编译,随处运行不是如出一辙么!)。目前国内的AIR应用主要集中在网站的客户端方面,例如新浪微博AIR客户端等。

SWF SWC SWZ

SWF
swf是我们见到的最多的Flash平台文件了。是的,它就是Flash平台的最终表现形式。前面说到了,无论是Flex、Flash还是纯AS3,最终编译出来的文件都是swf格式,浏览器中的Flash Player插件和独立的Flash Player,也只能“打开”swf文件进行播放。前面说到的AIR,它的本质也就是运行时+swf而已。

其实并非所有的swf都能直接播放的。swf有3种:

  1. 程序SWF(application swf):可以直接在flash player中运行的swf;
  2. 库SWF(library swf):swc文件中的library.swf;
  3. 模块SWF(module swf):Flex Module产生的swf文件。

最终用户碰到的绝大多数都是“程序SWF”,而程序猿们碰到后面两种SWF的可能性就比较大。

SWC

SWC是一种库文件,通常用来发布非开源的类。程序猿们将源码编译成SWC文件,并发布api文档,我们就可以使用这些SWC提供的类库进行自己的开发。SWC并不是运行时共享的,而是在编译的时候直接加入了程序SWF中。最终的程序SWF可以脱离SWC运行。

SWC本质就是一个zip文档,其中包含一个library.swf文件和一个用于描述的xml文件,你可以用zip管理器打开它查看。

SWZ

你可能会发现,从TLF出现以来,Flex SDK中多了一个flashx包,这个包中的功能,就是用SWZ实现的。SWZ是在运行时共享的库,你可以将其看作一个可以放在外部的SWC。而且SWZ的共享是平台级别的(Moudle SWF的共享是浏览器级别),存在于操作系统缓存中(Module SWF的存在浏览器缓存),只要下载过一次SWZ,你的操作系统中所有用到这些SWZ中的地方(无论是IE、FF、Chrome还是AIR)都不用重新下载。

对于程序猿,这里的关于SWC和SWZ的信息肯定是不够的,所以建议看一下smithfox的swf swc swz RSLs ant,本文的这个部分也是参照它写成的。

asp.net-mvc – 为什么DisplayFormat DataFormatString不工作?

asp.net-mvc – 为什么DisplayFormat DataFormatString不工作?

我的视图模型中有一个属性如下:
[Editable(false)]
[display(Name = "Date")]
[displayFormat(DataFormatString = "{0:yyyy/MM/dd}",ApplyFormatInEditMode = true)]
public DateTime MovementDate { get; set; }

然而标价

<td>
    @Html.displayFor(modelItem => item.MovementDate)
</td>

日期值为2013/05/15 12:00:00 AM.

我究竟做错了什么?我的型号:

public class WithDateModel
{
    [displayFormat(DataFormatString = "{0:yyyy/MM/dd}")]
    public DateTime TheDate { get; set; }
    public WithDateModel()
    {
        TheDate = DateTime.Now;
    }
}

我的看法:

@model ParkPay.WebTests.Models.WithDateModel
@Html.displayFor(m => m.TheDate)
@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}

什么渲染:

2013/05/25 02:23:37 AM

解决方法

如果你不能让它在模型上工作,你可以尝试它的视图.

@ Html.TextBoxFor(m => m.ValidFrom,“{0:dd / MM / yyyy}”,new {maxlength = 10})

BinaryFormatter、SoapFormatter、XML3种序列化

BinaryFormatter、SoapFormatter、XML3种序列化

参考:http://blog.sina.com.cn/s/blog_5f22d04b0100chsc.html

http://gcq04552015.iteye.com/blog/1699636

Webservice SOAP传输序列化总结最近在接触Webservice,在使用SOAP协议远程调用本地返回自定义类对象的[WebMethod]方法时总是出错,百度Google后解决问题,现总结如下:

一.所有Webservice中传递的对象都必须能够序列化,这个是作为在网络之间传输的必要条件。XML WebService和SOAP标准支持的数据类型如下:
1.基本数据类型.
标准类型,如:int float bool DateTime string等基本数据类型
2.枚举.
支持枚举Enum定义的类型
3.自定义对象.
可以传递任意基于自定义类或结构创建的对象。 但要注意一点: 它只能传输数据成员(变量和属性).
如果定义了方法,则方法不能进行序列化传输,序列化后只剩下数据成员.
4.DataSet对象
支持DataSet,切记:不支持DataTable和DaTarow,DataSet已经是XML Webservice能够支持的最小的可序列化对象.
5.XmlNode对象
基于XmlNode的对象可以表示XML文档的一部分.
6.数组和集合
可以使用任何被支持的类型的数组和简单集合,包括: DataSet对象/XmlNode对象和自定义对象.
不知道读者有没有遇到这种情况,在调用WebService并给一个方法传递了一个DaTarow参数时,运行时会抛出异常: "没法将参数序列化!",如果把DaTarow加入到DataSet中,并将DataSet作为参数传递再运行就OK了。 这是因为:XML WebService只能对数据集DataSet对象类型进行XML序列化,不能对DaTarow对象类型进行XML序列化造成的错误.因此了解一下XML WebService支持序列化的基本数据类型是比较重要的.
除了上述的基本类型以为,Webservice服务不能完成直接序列化传输,但是大部分数据结构借助序列化,仍然可以在Webservice上传输。
例如:
在将一个自定义类序列化到文件时,出现如下错误提示:
System.Reflection.TargetInvocationException: 调用的目标发生了异常。 --->
system.invalidOperationException: 生成 XML 文档时出错。 ---> system.invalidOperationException:
不应是类型 Alink.T1System.Windows.PrintSetting。使用 XmlInclude 或 SoapInclude 属性静态指定非已知的类型。
经查找资料,发现当被序例化的类中包含自定义的复杂类时,需要使用XmlIncludeAttribut属性标识自定义类
现在修改如下:
using System.Xml.Serialization;
[XmlInclude(typeof(自定义类))]
[Serializable]
public class MyDIYClass
自定义的类都添加标记,提供的webservice方法也加标记
[WebMethod]
public object WebServiceMethod(Object requestObj)
要把该类中内含的自定义类都用XmlInclude一次,就可以解决问题了;
这样就可以传输了,List<>,ArrayList对象都可以传输,但是返回类型为ArrayList的[WebMethod]方法,在客户端调用后,得到的是object数组,而且object中的property全部都变为field。另外,接口也不能序列化例如List<Interface>也是不能序列化的,遇到这种情况可以把接口修改为抽象类,同时在抽象类上添加[XmlInclude]属性,最后需要注意一点,自己写的类要想序列化必须有默认构造函数(不带参数的构造函数)。
xml序列化答疑:
(1)需序列化的字段必须是公共的(public)
(2)需要序列化的类都必须有一个无参的构造函数
(3)枚举变量可序列化为字符串,无需用[XmlInclude]
(4)导出非基本类型对象,都必须用[XmlInclude]事先声明。该规则递归作用到子元素
如导出ArrayList对象,若其成员是自定义的,需预包含处理:
using System.Xml.Serialization;
[XmlInclude(typeof(自定义类))]
(5)Attribute中的IsNullable参数若等于false,表示若元素为null则不显示该元素。
也就是说:针对值类型(如结构体)该功能是实效的
若数组包含了100个空间,填充了10个类对象,则序列化后只显示10个节点
若数组包含了100个空间,填充了10个结构体对象,则序列化后会显示100个节点
(6)真正无法XML序列化的情况,某些类就是无法XML序列化的(即使使用了[XmlInclude])
IDictionary(如HashTable)
System.Drawing.Color
System.Drawing.Font
SecurityAttribute声明
父类对象赋予子类对象值的情况
对象间循环引用
(7)对于无法XML序列化的对象,可考虑使用自定义xml序列化(实现IXmlSerializable接口)实现IDictionary的类,可考虑
(1)用其它集合类替代;(2)用类封装之,并提供Add和this函数
某些类型需要先经过转换,然后才能序列化为 XML。如XML序列化System.Drawing.Color,可先用ToArgb()将其转换为整数,过于复杂的对象用xml序列化不便的话,可考虑用二进制序列化。

今天关于Flash XMLUI format的分享就到这里,希望大家有所收获,若想了解更多关于@JoinColumnOrFormula(formula=@JoinFormula org.hibernate.mapping.Formula cannot be cast to org.hibernate.mapping.Column、Actionscript,AS3,MXML,Flex,Flex Builder,Flash Builder,Flash,AIR,Flash Player之关系、asp.net-mvc – 为什么DisplayFormat DataFormatString不工作?、BinaryFormatter、SoapFormatter、XML3种序列化等相关知识,可以在本站进行查询。

本文标签: