收藏本站腾讯微博新浪微博

经典论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

蓝色理想 最新研发动态 网站开通淘帖功能 - 蓝色理想插件 论坛内容导读一页看论坛 - 给官方提建议

论坛活动及任务 地图和邮件任务 请多用悬赏提问 热夏来袭,选一款蓝色理想的个性T恤吧!

手机上论坛,使用APP获得更好体验 急需前端攻城狮,获得内部推荐机会 论坛开通淘帖功能,收藏终于可以分类了!

搜索
查看: 8032|回复: 17

[AS3] as3.0动态读取xml文件的焦点图(按比例缩放)

[复制链接]
发表于 2009-12-30 21:40:44 | 显示全部楼层 |阅读模式
刚接触as3.0,处于学习阶段,有点小成,把第一个作品贴出来希望给指点一下!
aa.jpg
全部代码:
  1. import fl.transitions.Tween;
  2. import fl.transitions.easing.*;
  3. import flash.display.Sprite;
  4. import flash.events.MouseEvent;
  5. import flash.display.MovieClip;

  6. var image_box:Sprite = new Sprite();
  7. var image_show:Sprite = new Sprite();
  8. var txtMc:Sprite = new Sprite();
  9. var txtOne:TextField = new TextField();
  10. var txtTwo:TextField = new TextField();
  11. var txtThree:TextField = new TextField();
  12. var txtFour:TextField = new TextField();
  13. var folder:String = "focus/";
  14. var arrImg:Array = new Array();
  15. var arrBtn:Array = new Array();
  16. var arrTxt:Array = new Array();
  17. var arrUrl:Array = new Array();
  18. var btnOuter:btn_box = new btn_box();
  19. var time:Timer = new Timer(3000);
  20. var j:int = 0;
  21. //myXML load
  22. var myXML:XML = new XML();
  23. var XML_URL:String = "focus/focus_data.xml";
  24. var myXMLURL:URLRequest = new URLRequest(XML_URL);
  25. var myLoader:URLLoader = new URLLoader(myXMLURL);
  26. myLoader.addEventListener(Event.COMPLETE, xmlLoaded);
  27. function xmlLoaded(evtObj:Event) {
  28.         myXML = XML(myLoader.data);
  29.         for (var i:int = 0; i<myXML.thumbnail.length(); i++) {
  30.                 arrImg.push(folder + myXML.thumbnail[i].filename);
  31.                 arrTxt.push(myXML.thumbnail[i].titles);
  32.                 arrUrl.push(myXML.thumbnail[i].url);
  33.                 var btn:Sprite = new Sprite();
  34.                 arrBtn.push(btn);
  35.                 btn.graphics.drawRect(0,0,20,20);
  36.                 btn.x = 230 + 30 * i;
  37.                 btn.y = 2;
  38.                 btn.buttonMode = true;
  39.                 btn.mouseChildren=false;
  40.                 btn.name = i.toString();
  41.                 btn.addEventListener( MouseEvent.CLICK, btn_click );
  42.                 var btnTxt:TextField = new TextField();
  43.                 btnTxt.wordWrap=true;
  44.                 btnTxt.width = 20;
  45.                 btnTxt.height = 20;
  46.                 btnTxt.background = true;
  47.                 btnTxt.backgroundColor = 0xD4DEE0;
  48.                 btnTxt.text = (i+1).toString();
  49.                 btnTxt.setTextFormat(getFormat());
  50.                 btnOuter.addChild(btn);
  51.                 btn.addChild(btnTxt);
  52.         }
  53.         bigImgShow(0);//默认显示
  54.         btnAutoShow(0);//默认显示
  55. }
  56. function btn_click(me:MouseEvent) {
  57.         var s_no:Number = me.currentTarget.name;
  58.         time.stop();
  59.         time.start();
  60.         j = s_no;
  61.         bigImgShow(s_no);
  62.         btnAutoShow(s_no);
  63. }
  64. function getFormat():TextFormat {
  65.         var myFmt:TextFormat=new TextFormat;
  66.         myFmt.align="center";
  67.         myFmt.bold=true;
  68.         myFmt.font="方正粗宋简体";
  69.         myFmt.size=12;
  70.         myFmt.color=0x4EA4A3;
  71.         return myFmt;
  72. }
  73. function getFormatOver():TextFormat {
  74.         var myFmt:TextFormat=new TextFormat;
  75.         myFmt.color=0xffffff;
  76.         return myFmt;
  77. }
  78. function btn_Over(btnObj:Sprite) {
  79.         var btnObjTxt:TextField = btnObj.getChildAt(0) as TextField;
  80.         btnObjTxt.setTextFormat(getFormatOver());
  81.         btnObjTxt.backgroundColor = 0xD7CC25;
  82. }
  83. function btn_Out(btnObj:Sprite) {
  84.         var btnObjTxt:TextField = btnObj.getChildAt(0) as TextField;
  85.         btnObjTxt.setTextFormat(getFormat());
  86.         btnObjTxt.backgroundColor = 0xD4DEE0;
  87. }
  88. function onTimer(e:TimerEvent):void {
  89.         j++;
  90.         if (j==arrImg.length) {
  91.                 j = 0;
  92.                 removeEventListener(TimerEvent.TIMER,onTimer);
  93.         }
  94.         bigImgShow(j);
  95.         btnAutoShow(j);
  96. }
  97. //btn auto show
  98. function btnAutoShow(index:int) {
  99.         for (var m:int; m<arrBtn.length; m++) {
  100.                 if (arrBtn[index]!=arrBtn[m]) {
  101.                         btn_Out(arrBtn[m]);
  102.                 }
  103.         }
  104.         btn_Over(arrBtn[index]);
  105. }

  106. //images show And txt
  107. function bigImgShow(index:int) {
  108.         var ldr:Loader = new Loader();
  109.         var urlReq:URLRequest = new URLRequest(arrImg[index]);
  110.         ldr.load(urlReq);
  111.         txtOne.text = arrTxt[index].txt[0].toString();
  112.         txtTwo.text = arrTxt[index].txt[1].toString();
  113.         txtThree.text = arrTxt[index].txt[2].toString();
  114.         txtFour.text = arrTxt[index].txt[3].toString();
  115.         txtOne.setTextFormat(getFormatOver());
  116.         txtTwo.setTextFormat(getFormatOver());
  117.         txtThree.setTextFormat(getFormatOver());
  118.         txtFour.setTextFormat(getFormatOver());
  119.         var myTween:Tween = new Tween(txtMc, "y", Elastic.easeOut, 490, 480, 3, true);
  120.         var txt_blur:BlurFilter = new BlurFilter(0, 0, 0);
  121.         txtOne.filters = [txt_blur];
  122.         txtTwo.filters = [txt_blur];
  123.         txtThree.filters = [txt_blur];
  124.         txtFour.filters = [txt_blur];
  125.         var myTweenTxt:Tween = new Tween(txtMc, 'alpha', Strong.easeOut, 0, 1, 1, true);
  126.         ldr.contentLoaderInfo.addEventListener(Event.COMPLETE,comPleteHandler);
  127.         //控制图片比例显示
  128.         function comPleteHandler(e:Event) {
  129.                 var bp:Bitmap = (ldr.content as Bitmap);
  130.                 if (bp.width > image_box.width && bp.height > image_box.height && bp.width > bp.height) {
  131.                         bp.width = image_box.width;
  132.                         bp.scaleY = bp.scaleX;
  133.                 }
  134.                 if (bp.width > image_box.width && bp.height > image_box.height && bp.width < bp.height) {
  135.                         bp.height = image_box.height;
  136.                         bp.scaleX = bp.scaleY;
  137.                 }
  138.                 if (bp.width > image_box.width) {
  139.                         bp.width = image_box.width;
  140.                         bp.scaleY = bp.scaleX;
  141.                 }
  142.                 if (bp.height > image_box.height) {
  143.                         bp.height = image_box.height;
  144.                         bp.scaleX = bp.scaleY;
  145.                 }
  146.                 if (bp.width > image_box.width) {
  147.                         bp.width = 2 * image_box.width - bp.width;
  148.                         bp.scaleY = bp.scaleX;
  149.                 }
  150.                 if (bp.height > image_box.height) {
  151.                         bp.height = 2 * image_box.height - bp.height;
  152.                         bp.scaleX = bp.scaleY;
  153.                 }
  154.                 image_show.x = (image_box.width - bp.width)/2;
  155.                 image_show.y = (image_box.height - bp.height)/2;
  156.                 if (image_show.numChildren == 1) {
  157.                         image_show.removeChildAt(0);
  158.                 }
  159.                 var image_tw:Tween = new Tween(image_show, 'alpha', Strong.easeOut, 0, 1, 0.8, true);
  160.                 image_show.addChild(ldr);
  161.                 image_show.buttonMode = true;
  162.                 image_show.addEventListener(MouseEvent.MOUSE_DOWN,linkUrl);
  163.                 function linkUrl(e:Event) {
  164.                         var url:String = arrUrl[index].toString();
  165.                         navigateToURL(new URLRequest(url),"_balnk");
  166.                 }
  167.         }
  168. }

  169. image_box.graphics.beginFill(0xffffff);
  170. image_box.graphics.drawRect(0,0,388,454);
  171. image_box.x = 0;
  172. image_box.y = 0;
  173. btnOuter.x = 12.5;
  174. btnOuter.y = 425;
  175. txtOne.x = 9;
  176. txtOne.y = -20;
  177. txtTwo.x = 208;
  178. txtTwo.y = -20;
  179. txtThree.x = 9;
  180. txtThree.y = 0;
  181. txtFour.x = 208;
  182. txtFour.y = 0;
  183. txtMc.x = 0;
  184. txtMc.y = 40;
  185. txtMc.x = 0;
  186. txtMc.y = 480;
  187. time.addEventListener(TimerEvent.TIMER,onTimer);
  188. time.start();

  189. addChild(image_box);
  190. image_box.addChild(image_show);
  191. addChild(btnOuter);
  192. addChild(txtMc);
  193. txtMc.addChild(txtOne);
  194. txtMc.addChild(txtTwo);
  195. txtMc.addChild(txtThree);
  196. txtMc.addChild(txtFour);
