搜档网
当前位置:搜档网 › Flex快速入门

Flex快速入门

Flex快速入门
Flex快速入门

Flex 快速入门

无衣

摘自https://www.sodocs.net/doc/7e4358962.html,/cn/ (版权归原作者所有)

Flex 快速入门: 使用 MXML 和 ActionScript 进行编码

Adobe? 将 Flex 实施为 ActionScript 类库。 该类库包含组件 (容器和控件)、管理器类、数据服务类和所有其他功能的类。 您通过将 MXML 和 ActionScript 语言与该类库一起使用

来开发应用程序。

MXML

MXML 是用于为 Adobe? Flex? 应用程序进行用户界面组件布局的 XML 语言。 您还使用 MXML 来显式定义应用程序的非可视方面, 例如访问服务器端数据源和用户界面组件与数据源之间的数据绑定。

例如, 您通过使用下面的 MXML 语句, 使用 标签来创建 Button 控件的实例:

您设置 id 属性以赋予 Button 实例一个唯一的名称, 以后可以使用该名称引用到它。 label

属性设置在 Button 实例上显示的标签的文本。

下面的示例显示创建显示 Button 控件的 Flex 应用程序所需的完整代码:

xmlns:mx="https://www.sodocs.net/doc/7e4358962.html,/2006/mxml"

horizontalAlign="center" verticalAlign="center"

>

在编写 Flex 应用程序之后, 您必须使用 Flex 编译器来编译它。 Flex 编译器是称为 mxmlc 的一个很小的可执行文件, 处于 Flex 2 安装文件夹下的 Flex SDK 2.0\bin 文件夹中。

提示: 确保 Flex 2 installation folder\Flex SDK 2.0\bin 文件夹处于您的系统的路径中。 让 Flex 编译器处于您的路径中, 使您不管当前处于哪个文件夹中, 都可以从命令行调用它。

说明

1.在您喜爱的文本编辑器 (如, 记事本) 中创建一个新文件并将它另存为

MyFirst.mxml。

2.从前面的示例中将代码输入到 MyFirst.mxml 中并保存您的文件。

3.通过选择“开始”>“所有程序”>“附件”>“命令提示符”, 打开命令窗口。

4.将您的当前目录更改为包含您在步骤 1 中保存的 Flex 应用程序的文件夹。

5.键入下面的命令来调用 Flex 编译器:

mxmlc --strict=true --file-specs MyFirst.mxml

以双短划线开头的命令字符串中的项目被称为编译器选项, 它们被用于定义 Flex 编译

器的行为。 在前面的示例中, 您将 --strict 选项设置为 true 以强制编译器进入 Strict 模式。 在 Strict 模式下, 编译器对您的代码具有较高的期望。 例如, 它期望您以静态方式键入变量。 您使用 --file-specs 选项来指定被编译的 MXML 文件。

6.在 Windows 资源管理器中双击 SWF 文件或在命令行中输入其名称, 在独立的 Adobe

Flash Player 9 中打开它。

此示例会产生下列 SWF 文件:

提示: 您还可以使用 Adobe Flex Builder 2 创建和编译 Flex 应用程序, Adobe Flex Builder 2 是包含可视设计视图的用于 Flex 开发的集成开发环境 (IDE)。 有关 Flex Builder 2 的详细信息, 请参阅使用 Flex Builder 2。

ActionScript

MXML 标签与 ActionScript 类或类的属性相对应。 当您编译 Flex 应用程序时, Flex 会解析 MXML 标签并生成相应的 ActionScript 类。 接着它将这些 ActionScript 类编译成存储在 SWF 文件中的 SWF 字节码。

提示: 若要查看 Flex 生成的中间 ActionScript 文件, 请将 --keep-generated-actionscript 选项添加到 mxmlc 命令中。

继续上面的例子, Flex 提供定义 Flex Button 控件的 ActionScript Button 类。

注意: 在前面的示例中, 标签中的 mx 前缀是一个名称空间。 它是通过使用 Application 标签中的唯一 URL 声明的。 mx 前缀将 mx 名称空间中的每个组件映射到其完全合格的类名称。 这就是 Flex 编译器可以找到与 mx 名称空间中的 MXML 标签相对应的 ActionScript 类的方式。

下面的示例阐述如何通过使用 ActionScript 创建 Button 控件。 该结果与该 MXML 版本是相同的。

xmlns:mx="https://www.sodocs.net/doc/7e4358962.html,/2006/mxml"

viewSourceURL="src/GettingStartedActionScript/index.html"

creationComplete="creationCompleteHandler();"

width="300" height="80"

>

import mx.controls.Button;

import mx.events.FlexEvent;

private var myButton:Button;

private function creationCompleteHandler():void

{

// Create a Button instance and set its label

myButton = new Button();

https://www.sodocs.net/doc/7e4358962.html,bel = "I'm a button!";

// Get notified once button component has been created and processed for layout

myButton.addEventListener (FlexEvent.CREATION_COMPLETE, buttonCreationCompleteHandler);

// Add the Button instance to the DisplayList

addChild (myButton);

}

private function buttonCreationCompleteHandler ( evt:FlexEvent ): void

{

// Center the button

myButton.x = parent.width/2 - myButton.width/2;

myButton.y = parent.height/2 - myButton.height/2;

}

]]>

通过 ActionScript 创建 Flex 组件时, 必须导入组件的类。 您还必须通过使用 addChild() 方法使组件可见, 将组件添加到应用程序的 DisplayList 中。 通过将此示例的长度和复杂性与其等同的 MXML 版本相比较, 您可以看到 MXML 的简单的基于标签的声明性语法是如何

使您免于编写许多ActionScript 代码行来进行组件布局的。

此示例会产生下列 SWF 文件:

注意: 此示例阐述线上 ActionScript 与 Script 标签的使用, 这是在 Flex 应用程序中包含 ActionScript 的一个可能的方法。 其他方法有: 将脚本块分隔到外部ActionScript 文件中, 或使用外部ActionScript 类。

Flex 快速入门: 创建您的第一个应用程序

MXML 文件是普通的 XML 文件, 所以可以选择多种开发环境。 简单的文件编辑器、专用

的 XML 编辑器或者支持文本编辑的集成开发环境 (IDE) 均可用于 MXML 代码编写。 Flex 提供专用的 IDE, 称为 Adobe? Flex? Builder? 2, 您可以使用它来开发应用程序。

MXML 文件的第一行是 XML 声明。 此行必须成为每个 MXML 文件的第一行。

下一行是 标签, 它定义始终是 Flex 应用程序的根标签的 Application 容器。 标签定义包含一个标题栏、一个标题、一条状态消息、一个边框和其子级的一

个内容区域的 Panel 容器。 其 title 属性被设置为 "My Application"。

标签代表一个 Label 控件, 一个用于显示文本的非常简单的用户界面组件。 其 text 属性被设置为 "Hello, World!"。

标签的 fontWeight 和 fontSize 属性改变使用的字体的样式。 还可以使用 CSS 来设置组件的样式。 有关详细信息, 请参阅 Flex 2 开发人员指南*中的“使用层叠样式表(CSS)”。

注意: 可以通过使用命令行编译器 mxmlc 或 Flex Builder 2 编译 Flex 应用程序。有关使用 mxmlc 编译应用程序的说明, 请参阅使用 MXML 和 ActionScript 进行编码教程。

