Flash广告播放器研发

2008-04-02 11:06:01来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折


  很多网站都使用了swf格式的flash广告,如何让这些广告更有序的出现,网站建设者们都使用了flash广告播放器,其表现形式也很丰富,但里面所含的技术大同小异。Flash广告播放器播放的广告经常需要更换,因此,使用外部文档导入到广告播放器是一种可行的方法。这些外部文档包括swf、jpg等格式的广告文档、组织数据的xml文档和用来格式化文本的css文档等,这样,更换广告,改变文本的格式就变得很方便。:

  准备播放器的素材

  创建目录,用于保存相关文档,以播放jpg格式的图片为例,首先准备几张图片,统一放在一个名为"mypic"的目录下,分别命名为1.jpg到n.jpg。

  编写外部数据文档

   1、编写css文档,新建一个txt文档,输入播放器中的文本格式内容,如字体颜色等。如下所示:

  
.message{

  color:#FFFFFF;

  font-family:Arial,Helvetica,sans-serif;

  font-size:12px;

  font-weight:bold;

  }
将上面写好的文档保存,把文档名改为styles.css。

   2、编写xml文档,新建一个txt文档,输入相关数据,如下所示:

  
<?xmlversion="1.0"encoding="gb2312"?>

  <infobaseURL="mypic/"delayTime="8">

  <picNameid="0"Name="pic1.jpg"><![CDATA[<ahref="http://www.macromedia.com"target="_blank"class="message">信息技术教育第1期</a>]]></picName>

  <picNameid="1"Name="pic2.jpg"><![CDATA[<ahref="http://www.macromedia.com"target="_blank"class="message">信息技术教育第2期</a>]]></picName>

  <picNameid="2"Name="pic3.jpg"><![CDATA[<ahref="http://www.macromedia.com"target="_blank"class="message">第3张图片</a>]]></picName>

  <picNameid="3"Name="pic4.jpg"><![CDATA[<ahref="http://www.macromedia.com"target="_blank"class="message">第4张图片</a>]]></picName>

  </info>
同样保存为myinfo.xml文档。

  编写播放器的类库

  播放器要载入多种外部文档,因此,编写自己的一个加载类库是一种好的解决方法,首先建立一个抽象加载类,定义属性、方法及事件,其他的具体加载类都继承此抽象加载类。

   1、抽象加载类

  
importmx.utils.Delegate;

  importmx.events.EventDispatcher;

  classfc.load.AbstractLoad{

  privatevardispatchEvent:Function;

  publicvaraddEventListener:Function;

  publicvarremoveEventListener:Function;

  privatevarloadObject:Object;

  privatevarloadID:Number;

  functiongetBytesLoaded(){

  returnloadObject.getBytesLoaded();

  }

  functiongetBytesTotal(){

  returnloadObject.getBytesTotal();

  }

  privatefunctioncheckProgress(){

  varperLoaded:Number=Math.floor(getBytesLoaded()/getBytesTotal()*100);

  dispatchEvent({type:"onProgress",value:perLoaded});

  endLoad(perLoaded);

  }

  privatefunctionstartLoad(){

  EventDispatcher.initialize(this);

  loadID=setInterval(Delegate.create(this,checkProgress),30);

  dispatchEvent({type:"onProgress",value:0});

  }

  privatefunctionendLoad(perLoaded){

  if(perLoaded>=100){

  dispatchEvent({type:"onComplete",value:loadObject});

  clearInterval(loadID);

  }

  }

  }
2、加载xml的类

  
importfc.load.AbstractLoad;

  importmx.utils.Delegate;

  classfc.load.XmlextendsAbstractLoad{

  privatevarloadObject:XML;

  functionXml(){

  loadObject=newXML();

  loadObject.ignoreWhite=true;

  System.useCodepage=true;

  }

  publicfunctionload(url:String){

  loadObject.load(url);

  startLoad();

  }

  }
3、加载css的类

  
importfc.load.AbstractLoad;

  importmx.utils.Delegate;

  classfc.load.CssextendsAbstractLoad{

  privatevarloadObject:TextField.StyleSheet;

  functionCss(){

  loadObject=newTextField.StyleSheet();

  }

  publicfunctionload(url:String){

  loadObject.load(url);

  startLoad();

  }

  }
4、加载影片的类

  
importfc.load.AbstractLoad;

  classfc.load.MovieextendsAbstractLoad{

  privatevarloadObject:MovieClip;

  functionMovie(mc){

  //装载影片等的影片剪辑

  loadObject=mc;

  }

  publicfunctionload(url:String){

  loadObject.loadMovie(url);

  startLoad();

  }

  publicfunctionunload(){

  loadObject.unloadMovie();

  }

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: FlashAS学习:for循环和退出循环

下一篇: SWF关于远程源和允许跨域数据加载