Featured Post

action判断Flash Player版本

进去看看»

System.capabilities.version 会返回一个字符串,比如: "win 7,0,14,0" 或者 "win 6,0,32,0" 如果用户是window系统,用这句话: var......

兜儿.生活--威尔斯柯基--杜兜儿

替组件建立和注册新的外观元素

2004年10月29日 下午 1:01 | 发布在:
分类:D.用AS混口饭吃---flash | 已有318人阅读

0

若要建立可使用樣式格式更新的自訂組件外觀元素,您必須採用您所建立的外觀元素實體,更新「讀我」圖層第一個影格中的程式碼,以及要指定給元素的 FStyleFormat 屬性。

將外觀元素註冊到屬性中,會將樣式格式中指定給該屬性的值套用到外觀元素。如果是新的屬性,您必須在組件的樣式格式中定義屬性和值。registerSkinElement 方法可供所?Flash UI 組件使用。若需要更多資訊,請參閱「ActionScript 字典」中每個組件的 registerSkinElement 項目。

若要建立新的外觀元素並將它們註冊到組件中:

1

請開啟元件庫中組件的 Skins 資料夾。

2

按兩下您要建立新外觀元素的外觀元素影片片段。

3

修改影片片段,或是將它刪除並建立新的影片片段。

4

將圖像打散成分離的外觀元素,然後將每個元素另存成影片片段元件。為每個外觀元素指定唯一的名稱。若需要更多資訊,請參閱關於建立和註冊外觀元素

5

按一下您在步驟 2 中選取的外觀元素影片片段「讀我」圖層的第一個影格。

6

以專家模式開啟「動作」面板。

7

使用您在步驟 4 中建立的新外觀元素名稱,取代影片片段中原有的外觀元素名稱。

最简单方法修改组件外观

2004年10月29日 下午 1:01 | 发布在:
分类:D.用AS混口饭吃---flash | 已有379人阅读

0

將ScrollBar改成MacOS X風格,只要繪製好組件所需的外觀元件,每部分獨立放在一個Movie Clip裡,設置鏈接屬性,Identifier(標識符)參考HaloTheme.fla或SampleTheme.fla裡同類元件的名稱,選擇“Export for ActionScript(為動作腳本導出)”和“Export in first frame(在第一幀導出)” ,單擊【確定】按鈕。

再加上以下ActionScript:
import mx.controls.scrollClasses.ScrollBar;
ScrollBar.prototype.upArrowOverName = "";
ScrollBar.prototype.downArrowOverName = "";
ScrollBar.prototype.upArrowDownName = "";
ScrollBar.prototype.downArrowDownName = "";
ScrollBar.prototype.thumbGripName = "";

詳細解說當然留待看我第2本書。

[下載]

使用外部CSS设置 Flash MX 2004组件外观

2004年10月29日 下午 1:01 | 发布在:
分类:D.用AS混口饭吃---flash | 已有320人阅读

0