示例

xmlns:mx="https://www.sodocs.net/doc/7e4358962.html,/2006/mxml"

viewSourceURL="src/HelloWorld/index.html"

horizontalAlign="center" verticalAlign="middle"

width="300" height="160"

>

paddingTop="10" paddingBottom="10" paddingLeft="10" paddingRight="10"

title="My Application"

>

结果

Flex 快速入门: 入门处理事件

Adobe? Flex? 应用程序是事件驱动的。事件让程序员知道用户何时与界面组件交互, 以及

在组件的外观或生命周期中何时发生重要的变化, 如组件的创建或破坏或调整其大小。

当组件的实例发出某个事件时, 会通知您注册为该事件的监听器的对象。您在 ActionScript 中定义事件监听器 (也称为事件处理程序) 来处理事件。您在组件的 MXML 声明中或者在 ActionScript 中注册事件的事件监听器。

接收事件通知有三种方式:

?在 MXML 中注册事件处理程序

?在 MXML 定义中创建线上事件处理程序

?通过 ActionScript 注册事件监听器

在 MXML 中注册事件处理程序

获得事件通知的第一个和使用最广泛的方法是在 MXML 中定义事件发生时会调用的事件处理程序。

在此示例中, 您为 Button 控件的 click 事件定义一个事件处理程序。用户单击 Button 控件时,事件处理程序会将 Label 控件的 text 属性设置为“Hello, World!”。

示例

xmlns:mx="https://www.sodocs.net/doc/7e4358962.html,/2006/mxml"

width="300" height="200"

horizontalAlign="center" verticalAlign="middle"

viewSourceURL="src/HandlingEventsEventHandler/index.html"

>

import flash.events.MouseEvent;

private function clickHandler ( event:MouseEvent ):void

{

myLabel.text = "Hello, World!";

}

]]>

title="My Application" horizontalAlign="center"

paddingTop="10" paddingBottom="10" paddingLeft="10" paddingRight="10"

>

结果

在 MXML 定义中创建线上事件处理程序

有时, 对事件作出响应最容易的方法是在组件的 MXML 定义中完全地定义事件处理程序。 这也称为使用线上事件处理程序。

在下面的示例中, 您设置 标签的 click 属性, 这样它会直接设置 Label 控件的 text 属性, 而不会调用事件处理程序方法。

提示: 使用线上事件处理程序可能很快并产生很少代码, 但它们也会导致代码很难阅读、维护和缩放。 不在一个线上事件处理程序中包含多个 ActionScript 语句是一个很好的经验。 如果您必须包含更加复杂的逻辑, 请将它置于 ActionScript 帮助器方法中或置于 ActionScript

事件处理程序中。

示例

xmlns:mx="https://www.sodocs.net/doc/7e4358962.html,/2006/mxml"

viewSourceURL="src/HandlingEventsInlineMethod/index.html"

horizontalAlign="center" verticalAlign="middle"

width="300" height="200"

>

title="My Application" horizontalAlign="center"

paddingTop="10" paddingBottom="10" paddingLeft="10" paddingRight="10"

>

结果

通过 ActionScript 注册事件监听器

您还可以通过使用 ActionScript, 通过注册事件处理程序来对事件作出响应。

在此示例中, 您通过使用 ActionScript 中的 addEventHandler() 方法来注册事件处理程序。 您将 addEventHandler() 方法置于 Application 容器的 creationComplete 事件的事件处理程序中。

提示: Application 表单的 creationComplete 事件在 Application 表单及其子级被初始化之后, 在启动应用程序时发生。 creationComplete 事件的事件处理程序为您提供一个运行 ActionScript 代码以注册事件监听器的方便位置。

示例

xmlns:mx="https://www.sodocs.net/doc/7e4358962.html,/2006/mxml"

viewSourceURL="src/HandlingEventsActionScript/index.html"

horizontalAlign="center" verticalAlign="middle"

width="300" height="200"

creationComplete="creationCompleteHandler(event);"

>

import flash.events.MouseEvent;

import mx.events.FlexEvent;

private function creationCompleteHandler(event:FlexEvent):void

{

// Listen for the click event on the Button control

myButton.addEventListener (MouseEvent.CLICK, clickHandler);

}

private function clickHandler ( event:Event ):void

{

myLabel.text = "Hello, World!";

}

]]>

title="My Application" horizontalAlign="center"

paddingTop="10" paddingBottom="10" paddingLeft="10" paddingRight="10" >

结果

Flex 快速入门: Flex 组件的定位和布局

大多数 Flex 容器使用预定义的规则集来自动定位您在其内定义的所有子组件。如果您使用 Canvas 容器, 或者 Application 或 Panel 容器, 其 layout 属性被设置为 "absolute", 则可以为其子级指定绝对位置, 或者使用基于限制的布局。

在 Flex 应用程序中定位组件的方法有三种:

?使用自动定位

?使用绝对定位

?使用基于限制的布局

使用自动定位

对于大多数容器, Flex 会根据容器的布局规则(如布局方向、容器填充和容器的子级之间的间隙) 自动定位容器子级。

对于使用自动定位的容器, 直接设置其子组件的 x 或 y 属性或调用 move() 方法没有任何效果, 或仅有一个临时效果, 因为布局计算将组件的位置设置为一个计算的结果, 而不是指定的值。

可以通过指定容器属性控制布局的各个方面。下列属性是最常见的:

?layout: 可能的值有 "horizontal"、 "vertical"或 "absolute"。当设置为 "horizontal"时, 容器会将其子级布局在一行内。 当设置为 "vertical"时, 容器会将其子级布局在一列内。 有关 "absolute" 设置的信息, 请参阅绝对定位和基于限制的布局上的部分。

?horizontalAlign: 可能的值有 "left"、 "center"或 "right"。

?verticalAlign: 可能的值有 "top"、 "middle"或 "bottom"。

此示例覆盖Application 容器的 horizontalAlign 属性的 "left" 的默认设置和Application 容器的 verticalAlign 属性的 "top" 的默认设置以分别指定 "center" 和 "middle"。

此示例覆盖Panel 容器的 layout 属性的 "vertical" 的默认设置, 从而以水平方式显示 Label 和 Button 控件。 Panel 容器的 padding 属性定义容器的空白区(以像素计)。

示例

xmlns:mx="https://www.sodocs.net/doc/7e4358962.html,/2006/mxml"

viewSourceURL="src/LayoutAutomatic/index.html"

horizontalAlign="center" verticalAlign="middle"

width="380" height="150"

>

title="My Application"

paddingTop="10" paddingBottom="10"

paddingLeft="10" paddingRight="10"

layout="horizontal" verticalAlign="middle"

>

id="myButton" label="Click Me!"

click="myLabel.text = 'Hello, World!';"

/>

结果

使用绝对定位

有三个容器支持绝对定位:

?如果您将 layout 属性指定为 "absolute", 则Application 和 Panel 控件使用绝对定位。

?Canvas 容器始终使用绝对定位。

使用绝对定位, 你通过使用其 x 和 y 属性来指定子控件的位置, 或者指定基于限制的布局;否则, Flex 会将该子级置于父容器的位置 0,0 处。 当您指定 x 和 y 坐标时, 仅当您更改这些属性值时, Flex 才会重新定位控件。

