| 谈到全FLASH网站的制作,对这块感兴趣的FLASH爱好者,就非常来兴趣,真想亲手做一个属于自己的纯FLASH站点,那么,今天趁这夜难眠的晚上,给大家说说具体应该怎么去做一个全FLASH网站?制作的流程或者需要哪些基本的AS编程常识,来给大家剖析一下如何制作全FLASH网站:
一,全FLASH网站制作概述: 全FLASH网站的制作完成主要分为两大部分,一就是网站界面的设计,二就是网站FLASH程序的开发。
至于网站界面的设计,我想这里就不需要详细介绍了,毕竟纯FLASH的元素摆弄是非常自由的,不像传统的网页,需要CSS或者表格,甚至是DIV+CSS这么复杂的代码。而FLASH程序的开,则需要讲一下具体的流程和必要的代码,只要你稍懂些AS程序的人都能够解决。
二,全FLASH网站程序开发流程:
1, 首先我们先看一张网站的构架图 
2,其实仔细看了这张图我们就知道,其实全FLASH网站是由多个FLASH文件组成,这样的好处就是可以缓解其下载速度慢的问题,但再怎么加载,始终网站中存在着一个FLASH的文件,那就是最底层的,类似装东西的瓶子,里面的东西可以有进有出,而瓶子始终存在着。就拿前两天刚开发的一个全FLASH网站来讲吧 http://www.colorji.cn
首先,们要解决下载的问题,谈到下载当然,首先是要制作进度条,进度条代码具体写法各异,但是选择一种自己喜欢的表现形式,那更为重要,具体代码如下: 在主场景的第一帧: function onEnterFrame() { //因为所有代码是写在第一帧的,所以需要循环
var l = _root.getBytesLoaded();
var t = _root.getBytesTotal();
var p = int(l/t*100);
if (p == 100) {
gotoAndStop(2); //如果下载完了,当前帧跳到第二帧,并停止
delete onEnterFrame; //删除循环
} else {
stop; //如果没有下载完,则继续下载,并停止在第一帧
setProperty(mc,_xscale,p) //舞台一个细长的广块,实例名为mc
}
}
上面的代码,基本上精简了大部分loading进度下载的代码。在任何场合都可以使用(不包括加载外部swf) 那么,我们知道,就目前的IE对FLASH的限制,也就是非要你点一下FLASH,才能激活正常状态,这个是非常让人讨厌的家伙,那么我们应该去掉它。办法就是加载外部一个JS文件,具体JS文件可以在这里下载: http://www.feel8.net/flash.js ,接下来只要你,在HTML页面中插入相关代码,即可以进行激活具体HTM代码什么样,可以查看其 www.colorji.cn 这个页面的源代码,直接复制,并改其FLASH的路径即可以。
还有就是我们经常看到全FLASH站点上面有些元素,始终会自适应当前的IE浏览器,效果非常的酷,类似 www.colorji.cn 右侧的作品导航效果,它是始终占据IE浏览器的右边框。那么这个肯定会有很多想知道这个效果是使用什么代码实现的呢?其实很简单:
function onResize() {
//这里为添加你指定MC的位置即可
}
onResize();
Stage.addListener(this);
比如,我们想让舞台上的一个MC始终占据舞台中间,那么就应该在function onResize (){ 下面写这么一段代码: mc._x=Math.round(Stage.width/2-mc._width/2) 这样一来,这个mc就始终在左右方向始占据舞台的中间,那么上下的代码道理是一样。
其次,我们就应该制作这个容器了。容器,其实很简单,就是轮流加载外部多个swf文件到当前一个MC里,这个MC就是一个容器。原理就是当加了外部一个swf文件到这个MC里时,当前所展示的内容就是被加载的swf 的内容,如果再点击另一个按钮触发再次加载外部另一个swf 文件进来时,当然会自动替换其之前一次被加载的swf 文件,这样就实现了轮流坐桩,在这里我们不鼓励使用loadMovie来加载外部swf ,这样很难控制其被加载进来的SWF 属性。那么加载外的swf文件到当前舞台上的一个MC里,这个代码应该如何写呢?
//--------------------------------------------------------------------------------------------------
loadinglogo._visible = false; // loadinglogo为显示进度条的广块MC
showtext._visible = false; //showtext 为显示下载百分比文本实例名
MyLoader = new MovieClipLoader();
MyListener = new Object();
MyListener.onLoadProgress = function(tt, loadedBytes, totalBytes) {
if (tt._totalframes>=1) { //防止刚加载进来的swf还没加载完就开始播放
tt.stop();
}
loadinglogo._visible = true;
showtext._visible = true;
var x = loadedBytes;
var y = totalBytes;
p = Math.floor(x/y*100);
showtext.text=p+"%"
};
MyListener.onLoadInit = function(tt) { //当加载外部swf文件完成后,执行下面的动作
tt.play();
loadinglogo._visible = false;
showtext._visible = false;
};
MyLoader.addListener(MyListener);
_global.pathswf = function(t, p4) {
MyLoader.loadClip(t, p4);
};
//_global.pathswf("a.swf") //这里非常重要,定义一个全局变量,来指定加载的路径,比如外部的a.swf,这里的p4定义为当前场景中的MC,即容器。
而以后调用的方法就是:
_global.pathswf("a.swf",容器的实例名)
我相信,只要你坚持学习,只要你爱好FLASH,我想FLASH网站制作的前景是非常看好的,当你成功的那天,千万别忘了,有感觉吧一直在支持着你哦!
|