我们都知道可以轻松的设置 Flash MX 2004 组件的外观,但是如果能用一个外部的 CSS 文件来控制,岂不是更好,使用起来就会更加的方便。这里是我在网上发现的一个例子(来源网址:http://blogs.flashsupport.com/robert/archive/2004/09/08/209.aspx):

1. 创建一个 CSS 文件,定义组件的一些属性,如:

/* Filename: styles.css */
checkbox {
  color: 0x0000FF;
  embedFonts: false;
  fontFamily: Arial;
  fontSize: 24;
}

2. 在 Flash 中载入这个 CSS 文件,将组件套上相关的样式:

import mx.controls.CheckBox;
var oStyle:Object;
var ccbTest:mx.controls.CheckBox;
var styles = new TextField.StyleSheet();
styles.onLoad = function(bSuccess:Boolean):Void {
  if (bSucess) {
    oStyle = this.getStyle("checkbox");
    for(var i in oStyle){
      ccbTest.setStyle(i, oStyle[i]);
    }
  } else {
    trace("Error loading CSS file.");
  }
};
styles.load("styles.css");

如何定制flash组件外观

2004年10月29日 下午 1:01 | 发布在:
分类:D.用AS混口饭吃---flash | 已有753人阅读

0

简介:
    FlashMX2004自带的组件比MX漂亮了很多, 但有时候为了让组件的外观和整个页面的样式相统一, 必须重新改变组件的外观, 这在FlashMX自身是做不到的……

       FlashMX2004自带的组件比MX漂亮了很多, 但有时候为了让组件的外观和整个页面的样式相统一, 必须重新改变组件的外观, 比如组件标签的字体和颜色, 组件的背景颜色等等. 这个FlashMX自身是做不到的.

 

       改变组件外观有三种方法: Use the Styles API(使用样式API), Apply a theme(应用一个主题名), 和Modify or replace a component's skins(修改或替换组皮肤). 这里着重说明第一种方法, Use the Styles API(application programming interface). 我们可以利用Styles API 提供的属性和方法( setStyle()和getStyle())来改变组件的颜色和文本格式.

       其中使用Styles又有四种方法:

      1.Set styles on a component instance. (对一个组件实例设置样式)
      2.Use the _global style declaration that sets styles for all components in a document.(使用全局样式声明对文档的所有组件设置样式)
      3.Create custom style declarations and apply them to specific component instances.(创建自定义样式声明并应用到指定的组件实例)
      4.Create default class style declarations.(为组件类别创建样式声明)
     
      下面对每一种方法进行详解.

      
      Set styles on a component instance (对一个组件实例设置样式).

       从components面板拖个Button 组件到场景(也可以用其它组件),并命名为”myBtn”:

       快捷键”F9”打开Action面板,在时间线上写Action:

myBtn.setStyle("themeColor", "0x00CCFF");
myBtn.setStyle("fontFamily", "Verdana");
myBtn.setStyle("fontSize", "10");
myBtn.setStyle("fontWeight", "bold");
myBtn.setStyle("color", "0x990000");

       Ctrl+Enter 预览效果,组件样式是不是改变了?下面是默认的样式和刚才自定义样式的效果对比图:

      Use the _global style declaration that sets styles for all components in a document.(使用全局样式声明对文档的所有组件设置样式)
        

       FlashMX2004的_global对象的Style属性可以做到这一点:  从components面板拖n 个组件到场景,这里我用的是Button,CheckBox和RadioButton 三个组件,也不要给组件命名,直接在时间线上写Action:
        
  

_global.style.setStyle("themeColor", "0x00CCFF");
_global.style.setStyle("fontFamily", "Verdana");
_global.style.setStyle("fontSize", "10");
_global.style.setStyle("fontWeight", "bold");
_global.style.setStyle("color", "0x990000");

      Ctrl+Enter 预览效果.下面是这三个组件的前后效果对比图:

       这种方法使得场景里的所有组件的外观保持一致.

      Create custom style declarations and apply them to specific component instances.(创建自定义样式声明并应用到指定的组件实例)

       当我们把组件拖到场景里便可以利用CSSStyleDeclaration 对象创建一个样式声明来改变指定组件的外观。还是从components面板拖Button,CheckBox和RadioButton三个组件到场景并分别命名为CompA, CompB, CompC. 在时间线上写Action:

//创建一个CSSStyleDeclaration对象实例
var styleObj = new mx.styles.CSSStyleDeclaration;
//设置styleName属性
styleObj.styleName = "newStyle";
//将样式放到全局样式列表
_global.styles.newStyle = styleObj;
//设置样式属性
styleObj.fontFamily = "Verdana";
styleObj.fontSize = "10";
styleObj.fontWeight = "bold";
styleObj.color = "0x990000";
styleObj.setStyle("themeColor", "0x00CCFF");
//对组件设置样式
CompA.setStyle("styleName", "newStyle");
CompB.setStyle("styleName", "newStyle");
CompC.setStyle("styleName", "newStyle");

 

      下图为三个组件应用样式后的效果:

      Create default class style declarations.(为组件类别创建样式声明)

       这种方法为场景内某一类型的组件定义样式,只对此类别有效。先写Action:

 

//为Button类型的组件定义样式
var btn = _global.styles.Button=new mx.styles.CSSStyleDeclaration();
btn.fontFamily = "Verdana";
btn.fontSize = "12";
btn.fontWeight = "bold";
btn.color = "0x000000";
//为CheckBox类型的组件定义样式
var cb = _global.styles.CheckBox=new mx.styles.CSSStyleDeclaration();
cb.fontFamily = "Tahoma";
cb.fontSize = "12";
cb.fontWeight = "bold";
cb.color = "0x990000";
//为RadioButton类型的组件定义样式
var rb = _global.styles.RadioButton=new mx.styles.CSSStyleDeclaration();
rb.fontFamily = "Arial";
rb.fontSize = "12";
rb.fontWeight = "bold";
rb.color = "0x003399";

 

      然后分别拖3个(个数根据需要而定)Button组件,CheckBox组件,RadioButton组件到场景。
预览效果如下图:

 

      用Styles API 定义组件外观的四种方法介绍完了,呵呵,是不是很象用CSS定义HTML表单对象的样式?

     [注:以上例子只对Flash V2 Component有效]

      通过学习用CSS格式化Flash文本和用样式声明改变组件外观,大家可能感觉到MM正在用Flash打造一个和HTML一样的平台,呵呵,拭目以待~!

在Flash MX Professional 2004中使用XMLConnector组件

2004年10月29日 下午 1:01 | 发布在:
分类:D.用AS混口饭吃---flash | 已有270人阅读

0

简介:
    在Flash MX Professional 2004中,可以用XMLConnector组件更容易地获取XML数据并在Flash中显示,还有新增的动态数据绑定功能。在本文中,介绍一种快速和容易的方法,在Flash MX Professional 2004中创建XML数据驱动接口,不需要手工写ActionScript程序。

网址:http://www.macromedia.com/devnet/mx/flash/articles/xmlconnector.html
下载本文的代码:connector.zip (2.59 MB)
经验级别:中等
阅读本文的知识背景:
1.熟悉Flash
2.看过XML
3.知道为什么数据驱动的web应用程序有用

一、简介

     从Macromedia Flash 5开始我们就可以使用XML文档了,现在我们可以用XMLConnector组件更容易地获取XML数据并在Flash中显示,在Flash MX Professional 2004中还有新增的动态数据绑定功能。在本文中,我们介绍一种快速和容易的方法,在Flash MX Professional 2004中创建XML数据驱动接口,不需要手工写一行ActionScript程序,当然,如果你愿意,也可以用手工写ActionScript脚本来完成同样的功能。

本文含盖以下内容:
1.配置XMLConnector组件和它的架构
2.绑定复杂的数据到ComboBox组件
3.动态绑定text数据到TextInput和TextArea组件
4.格式化动态绑定的数据
5.动态绑定图象到Loader组件

    在本文中,你将学习在Flash MX 2004中数据绑定意味着什么,以及动态数据绑定是怎样让组件响应用户输入的。

二、让我们开始:检查自行车旅行程序及其数据

     这个程序从一个外部XML文件中读自行车旅行信息,然后显示这些信息。用户可以用名称选择任一旅行项目,还可以看相应的介绍、价格和图片。当所选择的旅行项目改变时,这些内容也会更新。

1.下载XMLConnector.zip,解压到一个本地目录。
2.文件和目录结构如下:
     完成的程序:XMLConnector_done.fla
     未完成的程序:XMLConnector_raw.fla
     数据:data/trips.xml
     图片:
       images/bigsur.jpg
       images/grandcanyon.jpg
       images/greatsmokies.jpg
       images/natchez.jpg
       images/vermont.jpg
       images/napa.jpg
     阶段完成的程序(测试点):
       solution/XMLConnector_step1_done.fla
       solution/XMLConnector_step2_done.fla
       solution/XMLConnector_step3_done.fla
       solution/XMLConnector_step4_done.fla
       solution/XMLConnector_step5_done.fla
3.在FlashMX Professional 2004.打开XMLConnector_done.fla
4. 选择 控制 > 测试影片 开始测试程序。
5. 改变在ComboBox组件中的旅行项目名称,查看图片和内容的更新情况。
6. 打开文件data/trips.xml,检查XML数据结构。
7. 关闭XMLConnector_done.fla,但保持data/trips.xml在打开状态以备稍后再检查。

三、设置程序以使用XMLConnector组件

     为了使用XMLConnector组件,你必须在程序中放一个组件实例,为它设置数据源XML文件,并且加一个行为来触发这个组件在程序装载时装载数据。

1. 在Flash MX 2004中打开XMLConnector_raw.fla文件,将它另存为XMLConnector_step1.fla.
2. 看看层的结构;注意只有背景和静态文本层有内容。

注意:尽管文本包含一个代码层,你将通过增加行为的方法添加代码,所以你不必处理代码。但是,对于好的文件组织,应该将代码放在一个单独的层中,而不是放在可视内容层中。

3. 打开组件面板,拖一个XMLConnector 组件实例到你的程序的code层中,将它放在舞台旁边,靠近写有Bike Trip Central的静态文本(用工具箱中的文本工具写出)左边的地方。

注意:虽然XMLConnector组件在运行时是不可见的,但如果将它放在舞台上,在设计时会干扰其他部分,所以,建议你把它放在旁边。

4. 选中XMLConnector组件,打开属性窗口,单击参数表,设置下面的值:
    o 组件<实例名称 designtimesp=28400>:xcTrips
    o URL:data/trips.xml
    o Direction:receive
保留其它属性值为默认:
    o ignoreWhite: true
    o multipleSimultaneousAllowed: true
    o suppressInvalidCalls: false

注意:通常设置ignoreWhite:true,在读XML时忽略空白,当你不知道源XML是否包含可读空白时,使用其它的两个设置,它们与通过组件发送的XML数据有关,本文不涉及。

5. 加一个触发器数据源行为到代码层的第一帧,用来触发XMLConnector组件装入数据:
    a) 选择代码层的第一帧。
    b) 打开 行为 面板。
    c) 按 (+) 按钮添加一个新行为。
    d) 选择 数据 > 触发器数据源。
    e) 从 选择数据源组件 对话框中选择xcTrips。
