加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

一種更符合工程學標準的Flash項目文件結構

发布时间:2020-12-15 07:12:12 所属栏目:百科 来源:网络整理
导读:通常在創建Flash項目時,我們習慣於將所有的文件都與fla文件放在同一個路徑下,這是由於默認情況下,Flash構建swf咝袝r對於其他依賴文件的搜索都是從當下路徑開始。不過這不是一個科學的方法。現在是時候修改下了。 預設定: 創建一個project文件夾,用來作

通常在創建Flash項目時,我們習慣於將所有的文件都與fla文件放在同一個路徑下,這是由於默認情況下,Flash構建swf咝袝r對於其他依賴文件的搜索都是從當下路徑開始。不過這不是一個科學的方法。現在是時候修改下了。


預設定:

創建一個project文件夾,用來作為項目根目錄。


在其下,用Flash Pro創建我的fla文件,一個新程序總是從這裡開始,然後在相同路徑下再創建一個src文件夾和bin文件夾,這兩個名字是參考了.NET和Java的IDE中對項目文件夾的命名:src擺放源代碼;bin用來擺放生成的執行文件。如圖:

project-directory



現在需要在fla文件中做一些設定,來使用另外兩個文件夾,首先去到File->Actionscript Settings,在彈出的菜單里選Source Path,然後添加一個路徑:./src,如圖:

add-path-to-source-path



這樣做之後,Flash Pro在咝衒la文件生成swf時,首先會在當下路徑下尋找所需要的.as文件,如果沒有找到,會繼續在/src下尋找。


現在去到File->Publish Setting,在彈出的介面里,在Output File里,輸入新的路徑:./bin/name.swf,當然這個操作也可以通過右手邊的按鈕來做,如圖:

publish-setting



使用:

剛剛已經在fla文件里給其指定了一個文檔類,為main。現在來創建這個main.as,創建的過程和內容都與之前的做法相同,只是在保存的時候把它保存在src路徑下,而不再是與fla同路徑,內容為:

package  
{
	import flash.display.MovieClip;
	
	public class main extends MovieClip
	{

		public function main() 
		{
			trace("constructing...");
		}

	}
	
}


好了,現在在Flash Pro里測試咝羞@個項目,在output窗口里會見到:

constructing...


同時bin路徑下出現生成的swf文件:

files-under-bin



現在假設我們需要一個自定義的加載類,來加載放在外部XML文件中的數據,我們需要如何在這種結構下完成。


創建路徑./src/com/idsquare/vince/ikeleido/model/loader,并在這個路徑下創建一個ConfigLoader.as,其內容為一個加載XML的類。同時在bin下創建一個xml文件夾,在其中放置一個xml文件。


ConfigLoader.as:

package com.idsquare.vince.ikeleido.model.loader 
{
	import flash.events.EventDispatcher;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	import flash.events.Event;
	
	public class ConfigLoader extends EventDispatcher
	{
		private var _xmlLoader:URLLoader;
		
		public function ConfigLoader() 
		{
			
		}
		
		
		
		public function load() 
		{
			var $req:URLRequest = new URLRequest("xml/config.xml");
			this._xmlLoader = new URLLoader();
			this._xmlLoader.addEventListener(Event.COMPLETE,this.confLoadedHandler);
			this._xmlLoader.load($req);
		}
		
		
		/* handlers */
		private function confLoadedHandler($e:Event):void
		{
			try{
				var $xml:XML = new XML($e.target.data);
			}
			catch($er:Error){}
			
			trace($xml.skin);
		}

	}
	
}


修改main.as為:

package  
{
	import flash.display.MovieClip;
	import flash.events.Event;
	
	import com.idsquare.vince.ikeleido.model.loader.ConfigLoader;
	
	public class main extends MovieClip
	{
		private var _ldr:ConfigLoader = new ConfigLoader();
		
		public function main() 
		{
			this.addEventListener(Event.ADDED_TO_STAGE,this.addedToStageHandler);
		}
		
		
				
		/* handlers */
		private function addedToStageHandler($e:Event):void
		{
			this._ldr.load();
		}

	}
	
}


config.xml為:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<options>
	<skin>default</skin>
</options>


測試文件,output窗口輸出為default。可見,加載外部文件時(比如XML),Flash是以swf所在的路徑為當前路徑的,所以只要是相對於/bin路徑的文件,不需要做特別的修改。


使用項目工具

Flash Pro自帶一個不算很厲害的項目文件管理的功能。去到Window->Project,在彈出的project介面中,尋找到Open Project按鈕:

project-create-new



在彈出的瀏覽窗口里定位到剛剛創建的項目的文件夾,按照此文上面的例子,即project文件夾。然後在下面的介面中輸入相應的信息,這些信息通常要自定,默認項目名是文件夾名,所以有些時候不太適合。

new-project



因為剛剛已經創建了fla文件了,所以不需要勾選create default document。點創建之後,會發現在project文件夾下多了一些東西:

new-project-files



通常你不會需要那個新建立的fla文件,可以自行刪去。最終我們到達這個效果:

finish



這樣做有何好處,因為這個介面提供基本的打開、創建、刪除等操作,所以主要是這個樹形檢視圖可以方便你操作項目內的文件,下面也有一個按鈕可以執行咝衒la的動作,在不需要打開這個fla的情況下。另外的好處是創建新的類時,域名空間(或稱為包,package)會被自動加進去,不過有些地方要注意,假如要在/model/loader/包下創建一個新:

create-new-class



按這個按鈕之後:

new-class-config



在這個情況下,新的類並不是一個displayobject,它根本不需要跟庫中的某個MC關聯,所以不需要勾選圖中的Bind class to library symbol。


但是,注意,在Class那一欄,這一欄的內容是class的完整有效名,即是包括所屬的package的名字,可是默認情況下這裡總是以src開頭的,但這並不是我們希望的,可是這個時候最好不要刪掉,而是這樣點擊Create Class,然後在文件里手動刪掉package聲明的src部份。原因是,如果此時刪掉src,Flash Pro會在根目錄下為你創建com文件夾以及其子文件夾來映射這個新的類。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读