地圖flash源碼
1. 用Flash製作一個地圖
1、Ctrl+R圖片導入舞台,將文檔屬性大小匹配為內容,新建一層「按鈕層」,用刷子隨便塗塗,塗完一個就轉換為元件,做完十個按鈕,把按鈕轉換為透明,實例名為:btn1,btn2。。。
2、Ctrl+F8插入一MC,Ctrl+L打開庫:將圖片拖入該MC中;Ctrl+K,調出對齊:相對於舞台,水平中、垂直中。選中MC第25幀,F6插入關鍵幀,選中第25幀的圖片將寬高固定,按Q鍵,調到任意變形工具,將寬改為3倍。然後創建補間動畫。
3、在MC新建一代碼層,在第25幀位置插入關鍵幀,寫入代碼:stop(); 選中這兩層的幀,復制1-25幀,往後粘貼幀,一直粘9次。選擇圖的那層,在25N倍幀的位置上,調整圖,將各市放在舞台中間。
4、在MC代碼層中25倍+1幀位置上給該幀寫個名稱」榆林「,」延安「。。。
5、回到主場景,新建一層,將MC拖到舞台,實例名為mc1,相對舞台:水中,垂中。然後將第一層中的圖片轉換為元件MC,實例名為mc2。
6、將mc1所在層拖到最底層,然後新建一層代碼層,寫入下面代碼:
onEnterFrame = function () {
_root.createTextField("mytxt", 0, 0, 0, 0, 0);
mytxt.autoSize = true;
var myformat = new TextFormat();
myformat.font = "宋體";
myformat.size = 18;
myformat.color = 0xff0000;
myformat.bold = true;
mytxt.text = "按住滑鼠點擊所在區域可放大地圖,並可拖曳地圖,松開滑鼠地圖還原。";
mytxt.setTextFormat(myformat);
};
//以上是文本框,用來說明
btn1.onPress = function() {
mc2._alpha = 0;
mc1._alpha = 100;
mc1.gotoAndPlay("榆林");
startDrag("mc1");
};
btn2.onPress = function() {
mc2._alpha = 0;
mc1._alpha = 100;
mc1.gotoAndPlay("延安");
startDrag("mc1");
};
btn3.onPress = function() {
mc2._alpha = 0;
mc1._alpha = 100;
mc1.gotoAndPlay("銅川");
startDrag("mc1");
};
btn4.onPress = function() {
mc2._alpha = 0;
mc1._alpha = 100;
mc1.gotoAndPlay("渭南");
startDrag("mc1");
};
btn5.onPress = function() {
mc2._alpha = 0;
mc1._alpha = 100;
mc1.gotoAndPlay("咸陽");
startDrag("mc1");
};
btn6.onPress = function() {
mc2._alpha = 0;
mc1._alpha = 100;
mc1.gotoAndPlay("寶雞");
startDrag("mc1");
};
btn7.onPress = function() {
mc2._alpha = 0;
mc1._alpha = 100;
mc1.gotoAndPlay("西安");
startDrag("mc1");
};
btn8.onPress = function() {
mc2._alpha = 0;
mc1._alpha = 100;
mc1.gotoAndPlay("商洛");
startDrag("mc1");
};
btn9.onPress = function() {
mc2._alpha = 0;
mc1._alpha = 100;
mc1.gotoAndPlay("漢中");
startDrag("mc1");
};
btn10.onPress = function() {
mc2._alpha = 0;
mc1._alpha = 100;
mc1.gotoAndPlay("安康");
startDrag("mc1");
};
btn1.onRelease = function() {
mc2._alpha = 100;
mc1._alpha = 0;
stopDrag();
};
btn2.onRelease = function() {
mc2._alpha = 100;
mc1._alpha = 0;
stopDrag();
};
btn3.onRelease = function() {
mc2._alpha = 100;
mc1._alpha = 0;
stopDrag();
};
btn4.onRelease = function() {
mc2._alpha = 100;
mc1._alpha = 0;
stopDrag();
};
btn5.onRelease = function() {
mc2._alpha = 100;
mc1._alpha = 0;
stopDrag();
};
btn6.onRelease = function() {
mc2._alpha = 100;
mc1._alpha = 0;
stopDrag();
};
btn7.onRelease = function() {
mc2._alpha = 100;
mc1._alpha = 0;
stopDrag();
};
btn8.onRelease = function() {
mc2._alpha = 100;
mc1._alpha = 0;
stopDrag();
};
btn9.onRelease = function() {
mc2._alpha = 100;
mc1._alpha = 0;
stopDrag();
};
btn10.onRelease = function() {
mc2._alpha = 100;
mc1._alpha = 0;
stopDrag();
};
要源文件網盤里找下,自己下。
提取肯定要用到:tt.load(...)
然後估計會用到數組: aa Array=new Array();
最後顯示用文本框:cc.text= ...
2. 運用Flash as3做中國省份地圖的拼圖游戲源代碼。按照代碼,只有幾個省份可匹配,其他的可移動但無法拼上
upHandle里的if(hitTestpixel... 這行改成
var bg_mc:MovieClip=this.getChildByName("t"+index+"bg_mc) as MovieClip;
if(bg_mc.hitTestPoint(mouseX,mouseY,true))
試試,你的問題是碰撞檢測沒有檢測到,AS3裡面沒有hitTestPixel這個方法,如果是你自己寫的話那就是這個方法里的問題了
3. flash點子地圖代碼
這個較容易,公司較少的話用TXT就可以了 flash裡面load進去 具體查看loadvars
TXT裡面這樣寫 province1=北京&company1=xx公司&company2=yy公司
就是變數加值就行了,注意格式
稍多點的話用XML或MYSQL 代碼較長 不寫了 ^-^