每天学一点flash(38) 制作走马灯二

来源:互联网 发布:采集器软件 编辑:程序博客网 时间:2024/03/29 07:26

Picture.as文件

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 list:Array;
  private var myxml:XML;
  private var mylist:XMLList;
  private var ld:Loader;
  private var _loader:URLLoader;
  private var myurl:URLRequest;
  public function Picture() {
   System.useCodePage=true;

   picArray=new Array();
   imgArray=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();
    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];
    trace(list[j]);
    ld=new Loader();//加载图片用
    imgArray.push(ld);//管理多个loader 对象
    imgArray[j].load(new URLRequest(list[j]));
    picArray[j].addChild(imgArray[j]);


   }

  }
 }
}

 

xml文件:

<?xml version="1.0" encoding="gb2312"?>
<item>
 <menuname url="photo/1.jpg"/>
 <menuname url="photo/2.jpg"/>
 <menuname url="photo/3.jpg"/>
 <menuname url="photo/4.jpg"/>
 <menuname url="photo/5.jpg"/>
 <menuname url="photo/6.jpg"/>
 <menuname url="photo/7.jpg"/>
</item> 

 

基本设置:

图片大小:88x105(装载为photo文件夹里面)

场景:528x105

 

 场景第一帧代码:

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

这次的代码用类的写法改变在时间轴上书写代码,但其实都是差不多。为了使每一个影片剪辑可以装载多个图片这时候 这里使用了 数组list 装载多了loader 对象 ,方便处理。制作这个图片运动,它需要我们知道的知识包括:如何加载外部的xml文件,知道如何去用new 复制多个影片剪辑,同样要知道 addChild 使用的用法。

过去我们习惯用一个影片剪辑作为被加载对象的容器,现在同样的方法我们使用的手段是一样的。这个技巧需要我们知道一下。  以上的代码可以实现图片运动,以及加载多张图片是怎样加载的。都是菜鸟的写法。写得不好

望能见谅,反正自己的笔记来 。

原创粉丝点击