复制代码

下载地址:http://www.wangtea.com/js/ifocu.rar

评分

参与人数 1威望 +1 收起 理由
flash023 + 1 加油!加油!

查看全部评分

发表于 2009-12-30 23:23:48 | 显示全部楼层
XML文件的焦点?没弄懂什么意思
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-31 09:25:38 | 显示全部楼层

回复 2# aseer 的帖子

就是读取xml数据。
回复 支持 反对

使用道具 举报

发表于 2009-12-31 09:28:34 | 显示全部楼层
效果不错!楼主加油!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-31 09:50:49 | 显示全部楼层

回复 4# flash023 的帖子

谢谢鼓励,正在努力中!
回复 支持 反对

使用道具 举报

发表于 2010-1-2 09:22:48 | 显示全部楼层
不错,学习。
回复 支持 反对

使用道具 举报

发表于 2010-1-2 15:14:32 | 显示全部楼层
现在还刚刚开始学,觉得什么事都是开头难。真是朋友多了路好走啊,感谢你,向你学习
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-1-3 12:41:39 | 显示全部楼层
原帖由 [i]aiwZY 于 2010-1-2 15:14 发表
现在还刚刚开始学,觉得什么事都是开头难。真是朋友多了路好走啊,感谢你,向你学习

共同学习进步!我也刚开始
回复 支持 反对