这个行为添加了如下的代码到代码层:

this.xcTrips.trigger();

行为是Flash MX 2004的一个新特性。行为可以添加预写代码到程序中。本例中的行为引发XMLConnector组件(组件名为xcTrips)执行其 trigger()方法,当播放这个单帧程序的第一帧时,从trips.xml文件中装入数据。在该帧的时间轴上可以看到一个小写字母“a”,指示代码已添加到这一帧。

6. 测试程序,验证数据装入过程:
    a) 选择 控制 >测试影片 测试程序。
    b) 选择 调试 > 变量列表 检查程序中的可用变量。
    c) 按Control-F 查找已调用的变量:level0.xcTrips.results
    d) 检查这个变量中的XML数据;注意它与trips.xml 中值的匹配。
7. 导入data/trips.xml作为xcTrips的架构:
    a) 选择xcTrips。
    b) 打开 组件检查器 面板。
    c) 选择 架构 表。
    d) 选择results:XML 属性。
    e) 按位于架构表右上角的“从示例XML文件导入架构”按钮。
    f) 打开/data目录,选择trips.xml,按 打开。

8. 在XMLConnector_step1.fla和data/trips.xml之间切换,比较在xcTrips组件的results:XML属性中的导入的数据架构和在data/trips.xml文件中的XML数据。
对比如下:

