制作广告播放器
1.图层介绍如下:
在"background"图层中,放置广告播放器的背景;
在"label"图层中,设置帧标签,方便帧的跳转;
在"as"图层中,放置相应的加载、播放代码等,主要包含四个空白关键帧,第2帧用于加载xml文件,并把其中的数据保存一个对象中。第10帧加载css文件,同样把信息保存在一个对象中,第20帧主要是与播放相关的代码,如载入广告文件,切换效果等。
2、编写加载xml文件的代码:
stop();
import fc.load.* import mx.utils.Delegate;
var pic = new Object(); //保存图片信息的对象
var xmlData = new Xml();
xmlData.load("myinfo.xml");
xmlData.addEventListener("onComplete", Delegate.create(this, loadComplete));
xmlData.addEventListener("onProgress", Delegate.create(this, loadPorgress));
function loadComplete(obj) {
var readxml = obj.value.firstChild;
pic.path = readxml.attributes.baseURL;
//图片路径
pic.time = readxml.attributes.delayTime;
//图片延迟出现时间 pic.list = [];
for (var i = 0; i<readxml.childNodes.length; i++) {
pic.list[i] = new Object();
pic.list[i].id = readxml.childNodes[i].attributes.id;
//索引读取
pic.list[i].name = readxml.childNodes[i].attributes.Name;
//图片名读取
pic.list[i].info = readxml.childNodes[i].firstChild;
//文字信息
//trace(pic.path+pic.list[i].name);
} delete xmlData;
gotoAndPlay("css"); }
function loadPorgress(obj) {
//trace("loading");
} |
3、编写加载css文件的代码
stop();
import fc.load.Css; import mx.utils.Delegate;
var style = new Object();
var cssData:Css = new Css();
cssData.load("styles.css");
cssData.addEventListener("onComplete", Delegate.create(this, loadComplete));
cssData.addEventListener("onProgress", Delegate.create(this, loadPorgress));
function loadComplete(obj) {
style = obj.value;
gotoAndStop("pic");
delete cssData; }
function loadPorgress(obj) { //loading
} |
4、编写载入广告等代码
stop();
import fc.load.Movie; import mx.utils.Delegate;
import mx.transitions.*;
import mx.transitions.easing.*;
var myTransitionManager:TransitionManager;
var index:Number = 0;
var time:Number = 0;
var _timeID:Number = 0;
var alpha = 10;
var showText = true; init();
//加载外部jpg文件 function init() {
var picData:Movie = new Movie(this.createEmptyMovieClip("picmc", 1));
picData.load(pic.path+pic.list[index].name);
picData.addEventListener("onComplete", Delegate.create(this, loadComplete));
picData.addEventListener("onProgress", Delegate.create(this, loadPorgress));
} //加载完成函数 function loadComplete(obj) {
picmc.onEnterFrame = function() {
if (this._width != 0) {
delete this.onEnterFrame;
//添加过渡效果
var myTransitionManager:TransitionManager = new TransitionManager(picmc);
myTransitionManager.startTransition({type:PixelDissolve, direction:Transition.IN, duration:0.5, easing:None.easeNone, xSections:20, ySections:20});
var myListener:Object = new Object();
myListener.allTransitionsInDone = function(eventObj:Object) {
setText();
};
myTransitionManager.addEventListener("allTransitionsInDone", myListener);
} }; }
function loadPorgress(obj) { }
//设置广告说明文字 function setText() {
this.createEmptyMovieClip("textmc", 2);
textmc.createEmptyMovieClip("mc", 2);
createBg(textmc.mc, 0, 233, 200, 20);
textmc.createTextField("showInfo", 1, 0, 0, 0, 0);
with (textmc) {
showInfo.wordWrap = false;
showInfo.html = true;
showInfo.autoSize = true;
showInfo.styleSheet = style;
showInfo.htmlText = pic.list[index].info;
var str = showInfo.text;
showInfo.text = str;
showInfo._x = (200-showInfo._width)/2;
showInfo._y = 233;
}
this.createTextField("showTime", 3, 0, 0, 0, 0);
showTime.autoSize = true;
showTime.text = pic.time+"s";
_timeID = setInterval(this, "delayFunc", 1000);
} //文字背景
function createBg(mc, sx, sy, w, h) {
mc.beginFill(0x333333, 40);
//mc.lineStyle(1);
mc.moveTo(sx, sy);
mc.lineTo(sx+w, sy);
mc.lineTo(sx+w, sy+h);
mc.lineTo(sx, sy+h);
mc.lineTo(sx, sy);
mc.endFill(); } //每张广告展示的时间设置
function delayFunc() {
var temptime = pic.time-time;
showTime.text = temptime+"s";
if (time>=pic.time) {
clearInterval(_timeID);
time = 0;
//消失
var myTransitionManager:TransitionManager = new TransitionManager(picmc);
myTransitionManager.startTransition({type:PixelDissolve, direction:Transition.OUT, duration:0.5, easing:None.easeNone, xSections:20, ySections:20});
var myListener:Object = new Object();
myListener.allTransitionsOutDone = function(eventObj:Object) {
index++;
if (index>=pic.list.length) {
index = 0;
}
init();
};
myTransitionManager.addEventListener("allTransitionsOutDone", myListener);
} time++;
} |
本广告播放器使用自已编写的加载类,方便以后的加载操作。使用系统提供的过渡类,轻松制作多样的过渡效果。因此,开发项目时,如果能建立自己的类库,一定能事半功倍。
(责任编辑:luwei) |