使用道具 举报

发表于 2010-1-4 15:55:35 | 显示全部楼层
XML文件 都没有发上来 能看到你的效果嘛,居然有人在上面说 效果好,我服了他了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-1-4 18:32:02 | 显示全部楼层
原帖由 [i]yuanfanglaipeng 于 2010-1-4 15:55 发表
XML文件 都没有发上来 能看到你的效果嘛,居然有人在上面说 效果好,我服了他了

http://www.wangtea.com/js/ifocu.rar
回复 支持 反对

使用道具 举报

发表于 2010-1-6 14:03:40 | 显示全部楼层
楼主是个MM!真厉害!
回复 支持 反对

使用道具 举报

发表于 2010-1-7 15:55:12 | 显示全部楼层
源文件里的不能用。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-1-7 17:21:01 | 显示全部楼层
原帖由 [i]258795093 于 2010-1-7 15:55 发表
源文件里的不能用。

不可能呀,用cs3打开
回复 支持 反对

使用道具 举报

发表于 2010-1-8 11:16:13 | 显示全部楼层
谢谢,学习下
回复 支持 反对

使用道具 举报

发表于 2010-1-30 10:12:40 | 显示全部楼层
给出的下载不能下了.感谢楼主学习一下!
回复 支持 反对

使用道具 举报

发表于 2010-4-12 11:23:20 | 显示全部楼层
正在做类似的东西呢,正好搜到楼主的帖子,学习了!
能问下,如果我想把按钮换成图片,就是大图按比例缩小后的图,应该怎么写呢?

[[i] 本帖最后由 buzaiyouni 于 2010-4-12 11:24 编辑 ]
回复 支持 反对

使用道具 举报

发表于 2010-8-31 13:50:32 | 显示全部楼层

无法下载啊

下载链接没用啊 lz
回复 支持 反对

使用道具 举报

发表于 2010-9-1 13:17:27 | 显示全部楼层
这么强大啊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|Archiver|手机版|blueidea.com ( 湘ICP备12001430号 )  

GMT+8, 2020-12-3 15:42 , Processed in 0.181183 second(s), 16 queries , Gzip On, Memcache On.

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表