XML文件: data/trips.xml 组件检查器面板中xcTrips的架构(从data/trips.xml导入)
在data/trips.xml文件中的整个XML文档被包装进一个单个的trips标签中。 导入架构的根是一个被称为trips的,数据类型为Object的属性(表示为trips:Object)。
XML文档中包含有一系列的均被称为trip 的区域(sections)或节点(nodes)。 trips对象包含一个属性,称为trip,这个属性是一个对象数目不确定的对象数组 (Array)。
每一个trip节点(node)有一个被称为name的属性,其中还有4个嵌套的节点:description, cost, tapes, and image。 每一个对象在trip:Array 有5个属性:name, description, cost, tapes, and image。Name 是一个对象的属性(用@表示);3个属性是string数据,2个是integer (数字numeric)数据。

9. 保存对XMLConnector_step1.fla的改变。

四、绑定XML数据到一个ComboBox组件

1. 将XMLConnector_step1.fla另存为XMLConnector_step2.fla
2. 打开组件面板,拖一个ComboBox组件的实例到舞台上code层中,将它放在静态文本“Trip”的下面。
3. 打开这个ComboBox实例的属性面板,设置下面的值:
     实例名:cbTrips
     宽:120

注意:虽然你能在属性面板中设置静态的,默认标签(Label),但不要在这儿这样做,因为XMLConnector组件xcTrips将动态地为这个ComboBox提供标签和数据。

