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

经典论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

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

搜索
查看: 37447|回复: 147

[AS1&2] 39行AS2纯代码几十种混合过渡效果FLASH-XML图片播放器(源码)

  [复制链接]
发表于 2013-2-5 09:34:01 | 显示全部楼层 |阅读模式
本帖最后由 yypz 于 2015-2-11 12:37 编辑


AS2纯代码混合过渡效果图片播放器实例演示:






过渡效果界面截图:







XML图片列表文件结构:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2.     <node>
  3.         <node url="img/01.jpg" />
  4.         <node url="img/02.jpg" />
  5.         <node url="img/03.jpg" />
  6.         <node url="img/05.jpg" />
  7.         <node url="img/07.jpg" />
  8.         <node url="img/08.jpg" />
  9.         <node url="img/09.jpg" />
  10.         <node url="img/10.jpg" />
  11.     </node>
复制代码



全部AS2代码(仅39行):
  1. import mx.transitions.*;
  2. Stage.align = "LT";
  3. Stage.scaleMode = "noScale";
  4. var transinid:Number;
  5. var transoutid:Number;
  6. var transeffect:Array = [Zoom, Wipe, Squeeze, Rotate, PixelDissolve, Photo, Iris, Fly, Blinds, Fade];
  7. var cureffect:Object = transeffect[Math.floor(Math.random()*transeffect.length)];
  8. function switchimg() {
  9.         for (i=0; i<imgxml.firstChild.childNodes.length; i++) {
  10.                 i != transinid && i != transoutid ? _root["img"+i]._visible=false : _root["img"+i]._visible=true;
  11.         }
  12.         _root["img"+transinid].getDepth()<_root["img"+transoutid].getDepth() ? _root["img"+transinid].swapDepths(_root["img"+transoutid]) : null;
  13.         _root["img"+transinid]._width = _root["img"+transoutid]._width=Stage.width;
  14.         _root["img"+transinid]._height = _root["img"+transoutid]._height=Stage.height;
  15.         var tmpeffect:Object = transeffect[Math.floor(Math.random()*transeffect.length)];
  16.         while (tmpeffect == cureffect && transeffect.length>1) {
  17.                 tmpeffect = transeffect[Math.floor(Math.random()*transeffect.length)];
  18.         }
  19.         cureffect = tmpeffect;
  20.         TransitionManager.start(_root["img"+transinid], {type:cureffect, direction:Transition.IN, duration:1.2, easing:mx.transitions.easing.Regular.easeOut, numStrips:20, dimension:0});
  21.         transinid+1<imgxml.firstChild.childNodes.length ? transinid += 1 : transinid=0;
  22.         transinid-1>=0 ? transoutid=transinid-1 : transoutid=imgxml.firstChild.childNodes.length-1;
  23. }
  24. var imgxml:XML = new XML();
  25. imgxml.ignoreWhite = true;
  26. imgxml.onLoad = function(ok) {
  27.         if (ok) {
  28.                 for (var i:Number = 0; i<imgxml.firstChild.childNodes.length; i++) {
  29.                         _root.createEmptyMovieClip("img"+i, _root.getNextHighestDepth());
  30.                         _root["img"+i].loadMovie(_root._url.slice(0, _root._url.lastIndexOf("/", _root._url.length))+"/"+imgxml.firstChild.childNodes[i].attributes.url);
  31.                 }
  32.                 transinid = 0;
  33.                 transoutid = imgxml.firstChild.childNodes.length-1;
  34.                 setInterval(switchimg, 5000);
  35.         } else {
  36.                 trace("XML加载失败!");
  37.         }
  38. };
  39. imgxml.load(_root._url.toLowerCase().split(".swf")[0]+".xml");
复制代码
有些过渡效果有参数,下面代码中并未写全

参考FLASH8中文帮助,

