這是我在某論壇看到的一個網站
http://www.casper.com.tw/
這個網站裡的一個特效~就是按每個選項~
然後內容就以<亂碼轉換成文字>呈現~
這個特效如何製作出來的呢??
還是它根本不是用actionscript做的~
而是另有方法??
希望可以教教我^^謝謝!!
我真的超想學會這個!!
2007-08-23 15:55:24 · 1 個解答 · 發問者 P5PL2 2 in 電腦與網際網路 ➔ 程式設計
可是我照做了~
卻沒見到那種效果!!
可說再詳細一點好嗎??
謝謝!!
2007-08-27 05:59:38 · update #1
阿~我做出來了~謝謝!!
2007-08-27 06:24:04 · update #2
1. 開個 Flash 新檔,AS 2.0的
2. Ctrl+F8 加個 Movie Clip,名字隨便取,以下用預設的 Symbol 1
3. 編輯 Symbol 1,用 Text Tool(T) 打行字,我打 "Starbucks"
4. 點一下剛剛打的字,切換到 Properties (Ctrl+F3),在 T 的旁邊給變數附名為 title_txt 其他保留不變,記得把字的顏色調成黑色。並且寬度建議調成 451
5. 按一下 Scene 1 回到場景。到 Library (Ctrl+L) 拖拉剛剛的 Symbol 1 到舞台上。點一下那個 Symbol 1 的實體,切換到 Properties (Ctrl+F3),在選單下面的輸入框給它附名為 _mc0
6. 在時間線加一層 Insert→Timeline→Layer,點一下新的那層的影格,切換到 Action (F9),貼入以下代碼:
stop();
MovieClip.prototype.setData = function (str)
{
this._str = str;
this.str_len = str.length;
this.ani_duration = this.str_len;
this.ani_time = 0;
this.onEnterFrame = function ()
{
this.tmp_str = "";
if (this.ani_duration - this.ani_time < this.str_len)
{
this.tmp_str = this.tmp_str + this._str.substr(0, this.str_len - (this.ani_duration - this.ani_time));
for (var _loc2 = 0; _loc2 < this.ani_duration - this.ani_time; ++_loc2)
{
this.tmp_str = this.tmp_str + String.fromCharCode(random(64) + 33);
} // end of for
}
else
{
for (var _loc2 = 0; _loc2 < this.str_len; ++_loc2)
{
this.tmp_str = this.tmp_str + String.fromCharCode(random(64) + 33);
} // end of for
} // end else if
this.title_txt.text = this.tmp_str;
if (this.ani_time++ > this.ani_duration)
{
this.onEnterFrame = null;
} // end if
};
};
var button_num = 1;
var _array = new Array();
_array[0] = {nor: "Harry Potter 7: Deadly Hallows", roll: "Harry Potter 7: Deadly Hallows"};
var i = 0;
while (i < button_num)
{
var _mc = this["_mc" + i];
_mc._id = i;
_mc.setData(_array[i].nor);
++i;
} // end while
7. 存檔測試。
妳的範例網站給的每一行是Symbol 1構成的一層。要改的地方是:
1. 每一層都要附名為 _mcX 例如第一層 _mc0 第二層 _mc1 依此類推。
2. var button_num 後面要給共幾層
3. 要給 _array[X] 加行擴充,依照上面的格式。
2007-08-26 12:12:12 · answer #1 · answered by mh 7 · 0⤊ 0⤋