此示例将 Panel 容器的 layout 属性设置为 "absolute"。接着, 它会设置 Label 和 Button 控件的 x 和 y 属性, 从而这两个控件会重叠。

提示: 使用绝对定位是使 Flex 控件重叠的唯一方法。

示例

xmlns:mx="https://www.sodocs.net/doc/7e4358962.html,/2006/mxml"

viewSourceURL="src/LayoutAbsolute/index.html"

horizontalAlign="center" verticalAlign="middle"

width="280" height="170"

>

title="My Application" layout="absolute"

width="220" height="90"

>

id="myLabel"

x="10" y="10" width="180"

fontWeight="bold" fontSize="24"

/>

id="myButton"

x="60" y="10"

label="Click Me!"

click="myLabel.text = 'Hello, World!';"

/>

结果

使用基于限制的布局

您可以通过使用基于限制的布局同时管理子组件大小和定位子组件, 在该布局中您锚定组件的侧边或中心以相对于组件的容器进行定位。

您可以使用基于限制的布局来确定支持绝对定位的任何容器的即时子级的位置和大小。

您通过使用子组件的 top、 bottom、 left、 right、 horizontalCenter或 verticalCenter 样式属性来指定限制。

锚定组件的边缘

您可以将组件的一个或多个边缘锚定在其容器的相应边缘的某个像素偏移处。 当容器调整大小时, 锚定的子级边缘保持与父级边缘的距离相同。

top、 bottom、 left和 right 样式属性指定组件侧边与相应的容器侧边之间的距离(以像素计)。

下面的示例中的 Button 控件具有锚定的底边和右边, 与它所在的 Panel 容器的边相距10 个像素。

示例

xmlns:mx="https://www.sodocs.net/doc/7e4358962.html,/2006/mxml"

viewSourceURL="src/LayoutConstraintsBottomRight/index.html"

horizontalAlign="center" verticalAlign="middle"

width="360" height="200"

>

title="My Application" layout="absolute"

width="300" height="130"

>

id="myButton"

label="A button"

bottom="10"

right="10"

/>

结果

拉伸组件

如果在一个方向中锚定两个边, 如顶边和底边, 则在调整容器大小时, 也会调整组件大小。 下面的示例中的 Button 控件四个边都已被锚定, 与它所在的 Panel 容器的边相距10 个像素。

示例

xmlns:mx="https://www.sodocs.net/doc/7e4358962.html,/2006/mxml"

viewSourceURL="src/LayoutConstraintsEdges/index.html"

horizontalAlign="center" verticalAlign="middle"

width="360" height="200"

>

title="My Application" layout="absolute"

width="300" height="130"

>

id="myButton"

label="A button"

top="10"

bottom="10"

left="10"

right="10"

/>

结果

锚定组件的中心

您还可以将某个子组件的水平或垂直中心(或全部两者) 锚定在容器中心的某个像素偏移处。除非您同时使用基于百分比的大小调整, 否则该子级不会在指定的尺寸内调整大小。horizontalCenter 和 verticalCenter 样式指定在指定的方向上组件的中心点与容器的中心之间

的距离;一个负数会从中心向左或向上移动组件。

horizontalCenter 和 verticalCenter 样式指定从容器中心的偏移(以像素计), 应将控件置于此处。 下面的示例中的 Button 控件将两个样式都设置为 0 (零) 以完美地将它在 Panel 容器中居中。

示例

xmlns:mx="https://www.sodocs.net/doc/7e4358962.html,/2006/mxml"

viewSourceURL="src/LayoutConstraintsCenter/index.html"

horizontalAlign="center" verticalAlign="middle"

width="360" height="200"

>

title="My Application" layout="absolute"

width="300" height="130"

>

id="myButton"

label="A button"

verticalCenter="0"

horizontalCenter="0"

/>

结果

一个更加复杂的示例

下面的这个示例使用基于限制的布局来居中 Label 控件并使 Button 控件拉伸至几乎Panel 的完全长度。 将 Label 控件的 top 属性设置为 10 以限制它看起来与 Panel 的顶部的距离

为 10 像素。 将其 horizontalCenter 属性设置为 10 以完美地将它在 Panel 中居中。

将 Button 控件的 left 和 right 属性设置为 10 以使它拉伸至距离Panel 的每一边都在 10 像素内。 将其底边属性设置为 10 以限制其底边距离Panel 的下边为 10 个像素。

下面的图说明您以可视方式设置的属性的效果。 可视布局控件是 Flex Builder 2 的设计视图的组成部分。

提示: 不要使用 verticalCenter 样式属性指定 top 或 bottom 样式属性, verticalCenter 值会覆盖其他属性。 类似地, 不要使用 horizontalCenter 样式属性指定 left 或 right 样式属性。

由基于限制的布局确定的大小会覆盖任何显式或基于百分比的大小规范。 例如, 如果您指定 left 和 right 样式属性, 产生的基于限制的宽度会覆盖由width 或 percentWidth 属性设置的任何宽度。

示例

xmlns:mx="https://www.sodocs.net/doc/7e4358962.html,/2006/mxml"

viewSourceURL="src/LayoutConstraints/index.html"

horizontalAlign="center" verticalAlign="middle"

width="360" height="200"

>

title="My Application" layout="absolute"

width="300" height="130"

>

id="myLabel"

fontWeight="bold"

fontSize="24"

top="10"

horizontalCenter="0"

/>

id="myButton"

label="Click Me!"

click="myLabel.text = 'Hello, World!';" bottom="10"

height="22"

left="10"

right="10"

/>

结果

Flex 快速入门: 嵌入应用程序资源

可以在 Adobe? Flex? 应用程序中嵌入各种类型的资源。 嵌入的资源被编译到 Flex 应用程序的 SWF 文件中。 它们不是在运行时加载的, 您并非必须使用您的应用程序部署原始资源文件。

提示: 嵌入资源的另一种方法是在运行时加载它们。 在运行时加载的资源必须使用您的应用程序进行部署, 因为它们没有被编译到您的应用程序中。 这具有保持Flex 应用程序的文件大小更小和缩短其初始加载时间的优点。

可以嵌入具有 PNG、JPEG 和 GIF 文件格式的图像, SWF 文件, 具有 MP3 文件格式的声音文件, SVG 文件和字体。 下列主题描述如何嵌入这些资源:

?图像(多个实例)

?图像(单一实例)

?使用 scale-9 拉伸的图像

?用于与 CSS 和外观一起使用的图像

?SWF 文件

?SWF 库资源

?声音文件

?SVG 文件

?字体

嵌入图像(多个实例)

可以在 Flex 应用程序中嵌入具有 PNG、JPEG 或 GIF 文件格式的图像并创建它的一个或多个实例。

此示例使用 [Embed] 元数据标签在您的应用程序中嵌入图像并将它与可绑定的 ActionScript 类相关联。 接着它将 Image 控件的 source 属性绑定到 Logo 类。 可以将 Logo 类绑定到采用某个图像的任何组件属性, 比如 Button 控件的 icon 属性。

示例

xmlns:mx="https://www.sodocs.net/doc/7e4358962.html,/2006/mxml"