4. 从XMLConnector组件xcTrips中暴露trip对象数组,作为一个可用的绑定:
a) 选择xcTrips.
b) 打开 组件检查器 面板,选择 绑定 表。
c) 单击 (+) 按钮,添加一个新的数据绑定,显示已导入的,先前绑定到xcTrips的XML数据架构。
d) 从 添加绑定 窗口中选择trip对象数组 (称为trip:Array),按 确定。
e) 你现在应该看到xcTrips绑定列表中的results.trips.trip属性作为一个绑定附加到xcTrips。
5. 添加最新暴露的绑定(results.trips.trip)到cbTrips的dataProvider 属性:
a) 在xcTrips的 组件检查器 面板的 绑定 表中,选择results.trips.trip 绑定。
b) 在绑定表下面的绑定属性网格中,设置direction属性为out。
c) 选择bound to 属性,按 放大镜工具 按钮。
d) 在 绑定到 对话框中,如下设置:
       组件路径:ComboBox
       架构位置:dataProvider : Array

数据绑定是由Flash自动维持的,两个部件间的数据连接。一个绑定可以是单向的,也可以是双向的。在本例中,你已经建立了从xcTrips:results.trips.trip(out)到cbTrips:dataProvider(in)单向绑定。因为ComboBox的行中只能显示作为标签的字串,所以你必须指定来自trip:Array的哪个值是标签。

五、用XML数据创建ComboBox标签

格式化从xcTrips输入的数据,cbTrips知道怎样从输入数组的每个对象中,显示name属性,作为label属性,显示在它自己的每一行中:
1. 选择cbTrips。
2. 打开 组件检查器 的面板的绑定表。
3. 选择dataProvider绑定。
4. 设置绑定方向为in,因为它是来自xcTrips:results:trips:trip的入站数据。
5. 设置用于这个绑定的formatter(格式化)属性为Rearrange Fields.。
6. 选择formatter options(格式化选项)属性,按放大镜按钮,打开 重新排列字段 对话框。
7. 设置 字段定义 为:label=name,单击 确定。

你已经暴露了复杂数据——一个对象数组,其中,每一个对象有来自xcTrips 组件的5个属性(你可以类推到一个每行有5列的表中的数据结构)。但是,因为ComboBox对每一行只能暴露一个作为标签的值,你必须指定哪些属性用于标签的值。尽管我们在这儿不这样做,在标签中连接多值为一个单个的字串也是可以的。

8. 选择 控制 > 测试电影 测试程序。从xcTrips输出的来自trip:Array中每一个对象的name值,现在应该作为标签在cbTrips的行中显示出来。

9. 保存对XMLConnector_step2.fla的改变。

六、在一个TextArea组件中显示和更新一个Trip介绍

1. 将XMLConnector_step2.fla另存为XMLConnector_step3.fla
2. 打开 组件 面板,拖一个TextArea组件实例放到舞台上,把它移到静态文本“Description”的下方。
3. 打开这个新TextArea实例的属性面板,设置下面的值:
  o 组件的<实例名称 designtimesp=28518>:taDescription
  o 宽:275
  o 高:75
  o Editabl:false

注意:虽然你能对一个TextArea组件设置默认文本(甚至HTML格式的文本),但不要在这儿这样做,因为XMLConnector组件xcTrips将动态地为这个TextArea组件。

4. 从xcTrips 组件的trip:Array中暴露description属性。作为一个有效的绑定:
a) 选择xcTrips。
b) 打开 组件检查器 面板,选择 绑定 表。
c) 按 (+) 按钮增加一个新的数据绑定,显示先前你已经导入并绑定到xcTrips XML数据架构。
d) 从架构中选择trip对象数组 (称为trip:Array)的description属性,单击 确定。
e) 你现在应该看到xcTrips 的results.trips.trip.[n].description属性已经作为xcTrips的一个可用绑定列出。
5. 附加最新设置的绑定到TextArea组件taDescription的text属性:
a) 选择xcTrips组件,从组件检查器面板的绑定表中选择results.trips.trip.[n].description绑定。
b) 在绑定表下面的绑定属性格中,设置direction为“out”。
c) 选择bound to属性,单击放大镜按钮。
d) 在 绑定到 对话框中,做如下设置:
   组件路径:TextArea
   架构位置text : String
e) 按 确定。
6. 选择 控制 > 测试电影 测试程序。注意第一个旅行项目的简介现在已经显示在TextArea组件taDescription中。如果你在cbTrips中选择其它的旅行项目, taDescription中显示的简介还不会随之更新。