将其补到“TransitionManager.start(this["img"+String(curfrontpicid)+"_mc"], {type:”一行中

可以获得更丰富细腻的效果





FLASH源文件下载:


源码(所有文件)打包下载地址:
(个人小站服务器不太稳定,为方便大家下载,已经上传一份到经典论坛了,地址见下面)

游客,如果您要查看本帖隐藏内容请回复
发表于 2013-2-14 18:58:42 | 显示全部楼层
效果不错 下载学习了。
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2013-2-7 16:19:57 | 显示全部楼层
hanjiangxuerun 发表于 2013-2-7 15:51
这图片应该在外部的吧,楼主传上来的演示FLASH,图片应该在网上的吧。

是的
回复 支持 1 反对 0

使用道具 举报

发表于 2013-2-7 15:51:02 | 显示全部楼层
这图片应该在外部的吧,楼主传上来的演示FLASH,图片应该在网上的吧。
回复 支持 1 反对 0

使用道具 举报

发表于 2013-2-6 16:12:18 | 显示全部楼层
坐标好近!!
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2013-2-5 09:38:46 | 显示全部楼层
论坛这两天怎么不能用附件了呢,呵呵,上传好,插入帖子,发布之后就不见了!
浏览器是谷歌24
回复 支持 1 反对 0

使用道具 举报

发表于 2013-2-14 22:01:03 | 显示全部楼层
很实用的东西
回复 支持 反对

使用道具 举报

发表于 2013-2-16 10:14:18 | 显示全部楼层
下了学习学习
回复 支持 反对

使用道具 举报

发表于 2013-2-17 01:40:40 | 显示全部楼层
很棒,要是加上数字切换按钮就更好了。
回复 支持 反对

使用道具 举报

发表于 2013-2-17 09:33:29 | 显示全部楼层
好东西啊......
收了,谢楼主
回复 支持 反对

使用道具 举报

发表于 2013-2-17 16:43:39 | 显示全部楼层
想研究研究!
回复 支持 反对

使用道具 举报

发表于 2013-2-18 16:58:38 | 显示全部楼层
学习学习学习
回复 支持 反对

使用道具 举报

发表于 2013-2-19 15:00:16 | 显示全部楼层
能改版成as3不?
回复 支持 反对

使用道具 举报

发表于 2013-2-19 16:09:15 | 显示全部楼层
AS2的吗?正好借鉴学习学习。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-2-19 16:15:32 | 显示全部楼层
abluesdesign 发表于 2013-2-19 15:00
能改版成as3不?

不知道,我不会AS3
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-2-19 16:16:32 | 显示全部楼层
fourfour 发表于 2013-2-19 16:09
AS2的吗?正好借鉴学习学习。

是AS2的,我猜想,如果用AS3做,要搞定这种效果,那应该远不止39行代码吧!
回复 支持 反对

使用道具 举报

发表于 2013-2-19 21:38:17 | 显示全部楼层
yypz 发表于 2013-2-19 16:16
是AS2的,我猜想,如果用AS3做,要搞定这种效果,那应该远不止39行代码吧!

请问朋友,我下载了你的源文件,测试正常,生成的.swf文件却一片空白,真是奇怪了,我还头一回碰到这样的事。一般来说,测试就是生成.swf文件的过程,测试正常,那.swf文件也应该正常呀。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-2-19 22:21:17 | 显示全部楼层
hanjiangxuerun 发表于 2013-2-19 21:38
请问朋友,我下载了你的源文件,测试正常,生成的.swf文件却一片空白,真是奇怪了,我还头一回碰到这样的 ...



注意加载的XML文件和XML里面指定的图片文件的URL,
我上面是这样写的,你可以改成相对路径或者绝对路径来试试!
  1. imgxml.load(_root._url.toLowerCase().split(".swf")[0]+".xml");
复制代码


另外我倒是发现个问题,就这么简单的39行,纯代码的东西,
发布出来的SWF文件加密之后(我用了两种不同的加密软件)
居然都无法正常加载图片,只有一片空白,匪夷所思,呵呵
回复 支持 反对

使用道具 举报

发表于 2013-2-19 22:40:45 | 显示全部楼层
yypz 发表于 2013-2-19 22:21
注意加载的XML文件和XML里面指定的图片文件的URL,
我上面是这样写的,你可以改成相对路径或者绝对路 ...

将.xml改成相对路径连测试也一片空白了,哈哈。。。
对代码还是没学好哦。
回复 支持 反对

使用道具 举报

发表于 2013-2-19 22:44:18 | 显示全部楼层
朋友把图片放在了外部,那么就算.swf播放正常,也只能在本地播放,上网就不行了。

朋友既然能在论坛上发表,应该图片不是从外部载入,而是从网上载入的吧。
回复 支持 反对

使用道具 举报

发表于 2013-2-19 22:47:26 | 显示全部楼层
如果朋友能够把载入外部的图片转化到载入网上的图片,或者将外部的图片转化到文件的库里。那生成的.swf就可以直接在网上播放。
回复 支持 反对

使用道具 举报

发表于 2013-2-19 22:51:34 | 显示全部楼层
我有个3D源文件,图片也是在外部的。测试以及生成的.swf都正常,但只能在本地播放,上网就不行,因为图片带不上。
朋友有办法把外部的图片转到网上或者转到库里吗?这需要修改代码的。
回复 支持 反对

使用道具 举报

发表于 2013-2-19 22:58:27 | 显示全部楼层
我自己不行,问了几个人都不行。看了朋友的这个帖子,估计朋友能行。如果朋友能行,就帮帮忙啦。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-2-20 09:26:40 | 显示全部楼层
hanjiangxuerun 发表于 2013-2-19 22:58
我自己不行,问了几个人都不行。看了朋友的这个帖子,估计朋友能行。如果朋友能行,就帮帮忙啦。

http://bbs.blueidea.com/thread-3090855-1-1.html

这个是图片集成在内部的!
回复 支持 反对

使用道具 举报

发表于 2013-2-20 11:05:43 | 显示全部楼层
yypz 发表于 2013-2-20 09:26
http://bbs.blueidea.com/thread-3090855-1-1.html

这个是图片集成在内部的!

我看到过了,所以觉得朋友能把图片放在外部、库里以及网上,那么一定懂这些技巧。

就想请朋友帮忙试试。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-2-20 12:00:41 | 显示全部楼层
hanjiangxuerun 发表于 2013-2-20 11:05
我看到过了,所以觉得朋友能把图片放在外部、库里以及网上,那么一定懂这些技巧。

就想请朋友帮忙试试 ...

抱歉,我不懂AS3,

3D效果一般都是AS3做出来的。
回复 支持 反对

使用道具 举报

发表于 2013-2-20 18:01:17 | 显示全部楼层
yypz 发表于 2013-2-20 12:00
抱歉,我不懂AS3,

3D效果一般都是AS3做出来的。

不是AS3的,AS1的。
回复 支持 反对

使用道具 举报

发表于 2013-2-20 18:18:42 | 显示全部楼层
yypz 发表于 2013-2-20 12:00
抱歉,我不懂AS3,

3D效果一般都是AS3做出来的。


对不起,我看错了,有两个3d文件,一个图片在库里的是AS1的,在外部的是AS3的。
回复 支持 反对

使用道具 举报

发表于 2013-2-20 21:15:35 | 显示全部楼层
谢谢啊,不错的东东
回复 支持 反对

使用道具 举报

发表于 2013-3-2 09:18:49 | 显示全部楼层
不错,简单实用
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2020-9-29 18:59 , Processed in 0.155858 second(s), 10 queries , Gzip On, Memcache On.

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

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