viewSourceURL="src/EmbeddingImages/index.html"

layout="horizontal" width="350" height="250"

>

[Embed(source="assets/logo.png")]

[Bindable]

public var Logo:Class;

]]>

结果

嵌入图像(单一实例)

可以使用线上 @Embed 指令在 Flex 应用程序中嵌入只希望显示一次的图像。

此示例将一个图像组件添加到一个应用程序中并使用其 source 属性中的 @Embed 指令。 若要在另一个 Image 控件中使用这一相同的图像, 则还必须将它嵌入到该组件中。 如果希望显示嵌入的图像的多个实例, 请使用 [Embed]元数据标签。

示例

xmlns:mx="https://www.sodocs.net/doc/7e4358962.html,/2006/mxml"

viewSourceURL="src/EmbeddingAnImage/index.html"

width="200" height="240"

>

结果

嵌入使用 scale-9 伸缩的图像

您 可以将某个图像文件嵌入到您的 Flex 应用程序并以类似组件的方式智能地缩放它。 通过使用 scale-9 功能, 您的图像的四个角根本没有缩放, 水平边框仅在水平方向上缩放, 而垂直边框仅在垂直方向上缩放。 例如, 这对于以下情况很有用: 创建使用圆角的框, 或在您希望在缩放组件时保持边框清晰的位置进行组件样式调整。

此示例使用 Embed 元数据标签的 scaleGridTop、 scaleGridBottom、 scaleGridLeft 和 scaleGridRight 网格线位置属性来创建您的 scale-9 网格。

提示: 获得网格线位置的值的一种比较容易的方法是将指南与 Adobe? Photoshop? 中的 Rectangular Marquee 工具和 Info 选项板一起使用。

提示: 旋转嵌入的 scale-9 图像的实例会关闭该图像的 scale-9 以在将来进行任意大小转换。

示例

xmlns:mx="https://www.sodocs.net/doc/7e4358962.html,/2006/mxml"

viewSourceURL="src/EmbeddingImagesScale9/index.html"

layout="vertical" width="400" height="480"

>

SOC学习心得

SoC学习心得 通过老师的精心教导,我对《SoC设计方法与实现》有了一些基本的了解。一个学期的学习使我对SoC技术的概念、特点、发展与未来的发展方向有一些理解。现将我的学习心得整理如下: 首先我了解了SoC的基本概念。从狭义角度讲,它是信息系统核心的芯片集成,是将系统关键部件集成在一块芯片上;从广义角度讲, SoC是一个微小型系统,如果说中央处理器(CPU)是大脑,那么SoC就是包括大脑、心脏、眼睛和手的系统。国内外学术界一般倾向将SoC定义为将微处理器、模拟IP核、数字IP核和存储器(或片外存储控制接口)集成在单一芯片上,它通常是客户定制的,或是面向特定用途的标准产品。SoC技术有很多的特点:半导体工艺技术的系统集成、软件系统和硬件系统的集成、SoC具有很多的优势,因而创造其产品价值与市场需求如:降低耗电量、减少体积、增加系统功能、提高速度、节省成本等集成电路的发展已有40年的历史,它一直遵循摩尔所指示的规律推进,现已进入深亚微米阶段。由于信息市场的需求和微电子自身的发展,引发了以微细加工(集成电路特征尺寸不断缩小)为主要特征的多种工艺集成技术和面向应用的系统级芯片的发展。随着半导体产业进入超深亚微米乃至纳米加工时代,在单一集成电路芯片上就可以实现一个复杂的电子系统,诸如手机芯片、数字电视芯片、DVD 芯片等。在未来几年内,上亿个晶体管、几千万个逻辑门都可望在单一芯片上实现。 SoC (System - on - Chip)设计技术始于20世纪90年代中期,随着半导体工艺技术的发展,IC设计者能够将愈来愈复杂的功能集成到单硅片上, SoC正是在集成电路( IC)向集成系统( IS)转变的大方向下产生的。1994年Motorola发布的FlexCore系统(用来制作基于68000和PowerPC的定制微处理器)和1995年LSILogic公司为Sony公司设计的SoC,可能是基于IP( IntellectualProperty)核完成SoC设计的最早报导。由于SoC可以充分利用已有的设计积累,显著地提高了ASIC的设计能力,因此发展非常迅速,引起了工业界和学术界的关注。 当前芯片设计业正面临着一系列的挑战,系统芯片SoC已经成为IC设计业界的焦点, SoC性能越来越强,规模越来越大。SoC芯片的规模一般远大于普通的ASIC,同时由于深亚微米工艺带来的设计困难等,使得SoC设计的复杂度大大提高。在SoC设计中,仿真与验证是SoC设计流程中最复杂、最耗时的环节,约占整个芯片开发周期的50%~80% ,采用先进的设计与仿真验证方法成为SoC设计成功的关键。SoC技术的发展趋势是基于SoC开发平台,基于平台的设计是一种可以达到最大程度系统重用的面向集成的设计方法,分享IP核开发与系统集成成果,不断重整价值链,在关注面积、延迟、功耗的基础上,向成品率、可靠性、EMI 噪声、成本、易用性等转移,使系统级集成能力快速发展。所谓SoC技术,是一种高度集成化、固件化的系统集成技术。使用SoC技术设计系统的核心思想,就是要把整个应用电子系统全部集成在一个芯片中。在使用SoC技术设计应用系统,除了那些无法集成的外部电路或机械部分以外,其他所有的系统电路全部集成在一起。 展望未来,我认为SOC的发展始终会沿着两个路径前进:产品和服务。从产品的角度来看,从SOC1.0到SOC2.0,实现了业务与安全的融合,符合整个IT管理需求、技术的发展大势。下一步,将会不断涌现面向业务的SOC2.0产品。随着客户需求的日益突出、业务系统的日益复杂,越来越多的企业和组织会部署SOC系统;从服务的角度看,SOC将成为MSSP (可管理安全服务提供商)的服务支撑平台,成为SaaS(软件即服务,安全即服务)的技术支撑平台,成为云计算、云安全的安全管理后台。所有用户体验到的安全服务都会由SOC 来进行总体支撑。一方面,SOC产品的业务理念和思路会渗透到SOC服务之中;另一方面,SOC服务水平与客户认知的提升也会促进SOC产品的发展与成熟。

as3.0学习笔记之绑定与组件生命周期