7. 为了使得在taDescription中显示的简介随在cbTrips选择的行变化,用cbTrips的selectedIndex属性从xcTrips的trip对象数组中选出相应的简介。因为当绑定的值改变时,数据绑定动态地更新,所以当旅行项目名称改变时,其简介也将更新:
a) 选择xcTrips组件。
b) 打开 组件检查器 面板,选择 绑定表。
c) 选择results.trips.trip.[n].description绑定。
d) 选择Index for 'trip' 属性,按放大镜按钮。
e) 在 绑定索引 对话框中,取消“使用常数值”复选框,做如下设置:
   Component Path: cbTrips ComboBox
   Schema Location: selectedIndex : Number

注意:如果你在这一点测试程序,简介将未定义的,直到你改变cbTrips 属性一次,简介才会象我们期望的那样更新。你下面将设置一个默认值来确保,当程序第一次装入时,数据绑定到taDescription。

8. 设置cbTrips的selectedIndex属性的默认值为0,使得当程序第一次装入时,这个值对驱动taDescription的数据绑定有效:
a) 选择cbTrips组件。
b) 打开 组件检查器 面板,选择 架构 表。
c) 选择selectedIndex:Number属性。
d) 在属性格中设置default value为0。
e) 选择 控制 > 测试电影 测试程序。当电影装入时,你应该看见旅行“Napa”,并且它的简介为“The incredible variety of Napa …”。当你改变旅行项目名称时简介将自动更新。
f) 保存XMLConnector_step3.fla

七、在TextInput组件中显示并更新格式化的价格

1. 将XMLConnector_step3.fla另存为XMLConnector_step4.fla
2. 打开 组件 面板。拖一个TextInput组件的实例到舞台上,并将它移到静态文本“Cost”的下面。
3. 打开这个新TextArea实例的 属性 面板,做如下设置:
  o 组件的<实例名称 designtimesp=28578>:tiCost
  o Width: 135
  o Editable: false

注意:尽管你能够设置TextInput组件的默认文本(text),在这儿不要这样做,因为XMLConnector组件xcTrips将动态地提供这些值,并且用户将用ComboBox组件cbTrips改变它们。

4. 从xcTrips的trip:Array中暴露cost属性,作为一个可用的绑定:
a) 选择xcTrips。
b) 打开 组件检查器 面板,选择 绑定 表。
c) 单击 (+) 按钮添加一个新的数据绑定,暴露已导入的预先绑定到xcTrips 的XML数据架构。
d) 你现在应该看到xcTrips的results.trips.trip.[n].cost属性作为xcTrips的可用绑定列出。
5. 添加新设置的绑定到TextInput组件tiCost的text属性:
a) 从xcTrips的 组件检查器 面板的绑定表中选择results.trips.trip.[n].cost绑定。
b) 在绑定表下面的绑定属性中设置direction 属性为“out”。
c) 选择bound to属性,单击放大镜按钮。
d) 在 绑定到 对话框中设置:
   组件路径:TextInput
   架构位置:text : String
e) 单击 确定。
6. 选择 控制 > 测试电影 测试测试程序。注意,第一条旅行项目的价格已经显示在tiCost组件中。但是,当你选择其它旅行项目时,价格没相应地更新。同时价格的显示也没有格式化。
7. 用cbTrips的selectedIndex属性,根据当前选择的行,来决定显示在tiCost 中的价格。因为当绑定值改变的时候,数据绑定会动态地更新,所以,价格将会随着旅行项目的不同而变化:
a) 选择xcTrips。
b) 打开 组件检查器 面板,选择 绑定 表。
c) 选择results.trips.trip.[n].cost绑定。
d) 选择Index for 'trip' 属性,单击放大镜按钮。
e) 在 绑定索引 对话框中,取消“使用常数值”复选框,做如下设置:
   Component Path: cbTrips ComboBox
   Schema Location: selectedIndex : Number

注意:在上个步骤的这一点,为cbTrips的selectedIndex属性设置了一个默认值0,为了确认当程序首次装入时数据绑定发生了,可以用选择cbTrips的索引来检查。但你不需要在这儿重复,因为对于绑定到cbTrips的所有组件都有效。

8. 格式化tiCost中的货币数据为美圆:
a) 选择tiCost。
b) 打开 组件检查器 面板,选择 绑定 表。
c) 选择formatter属性为“Compose String”。
d) 选择formatter options,按放大镜按钮。
e) 在 构成字符串 对话框中,设置下面的值:$<.>.00
f) 单击 确定。

