当前位置:沸点梦工场 > 网页设计教程 > Flash教程 > 浏览文章

Flash编程实例:开发广告播放器

59HOT收集整理 2008年03月12日 【字体:

    制作广告播放器

    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++; 
    本广告播放器使用自已编写的加载类,方便以后的加载操作。使用系统提供的过渡类,轻松制作多样的过渡效果。因此,开发项目时,如果能建立自己的类库,一定能事半功倍。

上一页
本文共 3 页,第  [1]  [2]  [3]  页