学习笔记 1.Flex数据绑定的四种方式—2013.5.9 一、"{}"绑定表达式 Flex开发中,"{}"绑定表达式的应用是最为常见的,简单、方便。好比https://www.sodocs.net/doc/7e4358962.html, 中的"<%%>"一样的功效。这里我就简单介绍下,在Flex下怎么使用"{}"绑定表达式来绑定数据。如有这样一个简单的需求,我们定义一个变量,通过"{}"绑定表达式将变量的值绑定到文本框或是按扭等类似的UI组件上,变量定义如下: 简洁、简单、方便且适用。OK,已经学到手了,那下面继续看看另一种绑定使用方式--绑定方法返回值。例如需要将一个方法的返回值通过"{}"绑定表达式进行Flex数据绑定,让其在UI组件上呈现该怎么做呢?如下方法定义: Private function BindText():String{Return “OK” ;} 如上便完成了对方法的绑定,既将BindText()方法的值绑定在了Label组件上。 二、[Bindable]绑定符号 [Bindable]绑定符号在上面就已经出现过了,他的使用和作用也很容易掌握。如上示例,我们的目的是将定义的变量值绑定在UI组件上,如果要实现这个功能,直接将定义的变量通过"{}"绑定表达式进行Flex数据绑定是不能完成功能的,我们必须为所定义的变量标记[Bindable]。在Flex中,只有标记有[Bindable]的数据源才能进行Flex数据绑定(函数除外,上面示例中也证实了这一点),当然也可以是其他的数据源(xml,数据库,文件等不同地方不同类型的数据源)。 1、[Bindable]标签用于函数时,只能在setter和getter方式定义的函数前使用,这种绑定称之为函数级绑定。 2、[Bindable]标签用于公有类时,这个类的所有公共变量,setter和getter方式定义的函数都可以用于绑定。这种绑定称为对象级绑定。 三、标签 标签也是使用非常频繁的Flex数据绑定方式。到底怎么个用法呢?下面以两个小示例使用不同的数据源来进行Flex数据绑定演示。首先用

Flex打印问题

Flex打印问题 使用两个类解决打印问题:FlexPrintJob和PringDataGrid。 ? FlexPrintJob。这个类需要在实例化之后用作要打印对象的容器。 ? PringDataGrid。是DataGrid的一个子类,用来打印必须以网格或表格形式显示的数据,支持多页面打印。 简单的打印实例: < ?xml version="1.0" encoding="utf-8"?> < mx:Application xmlns:mx=https://www.sodocs.net/doc/7e4358962.html,/2006/mxml layout="absolute"> < /mx:Application> 见源代码:printDemo.mxml。 创建单独的Print容器: < ?xml version="1.0" encoding="utf-8"?> < mx:Application xmlns:mx=https://www.sodocs.net/doc/7e4358962.html,/2006/mxml layout="absolute" creationComplete="bookDataCall.send()">

flex个人总结

Flex笔记 RIA(Rich Internet Applications) 1.Flex用到的2种语言:MXML 和actionScript ,由于flash player 只支持actionScript3.0和actionScript 2.0,所以MXML会编译成actionScript类; 2.MXML内部嵌入actionSript,实例: 这句话的意思是把其作为内容引用,比如< > &在xml中都有特殊的用法; 3.ActionScript3.0的语言运算符: ①算术用于各类数值的运算:+ 加,- 减,* 乘,/ 除,% 求余,++ 自增,-- 自减 ②逻辑运算:&& 与,|| 或,!非 ③关系运算符:> 大于,< 小于,== 等于,>= 大于等于,<= 小于等于,!=不等于 ④位运算符:& 位与,| 位或,~ 位非,^ 位异或, << 左移, >> 右移 ⑤特殊运算符:()括号,[] 小标,取XML 的属性值”@“ ⑥赋值运算符:简单赋值=;复合算术赋值符:+= ,-=,*=,/=,%=;复合位运算赋值:&=,|=,^=,>>=,<<= ⑦条件运算符: ? ⑧逗号运算符用于把若干表达式组合成一个表达式,运算符为”,“ 4.Flex中的数字类型:int ,Number, uint Number: 在ActionScript3.0中,Number数据类型可以表示整数、无符号整数和浮点数。但是,为了尽可能提高性能,应将Number数据类型仅用于浮点数,或者用于int和uint 类型可以存储的、大于32位的整数值。要存储浮点数,数字中应包括一个小数点。如果您省略了小数点,数字将存储为整数。 Int:Flex数据类型中int数据类型在内部存储为32位整数,它包含一组介于-2,147,483,648(-231)和2,147,483,647(231-1)之间的整数(包括-2,147,483,648和2,147,483,647)。早期的ActionScript版本仅提供Number数据类型,该数据类型既可用于整数又可用于浮点数。在ActionScript3.0中,现在可以访问32位带符号整数和无符号整数的低位机器类型。如果您的变量将不会使用浮点数,那么,使用int数据类型来代替Number 数据类型应会更快更高效。 对于小于int的最小值或大于int的最大值的整数值,应使用Number数据类型。Number 数据类型可以处理-9,007,199,254,740,992和9,007,199,254,740,992(53位整数值)之间的值。int数据类型的变量的默认值是0。 Uint:uint数据类型在内部存储为32位无符号整数,它包含一组介于0和4,294,967,295(232-1)之间的整数(包括0和4,294,967,295)。uint数据类型可用于要求非负整数的特殊情形。例

生理学重点词汇..

生理学重点词汇 A 暗适应Dark adaptation 暗视觉Scotopic vision B 被动转运Passive transport 白细胞Leukocyte 背侧呼吸组dorsal respiratory group 搏功Stroke work 变力作用Inotropic action 变时作用Chronotropic action 变传导作用Dromtropic action 比顺应性Specific compliance 补吸气量Inspiratoryreserve volume 补呼气量Expiratory reserve volume 不完全强直收缩Incomplete tetanus 不感蒸发(不显汗)Insensible perpiration 编码(作用)Encoding 边缘系统Babinski’s sign 巴彬斯基征Limbic system α波阻断α-boock C 出胞Exocytosis 出血时间Bleeding time 刺激Stimulus 超常期Supranormal period 超极化Hyperpolarization 超速驱动压抑Overdrive suppression 初长度Initial length 促红细胞生成素Erythropoietin,EPO 促胰液素Secretin 促甲状腺激素Thyroid stimulating hormone,TSH 促甲状腺激素释放激素Thyrotropin-releaxing hormone,TRH 促性腺激素释放激素Gonadotropin-releasing hormone,GnRH 促肾上腺皮质激素释放激素Corticotropin-releasing hormone,CRH 促肾上腺皮质激素Adrenocorticotropin,ACTH 促阿片-黑素细胞皮质素原(阿黑皮素原)Pro-opiomelanocrtin,POMC 长度-张力曲线Length-tension curve

Flex与Twaver资料