注意:在使用格式时,将动态值放在尖括号中。如果指定的字段收到的是复杂的数据,在括号中使用属性名。如果指定的字段收到的是简单的数据,例如串或者数字,就像本例的情况,在括号中用一个点“.”来代表实际收到的值。然后在动态值的两旁,按你的希望排列字串的其余的部分(就像你在上面所做的那样)。

注意:Flash MX Professional 2004有工具和方法来支持本地化的数据格式化。但是那已超出了本文的内容。

9. 选择 控制 > 测试电影 测试程序。你应该看到了旅行项目“Napa”,以及它的简介和它的价格,价格已被格式化为“$1095.00”。当你改变旅行项目时,价格和简介都会相应地更新。
10. 保存XMLConnector_step4.fla

八、在Loader组件中显示和更新图象

1. 将XMLConnector_step4.fla另存为XMLConnector_step5.fla
2. 打开 组件 面板,拖一个Loader组件到舞台上,把它移到静态文本“Bike Trip Central”的下面,其它组件的上面。
3. 打开新Loader组件实例的 属性面板做如下设置:
  o 组件的<实例名称 designtimesp=28638>:loImage
  o Width: 297
  o Height: 85
  o X: 2

注意:While尽管你能够设置Loader组件的默认路径(contentPath),在这儿不要这样做,因为XMLConnector组件xcTrips将动态地提供路径,并且用户将用ComboBox组件cbTrips改变路径。因为你已经设置了ComboBox默认的选择索引为0,当电影首次装入时,数据将绑定到ComboBox的第一项,图象napa.jpg 将会显示。

4. 从xcTrips的trip:Array中暴露image属性,作为可用绑定:
a) 选择xcTrips。
b) 打开 组检查器 面板,选择 绑定 表。
c) 单击 (+) 按钮添加一个新的数据绑定,暴露已导入的,你先前绑定到xcTrips的 XML数据架构。
d) 从架构的trip数组对象(称为trip:Array) 中,选择image属性,单击 确定。
e) 你现在应该看见xcTrips的results.trips.trip.[n].image属性已作为可用绑定列出。
5. 添加最新暴露的绑定到Loader组件loImage的contentPath属性:
a) 从xcTrips的组件检查器面板的绑定表中,选择results.trips.trip.[n].image绑定。
b) 在下面的绑定属性格中,设置direction为“out”。
c) 选择bound to属性,按放大镜按钮。
d) 在 绑定到 对话框中,做如下设置:
   组件路径:Loader
   架构位置:contentPath : String
6. 选择 控制 > 测试电影 测试应用程序。注意,对应第一个旅行项目的图象napa.jpg现在已经显示在Loader组件loImage中了。但是,如果你选择不同的cbTrips值,图形并不更新。
7. 再次,使用cbTrips的selectedIndex属性,使得能用当前选择的行,触发相应的图象显示在loImage中。 use the selectedIndex property of the cbTrips ComboBox component to make the currently selected row trigger the correct image to display in the loImage Loader component. 从xcTrips的绑定到Loader组件的trip对象数组中,使用selectedIndex属性来动态地决定恰当的image属性。因为当绑定值改变的时候,数据绑定动态地更新。所以,当旅行名称改变的时候,图象也将相应地更新:
a) 选择xcTrips。
b) 打开 组件检查器 面板,选择 绑定 表。
c) 选择results.trips.trip.[n].image绑定。
d) 选择Index for 'trip'属性,按放大镜按钮。
e) 在 绑定索引 对话框中,取消“使用常数值”复选框,做如下设置:
   组件路径:cbTrips ComboBox
   架构位置:selectedIndex : Number

注意:再次,因为你先前设置了一个cbTrips的selectedIndex属性默认值0,当程序第一次装入时数据将绑定,就象用户已经选择ComboBox的索引一样。所以,对于cbTrips的所有的数据绑定都将在程序装入时发生,包括这里对Loader组件的新绑定。
8. 选择 控制 > 测试电影 测试程序。当程序装入时,你应该看到旅行“Napa”了,它的简介,它的格式化的价格和图象。当你改变旅行的名称时,价格,简介和图象都将自动地更新。

9. 保存XMLConnector_step5.fla

摘要

