每天学一点flash(40) 制作走马灯四

来源:互联网 发布:淘宝什么祛痘产品好 编辑:程序博客网 时间:2024/03/29 15:22

在原来的基础上再增加多一个鼠标触发事件,那就是响应点击事件。当我们点击了每一张图片的时候那么我们就可以判断每一张所在连接图片的网址了。代码如下:

package {  import flash.display.MovieClip;

 import flash.display.Sprite;

 import flash.display.Loader;  

import flash.events.*;

 import flash.utils.*;//执行时间间隔的

  import flash.net.*;

  import flash.system.System;

 public class Picture extends MovieClip {

  private var tempMC:mc;   

private var movetime:Timer;  

 private var picArray:Array;//装载多个影片剪辑的  

 private var imgArray:Array;//装载多个loader 对象  

 private var myurl:Array;//装载xml里面的网址  

 private var list:Array;   private var myxml:XML;

  private var mylist:XMLList;   

private var ld:Loader;  

 private var _loader:URLLoader;

  public function Picture() {  

  System.useCodePage=true;

   picArray=new Array();   

 imgArray=new Array();

   myurl=new Array();   

 list=new Array();   

 myxml=new XML();   

 myxml.ignoreWhite = true;

   _loader=new URLLoader();   

 _loader.load(new URLRequest("menu.XML"));  

  _loader.addEventListener(Event.COMPLETE,loading);

   for (var i:int=0; i<7; i++) {     

tempMC = new mc();    

 tempMC.addEventListener(MouseEvent.MOUSE_OVER,stoping);//产生鼠标事件    

 tempMC.addEventListener(MouseEvent.MOUSE_OUT,starting);//产生鼠标事件    

 tempMC.addEventListener(MouseEvent.CLICK,clicking);//产生点击鼠标事件    

 tempMC.name="tempMC"+i;   

  picArray.push(tempMC);   

  addChild(picArray[i]);    

 picArray[i].x=i*picArray[i].width;

   }  

  movetime=new Timer(80);   

 movetime.addEventListener(TimerEvent.TIMER,picmove);    movetime.start();   }   

private function picmove(event:TimerEvent):void {

   for (var t:int=0; t<7; t++) {   

  picArray[t].x-=5;     if (picArray[t].x<-88) {    

  picArray[t].x=6*88;     }    }   }

 

  private function loading(evt:Event):void {

   myxml=XML(_loader.data);    

mylist=myxml.children();   

 trace( mylist);

   for (var j:int=0; j<mylist.length(); j++) {

    list[j]=mylist.attribute("url")[j];   

  myurl[j]=mylist.attribute("myurl")[j];   

  trace(list[j]);  

   ld=new Loader();//加载图片用

    ld.name="ld"+j;//这里都很重要的位置,为每一loader对象改一个名字   

  imgArray.push(ld);//管理多个loader 对象   

  imgArray[j].load(new URLRequest(list[j]));   

  picArray[j].addChild(imgArray[j]);

   }

  }   private function stoping(e:MouseEvent):void {    movetime.stop();//停止图片运动

  }   private function starting(e:MouseEvent):void {    movetime.start();//让图片开始运动

  }   private function clicking(e:MouseEvent):void {  

  for (var k:int=0; k<7; k++) {   

  var str:String="ld"+k;//当你点击的图片名字与你所在的对应的图片的网址时候那么就会发生响应   

  if (e.target.name==str) {   

   navigateToURL(new URLRequest (myurl[k]));  

   } else {      trace("cuowu");    

 }   

 }    trace(e.target.name);

  }  } } 

xml文件设置:

<?xml version="1.0" encoding="gb2312"?>

<item>  <menuname url="photo/1.jpg"   myurl="http://www.baidu.com"    />

  <menuname url="photo/2.jpg"     myurl="http://www.hao123.com"         /> 

 <menuname url="photo/3.jpg"      myurl="http://www.sina.com.cn/"      />  

<menuname url="photo/4.jpg"      myurl="http://www.163.com"          /> 

 <menuname url="photo/5.jpg"     myurl="http://www.yahoo.com"          />     

    <menuname url="photo/6.jpg"     myurl="http://www.nba.com"           />    

     <menuname url="photo/7.jpg"    myurl="http://www.pchome.com"           />

 </item>

 

第一帧设置:

var p:Picture=new Picture(); addChild(p);

总述:这个完整的走马灯使用到很多综合的flash 语法,作为练习文件还是不错的。好,就写到这里。。

走马灯 基本上完成了