TWaver Flex数据模型 TWaverFlex的基本数据元素是twaver.IData,基本数据容器定义为twaver.DataBox,基于这两类基本元素,TWaverFlex预定义了一系列业务对象,视图网元和管理容器,例如告警(twaver.IAlarm)和告警容器(twaver.AlarmBox),图层(twaver.ILayer)与图层管理容器(https://www.sodocs.net/doc/7e4358962.html,yerBox),拓扑网元(twaver.IElement)和拓扑管理容器(twaver.ElementBox)...... 数据元素结构图 数据管理容器结构图 其中拓扑管理容器(twaver.ElementBox)整合了其他几种容器,提供了丰富的拓扑元素(Dummy, Node, Link, Bus, ShapeNode, ShapeLink, Follower, Rack, Shelf, Slot, Card, Port, Grid, Group, SubNetwork......),为网管界面开发提供了强大的设计模型和业务功能的基础支持。 TWaver Flex数据元素 TWaverFlex以twaver.IData为最基本的数据单元,扩展定义了一系列具有图形和业务意义的数据类型,包括IAlarm, ILayer, IElement... twaver.IData

IData是TWaverFlex的数据元素基类接口,twaver.Data是对其实现类,定义了id, name, icon, toolTip, parent, children等基本属性,对事件派发做了封装,并支持xml数据的导入导出,为TWaver各平台间数据的可序列化奠定了基础。 Data继承于flash.events.EventDispatcher,这使他具有事件派发和监听的功能,可以通过调用下面的方法派发事件或者添加实现监听器: flash.events.EventDispatcher#public dispatchEvent(event:Event):Boolean flash.events.EventDispatcher#addEventListener(type:String, listener:Function, useCapture:Boolean=false, priority:int=0, useWeakReference:Boolean=false):void Data还实现了twaver.IData接口,实现了对属性变化事件的派发和监听 function dispatchPropertyChangeEvent(property:String, oldValue:Object, newValue:Object):Boolean; function addPropertyChangeListener(listener:Function, priority:int = 0 , useWeakReference:Boolean = false):void; function removePropertyChangeListener(listener:Function):void; 此外,Data中还定义了其他功能函数 function get childrenCount():int; function get hasChildren():Boolean; function isDescendantOf(data:IData):Boolean; function isParentOf(data:IData):Boolean; function isRelatedTo(data:IData):Boolean; function toXML(context:XMLContext, newInstance:IData):void; function parseXML(context:XMLContext, xml:XML):void; function setPropertyValue(property:String, value:Object):void; function getPropertyValue(property:String):Object; 下面分别介绍各个实现类 twaver.ILayer

easyUI学习笔记

esayUI 前端开发:企业中java工程师,大多不擅于HTML+CSS 网页布局设计,门户网站(由前端工程师设计),企业内部应用软件(java工程师,选择前端UI框架ExtJS 、Flex 、Easy UI ) ---------------------- Easy UI 学习成本非常低 easyui 最新版本1.3.4,bos开发使用1.3.2版本 ExtJS 2.x 免费,3.x 开始收费 Easy ui 1.2.3版本开始收费 问题:为什么你不用ExtJS ? easy ui 学习成本低,很容易在项目中集成使用,ExtJS 学习成本高昂 EasyUI+tutorial.CHM 官方demo例子 jQuery_EasyUI.doc demo例子 EasyUI-API+1.3.2.chm 中文api jquery.EasyUI-1.3.1+API.chm 英文api jquery-easyui-1.3.2.zip 框架开发包 目录结构分析 demo 示例 locale 国际化信息文件(默认英文提示信息)

plugins 框架功能js文件 src 源码 themes 主题样式 自带5套主题,icons 图标文件 easyloader.js 核心加载器(加载plugins 功能js) jquery-1.8.0.min.js jquery开发js文件 jquery.easyui.min.js easy ui 框架功能js合集 jquery.easyui.min.js == easyloader.js + plugins/* 1.如何在页面中使用easy ui ? 引入四个文件 2、学习使用easy ui 布局功能 layout 布局控件使用 将body、div 分成东西南北中,五个部分

北部
test-logo test-left test-middle fx:Binding可以使用 标签将某个对象的数据绑定到另一个对象。 可以使用 标签在 MXML 文件中定义内联单元格渲染器或单元格fx:Component 编辑器。 fx:Declarations可以使用 标签声明当前类的非默认、不可视属性。 可以在 标签内使用 标签定义图形子对象,然后fx:Definition 可以将子对象用于应用程序的其他部分中。 fx:DesignLayer 标签仅供内部使用。 fx:Library可以使用 标签声明当前类的非默认、非可视属性。 fx:Metadata使用 标签可以在 MXML 文件中插入 metadata 标签。 fx:Model可以使用 标签在 MXML 中声明数据模型。 fx:Private可以使用 标签提供有关 MXML 或 FXG 文档的元数据信息。 作为视图状态更改的一部分,可以使用 标签更改某个组件的父容fx:Reparent 器。 fx:Script可以使用 标签定义 ActionScript 代码块。 fx:Style可以使用 标签定义适用于当前文档及其子项的样式。 fx:XML可以使用 标签在 MXML 中声明 XML 格式的数据模型。 可以使用 标签在 MXML 中通过文本格式的模型创建 E4X XMLList fx:XML List 对象。 fx:Binding在使用标签时,需要提供源属性和目标属性。可以使用标签将视图或用户界面与模型完全分离。通过标签,您还可以将不同的source 属性绑定到同一个destination 属性。

CSS层叠样式学习总结

css3 总结01 前缀 ?chrome: -webkit- ?safari: -webkit- ?firefox: -moz- ?ie: -ms- ?opera: -o- 书写的时候应该先用有前缀的样式,再用无前缀的样式 颜色 ?rgb(red, green, blue); ?rgba(red, green, blue, opacity[0-1]); ?hsl(色度,饱和度,亮度); 色度为色轮的度数,0/360d代表红色,120代表绿色,240代表蓝色; 饱和度百分比值,100%表示完全显示该颜色; 亮度百分比值,0%代表黑色,100%代表白色,50%平均值 圆角 border-radius: 20px;//水平,垂直border-radius: 20px,20px;//左上,右上,右下,左下border-radius: 20px,20px 20px 20px; 下拉阴影 //水平;垂直;模糊直径;颜色box-shadow: 10px 5px 15px #000;//内阴影box-shadow: 10px 5px 15px #000 inset;//水平;垂直;模糊直径;延展距离;颜色box-shadow: 10px 5px 15px 15px #000;//多阴影box-shadow: 0 1px 1px #fff inset, 5px 5px 10px #000; chromw:-webkit-;safari:-webkit-;ie>=9 文本阴影

//水平;垂直;颜色text-shandow: 1px 1px #fff;//水平;垂直;模糊直径;颜色text-shandow: 1px 1px .3em #fff; 渐变 默认下渐变是垂直方向的;也可以传递一个位置参数来改变方向 linear-gradient(#ccc, #ddd, white);//设定一个倾斜度 linear-gradient(-45deg, #ccc, #fff);//水平渐变 linear-gradient(left, #ccc, #fff);//设置颜色停止值 linear-gradient(white, #ddd 20%, black); 选择器 //选中的第一个元素:first-child//选中的最后一个元素:last-child//选中的元素是其父元素的 唯一子元素:only-child//选中当前URL的哈希中的目标元素:target //选中复选框以被勾选的元素 :checked ?nth-child选择器 nth-child(n); nth-child(even);/nth-child(2n); nth-child(odd);/nth-child(2n+1); ?直接后代选择器 > ?否定选择器 :not(.current) ie>=9 过渡 transition: 持续时间,属性, [动画类型];//多个动画transition: 2s opacity, .5s height ease-in; 定时函数种类

Flex3.0面试题

1.as2与as3.的最主要区别是什么? 答:首先,as2和as3是完全不同的语言,几乎没有兼容性可言。as2编译用的AVM1虚拟机,as3用的AVM2,速度快,提供了一些基础异常处理。 as3是纯的OOP,强类型语言。as2不是。具体的差别有太多太多。 2.flex的开发框架有哪些,它们有什么优缺点? 答:最常见的当然是Cairngorm、Puremvc了,此外还有Mate,Swiz等等,据说被广泛应用的已经有10几款了。Cairngorm作为Adobe官方出品,有着贵族血统的它比较全面,是这些框架中已知bug最少的,但是基于他的应用相对臃肿复杂一些,需要对每个可以被触发的事件写一个对应的Command,编码量巨大,并且单元测试很不容易,不适合敏捷开发。Puremvc应该是现在用的最多的as 框架了。比较完善、并且与Cairngorm相比,更适合中小型应用的开发,它与Cairngorm一样,也是以MVC模式为中心,并以Fa?ade作为中央存储器的单件类的形式进行开发的。说下Mate,它是一个比较奇怪的框架,是基于标签的事件驱动型的。也就是说你不能再随意的写as类的,在使用Mate的情况下,只能用MXML来做这些事情。Swiz是Mate的孪生兄弟,长的挺像,没具体用过,不大了解。 3.在flex开发中,很多代码都写在mxml文件里,为了做到mvc模式,你是怎么处理的。 我认为mxml并不影响mvc模式啊。分两种情况来讨论,首先,是自己创建整个应用结构的时候,那我们可以手动将UI所在的mxml归为一类,然后由Mediator去操作或者说控制这些组件既可了,然后Mediator又统一交给Controller去操作。如果采用其他框架来进行开发的话,那就更不用来考虑这个问题了,像Cairngorm、Puremvc之类的框架已经很好的为我们解决了这些问题。只要按照它们的使用规范来进行开发,自然没有问题。 4.如果发生内存泄露,你是如何解决的? 在profile观察中已经内存泄漏是没有很好的解决办法的,至少我不知道,我能做的只是尽量去避免这种情况的发生,比如说注意不要循环引用,特别是在使用Timer的时候要格外注意,不要忘记全局对象上的引用的清除,在创建控制器和模型的时候要注意一定要使用单件模式。在addEventListener时候尽量采用弱引用、自引用、或者子对象引用,以避免内存泄漏。 5。as3.0垃圾回收器是如何工作的? flash player 8之前采用的是引用计数法,在flash player 8 之后用的是标记法,简单的说就是:从应用的根节点开始,遍历所有其上的引用,标记每个它所发现的 对象。然后迭代遍历每个被标记的对象,标记它们的子对象。这个过程第归进行,直到Player遍历了应用的整个对象树并标记了它所发现的每个东西。在这个过

Flexpaper学习笔记整理

1.主要思路: 文档(Word,PPT等)----> 转换为pdf ----> 转换为SWF -----> 使用FlexPaper在线浏览 第一步:文档--->转换为pdf 用openoffice+jodconverter,openoffice是sun公司自己用Java写的一套开源office 软件,openoffice的缺点在于这个文件很大。 用Flashpaper实现,有绿色版,可通过命令行CMD调用。 第二步:pdf-->转swf 用pdf2swf,pdf2swf提供了命令行参数,我们可以通过Java的Runtime和Process 调用pdf2swf提供的命令将pdf转为swf. 第三步就是显示了,通过flexpaper实现 2.CMD命令行中运行SWFTools文件夹名字带有空格 对于-t ,-o 这两个参数,就是对于源文件路径来输出文件路径的问题,如果你的文件夹的名字中有空格的话,是不能找到文件的。 比如说:要转换的pdf源文件在E:\Program Files\SWFTools\这个文件夹下,当我这样写-t E:\Program Files\SWFTools\ajax.pdf或者是输出文件路径写成这样- o E:\Program Files\SWFTools\ajax.swf 这样都是不能成功的,因为这里面有文件夹名含有空格,在路径的前后加上又引号就能成功啦,如 -o "E:\Program Files\SWFTools\ajax.swf"这样就OK啦. 3.Flexpaper不能加载swf文件 FlexPaper加载swf时,一直处于等待状态,无法显示,检查swf的路径也没错,但就是一直无法加载。这种情况,很有可能就是.swf文件的版本问题啦。我们运行SWFTools的图形工具(gpdf2swf.exe)把pdf转换为swf,但是转换后的swf也不能被Flexpaper 正常加载,确保路径没错的话,那就是版本的问题啦。查看转换时swf的版本,可以点击Edit->Options->Viewer。 解决方法:须把pdf转换为版本为9的swf,才能让它在Flexpaper中显示。那么如何转换为9的呢?我自己是使用cmd命令行工具来手工转换的.只须在命令行添加 "-s flashversion=9"这句,就可以转换为9的版本啦. 4.运行官方的DEMO及Flexpaper的用法 打开刚刚下载好的Flexpaper文件夹,打开里面的例子index.html, (1)运行官方的例子,不能加载任何的.swf(包括例子中的swf)(如果能正常显示的话,请跳过这一步)

JFLex用户手册中文版

JFLEX词法分析 安装与配置 1.下载jflex-1.4.3.zip,解压缩到本地目录(c:/jflex)。 2.找到jflex\bin\jflex.bat文件,配置JAVA HOME和JFLEX HOME 3.把x:\jflex\bin写入系统环境变量path中 运行 可视化方式 直接运行jflex\bin\jflex.bat文件,打开可视化界面操作即可。 命令行方式 配置 把x:\jflex\bin以及x:\jflex\lib\ JFlex.jar配置到系统环境变量的CLASSPATH中。 格式 java JFlex.Main 运行参数 -d 生成文件的输出目录 --skel 使用外部的骨架文件生成扫描器类,它大多数情况下用于JFLEX的维护和低级别定制。只有在你知道自己正在作什么时候才使用它。JFLEX的源码中带有一个骨架文件,预先编写骨架

文件才能使用此命令。 --nomin 在扫描器生成的过程中,跳过DFA简化步骤。 --jlex 完全兼容jlex --dot 为NFA, DFA and minimised DFA生成扩展名为.dot的graphviz图型文件。该参数还在最初阶段,尚未完全实现。 --dump 在控制台显示NFA转换表,初始DFA和最简DFA。 --verbose or –v 显示生成过程信息。 --quiet or –q 仅显示生成错误信息 --time 显示代码生成耗时信息(不十分精确) --version 打印JFLex版本号

软件测试原则及方法学习笔记

1、软件测试的原则 软件测试从不同的角度出发会派生出两种不同的测试原则,从用户的角度出发,就是希望通过软件测试能充分暴露软件中存在的问题和缺陷,从而考虑是否可以接受该产品,从开发者的角度出发,就是希望测试能表明软件产品不存在错误,已经正确地实现了用户的需求,确立人们对软件质量的信心。 测试的原则就是从用户和开发者的角度出发进行软件产品测试的,通过测试,可以为用户提供放心的产品,并对优秀的产品进行认证。 为了达到上述的原则,那么需要注意以下几点: 1.应当把“尽早和不断的测试”作为开发者的座右铭 2.程序员应该避免检查自己的程序,测试工作应该由独立的专业的软件测试机构来完成。 3.设计测试用例时应该考虑到合法的输入和不合法的输入以及各种边界条件,特殊情况下要制造极端状态和意外状态,比如网络异常中断、电源断电等情况。 4.一定要注意测试中的错误集中发生现象,这和程序员的编程水平和习惯有很大的关系。 5.对测试错误结果一定要有一个确认的过程,一般有A测试出来的错误,一定要有一个B来确认,严重的错误可以召开评审会进行讨论和分析。 6.制定严格的测试计划,并把测试时间安排的尽量宽松,不要希望在极短的时间内完成一个高水平的测试。 7.回归测试的关联性一定要引起充分的注意,修改一个错误而引起更多的错误出现的现象并不少见。 8.妥善保存一切测试过程文档,意义是不言而喻的,测试的重现性往往要靠测试文档 在测试实施之前,软件测试工程师必须确定将要采用的测试策略和测试方法,并以此为依据制定详细的测试案例。而一个好的测试策略和

测试方法必将给软件测试带来事半功倍的效果,它可以充分利用有限的人力和物力资源,高效率、高质量地完成测试。 那么,究竟如何才能确定一个好的测试策略和测试方法呢,一般来说,在确定测试方法时,应该遵循以下原则: 第一,要根据程序的重要性和一旦发生故障将造成的损失来确定它的测试等级和测试重点; 第二,要认真研究测试策略,以便能使用尽可能少的测试用例,发现尽可能多的程序错误,因为一次完整的软件测试过后,如果程序中遗留的错误过多并且很严重,则表明本次测试是失败的,是不足的,而测试不足意味着让用户承担隐藏错误带来的危险,同时反过来说如果过度测试则又会浪费许多宝贵的资源。我们需要在这两点上进行权衡,找到一个最佳平衡点。 测试依据: 《GB/T 25000.51-2010 软件工程 软件产品质量要求与评价(SQuaRE)商业现货(COTS)软件产品的质量要求和测试细则》

flex开发规范文档

Flex开发规范 开发规范对可以使用项目中所有的文件进行统一,增加可读性,减少错误出现的几率。规范的编码减少人员变动带来的维护成本,可以让程序员尽快而彻底的理解新的代码。 为了方便维护,特定flex开发规范,每个人必须执行。 1.总体要求 所有As功能代码部分,每个方法需要有相应的注释。核心功能代码要求每个处理都要有注释。注释内容包括:方法功能用途,编写人,时间。 所有标签代码,需进行代码格式化。(myeclipse中的格式化)。 对于后期修改的代码,要注明为后期修改,并写明具体修改时间,修改人。 项目开发必须严格按照开发规范进行编写。 2.命名规则 2.1.项目结构及文件夹命名规则 文件夹命名需小写。除特殊运用框架的工程之外,项目中的文件目录结构应为: com >>assets 图片文件夹 >>common 常用组件文件夹 >>styles 样式文件夹 >>configs 配置文件夹 >>其他业务文件夹 2.2.类命名规则 类命名首字母需大写,取名需按照业务功能的字面意思进行取名。例如LoginPage。所有弹出页面均要加上XXXPop后缀。 2.3.配置文件命名规则 所有配置文件需按字面意思进行命名,首字母大写。例如MapConfig.xml。若文件是某个类专用读取属性于地址目录的配置文件,则要与该类同名。例如HireLine.mxml与HireLine.xml。

2.4.方法命名 除构造方法外,一般方法首字母需小写,后采用驼峰式命名方法,方法命名需体现方法功能。禁止方法名超长。标准应为如下:onMapClick():void, querryCarInfo():void, 2.5.类变量命名 变量命名需简短,明意。首字母需小写,并采用驼峰式命名方法。对于特定关键代码的变量命名后缀需与参照其类型名。例如集合与数组:messageArr。Object类为:infoObj。事件为:clickEvt。字符串为:querryStr等。 2.6.临时变量命名 尽量不与类变量同名,命名方法参照类变量,循环体内的自增变量需采用I,j,k,m,n,也可写成index。对于引用自定义类的变量,命名取该类型的缩写或取其名称的一部分。例如自定义类为CarInfoSearchPop,则变量名为cisp或carpop。 2.7.Bean命名 采用驼峰命名方法,命名需体现业务意思,以Bean结尾,例如:CarInfoBean。 2.8.Remote方法命名 Remote方法命名需与Java端方法同名。 2.9.标签命名 标签的命名所有字母都需大写 3.注释 3.1.类注释 因类包含mxml与纯class,所以均在script中进行注释。因项目中类较多,因此注释可简化为以下项: /**

学习笔记-Financial Implementation

2014/11/23(qq邮箱,Miao19920321) 辅助分类账的最后一个层面——调整: The adjustments can be manual adjustments or automated adjustments from Subledger Accounting. This type of ledger must share the same chart of accounts, accounting calendar/period type combination, and currency as the associated primary ledger. To obtain a complete secondary accounting representation that includes both the transactional data and the adjustments, use ledger sets to combine the adjustments-only secondary ledger with the primary ledger when running reports.(不懂???) 2014/11/24 Define Accounting Setup (建立分类账) Primary ledger 主要分类账 Secondary ledger 辅助分类账 Prerequisite 前提 COA (Reference: Oracle Applications Flexfields Guide, Oracle General Ledger User Guide) 1、会计日历定义 2、子分类账会计方法 Checklist 步骤 1、会计科目结构:分配法人-主要分类账属性-辅助分类账属性-报告币种 2、分配平衡段到法人主体上-分配平衡段到分类账上-定义子分类账会计选项 3、分配和定义业务实体到主要分类账上 4、定义公司间会计科目 5、定义内部公司间规则 6、定义辅助分类账 子分类账会计方法 如果你不想使用标准应计和标准现金的会计方法,你需要在子分类账会计方法中定义新的子分类账会计方法去整合来自各个来源的数据。

词法分析器flex中文手册

FLEX 中文手册 这是flex手册的部分中文翻译,仅供参考 ?一些简单的例子 ?输入文件的格式 ?模式 ?如何匹配输入 ?动作 ?生成的扫描器 ?开始条件 ?文件结尾规则 ?与yacc一起使用 一些简单的例子 首先给出一些简单的例子,来了解一下如何使用flex。下面的flex输入所定义的扫描器,用来将所有的“ username”字符串替换为用户的登陆名字: %% username printf("%s", getlogin()); 默认情况下,flex扫描器无法匹配的所有文本将被复制到输出,所以该扫描器的实际效果是将输入文件 复制到输出,并对每一个“username”进行展开。在这个例子中,只有一个规则。“username”是模式 (pattern),“printf”是动作(action)。“%%”标志着规则的开始。 这里是另一个简单的例子: int num_lines = 0, num_chars = 0; %% \n ++num_lines; ++num_chars; . ++num_chars; %% int main(void) { yylex(); printf("# of lines = %d, # of chars = %d\n", num_lines, num_chars);

} 该扫描器计算输入的字符个数和行数(除了最后的计数报告,并未产生其它输出)。第一行声明了两 个全局变量,“num_lines”和“num_chars”,可以在yylex()函数中和第二个“%%”后面声明的main()函数中 使用。有两个规则,一个是匹配换行符(“\n”)并增加行数和字符数,另一个是匹配所有不是换行符的 其它字符(由正规表达式“.”表示)。 一个稍微复杂点的例子: /* scanner for a toy Pascal-like language */ %{ /* need this for the call to atof() below */ #include %} DIGIT [0-9] ID [a-z][a-z0-9]* %% {DIGIT}+ { printf( "An integer: %s (%d)\n", yytext, atoi( yytext ) ); } {DIGIT}+"."{DIGIT}* { printf( "A float: %s (%g)\n", yytext, atof( yytext ) ); } if|then|begin|end|procedure|function { printf( "A keyword: %s\n", yytext ); } {ID} printf( "An identifier: %s\n", yytext );