在这篇文章中,你已经看到了Flash MX Professional 2004的一系列新特性,最重要的是,XMLConnector组件和动态数据绑定。接下来是你已经使用了组件检查器面板组件架构(包括用于XMLConnector组件的自定义架构导入),还有用于一些复杂数据类型的测试,例如,数组和对象。还有其它许多。

Flash MX Professional 2004做了一个很好的平衡,它将成为主流的富Web应用开发平台。这才仅仅是开始,是否它的开发者能共同抓住这个机会。如果这个教程让你感到兴奋,访问http://www.macromedia.com/support/training/ ,并且找出所有有机会学习的讲师课程。

相关的文章和资源

再次声明,这篇文章是从下面的Macromedia Authorized Training课程中摘录的:

Macromedia Authorized Training: Flash MX 2004: Application Development
Sign up for this course now >

一些相关的对Flash MX Professional 2004有兴趣的开发者中心用户,他们正在将数据集成到应用程序中,包括:

Data Binding in Macromedia Flash MX Professional 2004
by Aral Balkan

Choosing Between XML, Web Services, and Remoting for Rich Internet Applications
by Steven Webster

Building a Tip of the Day Application (Part 2): Working with Web Services
(WebServiceConnector component)
by Jen deHaan

Time Entry Application: Sample Workflow for Designing and Building Applications in Flash MX Professional 2004
by Paul Gubbay

夜上海

2004年10月25日 上午 9:09 | 发布在:
分类:B.用照片记录生活--photo | 已有299人阅读

0

铁笼内外 

命令行方式使用FTP实战练习-blueidea

2004年10月18日 上午 10:10 | 发布在:
分类:G.乱七八糟的事儿--other | 已有193人阅读

0

简单上传下载实例(/*….*/为注释):

先假设有一FTP服务器,FTP服务器:qint.ithot.net,用户名:username   密码:user1234。在本地电脑D:盘创建一个文件夹"qint"。将要上传的文件复制到d:\qint里。通过FTP命令将文件从本地上传,从服务器下载的步骤如下:

1.“开始”-“运行”-输入“FTP”

2.open qint.ithot.net
/*这一步可以与第一步合并,在“运行”里直接输入"ftp qint.ithot.net"。如果你的FTP服务器不是用的21默认端口,假如端口是2121,那么此步的命令应在后面空格加2121,即“open qint.ithot.net 2121”*/

3.username
/*提示你输入用户名*/

4.user1234
/*提示你输入密码,密码不回显,打完密码后回车即可。如果你的密码输入错误,将不会提示你重新输入,这时你要键入“user”命令,将会出现第三步,你可以重新输入用户名和密码。*/

5.dir
/*你成功登陆后就可以用dir查看命令查看FTP服务器中的文件及目录,用ls命令只可以查看文件。*/

6.mkdir qint
/*在FTP服务器上根目录下建立qint目录。*/

7.cd qint
/*进入目录qint,用“cd 你的目录名”可以进入当前目录的下一级目录,这跟DOS一样。*/

8.bin
/*采用二进制传输。如果你要上传下载,这一步很重要,不先执行这个命令,上传下载会很慢。*/

9.lcd d:\qint
/*定位本地默认文件夹,在前面我事先在D:盘创建的。*/

10.!dir
/*查看本地文件夹中的文件及目录*/

11.put i001.jpg
/*将当前目录(d:\qint)中的文件i001.jpg上传到FTP服务器默认目录。可以用"mput *.*"将所有文件上传到FTP服务器上。*/

12.get d123.jpg
/*将FTP服务器默认目录中的文件d123.jpg下载到当前目录下(d:\qint)。可以用"mget *.*"将所有文件下载到d:\qint*/

13.delete *.*
/*删除目录qint中的所有文件。*/

14.cd ..
/*返回至上一级目录,即根目录。返回上一级目录用“cd ..”要注意,中间有空格。返回根目录用“cd \”。*/

15.mrdir qint
/*删除目录qint。删除目录,在此目录下不能有文件及目录,不然将无法删除。*/

16.bye
/*退出FTP服务器*/

上传下载时特别要注意服务器及本地电脑的当前目录,文件是从哪里到哪里的问题。查看FTP服务器的当前目录命令为pwd,可以用cd命令定位服务器的目录。可以用lcd命令定位本地电脑的目录。以上实例应用到了采用FTP命令行方式上传下载的最常用命令,你还可以用命令“?”查看更多的命令。

Advertise Here