在FlashBuilder里的ActionScript工程中使用Flash CS5中的類
1、用Flash CS5打開User Interface.fla文件
我的路徑:C:\Program Files (x86)\Adobe\Adobe Flash CS5\Common\Configuration\Components\User Interface.fla
你可以參考我的路徑找到User Interface.fla這個文件在你機器上的位置。
2、找到Flash CS5的菜單,文件->發布設置->在彈出的窗口上選擇Flash選項卡
然后在SWF設置中,將導出SWC打上勾
3、點擊發布按鈕,發布SWC,發布的文件和User Interface.fla在同一個目錄。
4、將User Interface.SWC文件拷貝到你的ActionScript工程,然后引用這個SWC。
5、完畢,現在在你的ActionScript中就可以導入類似import fl.controls.CheckBox;這樣的控件並使用了。
============================================================================================
之前flash cs3版本導出元件為swc到flex時要下載一個插件,現在最新版的flash cs5已經不用了。步驟:
1、直接選擇庫中的元件,主菜單——命令——將元件轉換為flex組件。
2、轉換成功后設置一下該元件的屬性,為它添加一個鏈接,例如aaa,這時你會發現這個flex元件的基類變成了“mx.flash.UIMovieClip”。
3、然后發布該fla,到時就可以生成swc了,如果庫中有多個轉換好的flex元件則會一起導出在該swc中。
4、在flash builder中設置一下項目屬性,在“flex構建路徑”中添加剛才生成的swc。
5、現在flex中就可以使用該swc了,使用方法為<local:aaa />,記得在命名空間前加上 xmlns:local="*"。
經研究還發現,如果該flex元件還綁定了一個類的話則該導出的flex元件也會擁有該綁定類的方法和屬性。
============================================================================================
怎樣在flash builder中使用flash組件
flex組件庫很豐富,但是flex組件庫有一個很嚴重的問題:執行效率低下。
今天嘗試做一個工具,在TextArea中粘貼1萬行數據,然后對這些數據進行分析、排序。結果發現使用Flex組件時,把剪貼板中的文字粘貼到Flex TextArea組件時,會導致瀏覽器卡住5-10秒的時間。因素來聽說flex組件性能低下,所以又重新在flash cs5中試了一下fl.controls.TextArea組件,結果大吃一驚,進行相同的操作,flash的TextArea組件只會卡住1~2秒鍾左右。接下來,就有了下面的一番在flash builder中使用fl.controls.*組件的經歷。
第一步,為了提升執行效率,不能使用Flex組件庫。我選擇了在flash builder中創建AS3項目。
第二步,為了在flash builder的AS3項目中使用flash的組件,需要導入幾個flash cs5提供的.swc庫文件,從AS3項目中指定從以下幾個目錄中導入庫文件:
1,/Common/Configuration/ActionScript 3.0/libs,導入flash基本庫
2,/Common/Configuration/ActionScript 3.0/FP10,導入Flash Player 10的庫
3,還需要導入fl.controls.*中的組件,但是這些組件是以.fla的形式提供的。需要從flash中把這些組件做成元件,導出為flex能夠使用的.swc庫文件。也可以從此處直接下載兩個庫文件,可以免除一些操作上的麻煩事:Fl_component_ui.rar , Fl_component_video.rar 。
完成以上這些東西后,就可以在flash builder的AS3項目中直接使用flash的組件了。具體的,我們可以建立一個用於顯示信息的視圖類:
package{
import fl.controls.Button;
import fl.controls.TextArea;
import fl.core.UIComponent;
public class ViewFrame extends UIComponent{
private var textArea:TextArea;
private var sortButton:Button;
public function ViewFrame(){
this.width = 800;
this.height = 600;
this.x = 0;
this.y = 0;
this.textArea = new TextArea();
this.textArea.width = 600;
this.textArea.height = 400;
this.textArea.x = 100;
this.textArea.y = 50;
this.sortButton = new Button();
this.sortButton.width = 100;
this.sortButton.height = 50;
this.sortButton.label = "開始排序";
this.sortButton.x = 350;
this.sortButton.y = 475;
this.addChild(this.textArea);
this.addChild(this.sortButton);
trace("this.addChild(this.sortButton);");
}
}
}
然后,再創建一個主文件:
package
{
import fl.controls.Button;
import fl.controls.TextArea;
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
public class Tool extends Sprite
{
public function Tool()
{
this.stage.align = StageAlign.TOP_LEFT;
this.stage.scaleMode = StageScaleMode.NO_SCALE;
var viewFrame:ViewFrame = new ViewFrame();
this.addChild(viewFrame);
}
}
}
以調試模式運行項目,可以看到熟悉的fl.controls包中的組件都可以在flex as3項目中可以像flash中一樣使用cs3的fl.controls.*中的組件庫了。
網站建設工作經常會有一些交互性很強的頁面,我相信,通過在Flash Builder中使用flash組件庫,可以讓您在設計交互性較強的網站時,又多了一把提高效率的利器。
