您的位置:首页 > 其它

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

2012-02-15 21:27 232 查看
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 使用的用法。

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

望能见谅,反正自己的笔记来 。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: