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

经典论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

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

搜索
查看: 5185|回复: 19

[AS3] 如何自动逐行加载外部txt文本内容

[复制链接]
发表于 2016-9-23 22:51:42 | 显示全部楼层 |阅读模式
以前xiedodo77大侠写了一套代码,点击按钮出现一行。我想不用按钮,让它每隔2秒自动就读取一行,怎么改一下代码呢?(如果可能的话,加个暂停按钮)

System.useCodepage = true;
var my_arr:Array;
var my_lv:LoadVars = new LoadVars();
my_lv.onLoad = function(success:Boolean) {
        if (success) {
                my_arr = my_lv.content.split("\r\n");
                for (var i = 0; i<my_arr.length; i++) {
                        my_arr[i] == "" && my_arr.splice(i);
                }
        }
};
my_lv.load("content.txt");

btn.onRelease = function() {
        var index:Number = Math.floor(Math.random()*my_arr.length);
        content_mc.content_txt.text = my_arr[index];
};
 楼主| 发表于 2016-9-24 21:36:01 | 显示全部楼层
自己胡乱弄,差不多算是基本实现要求吧。分享给大家,万一别人也要用这个。

但是我还想加个“暂停”按钮(点击暂停,再按继续),还没有实现。不知哪位高手能帮忙?

四小组.zip

171.35 KB, 下载次数: 337

回复 支持 反对

使用道具 举报

发表于 2016-9-24 22:57:15 | 显示全部楼层
FLASH(AS2)打字公告牌(支持HTML链接和文本格式)

效果图:

FLASH(AS2)打字公告牌(支持HTML链接和文本格式)1.jpg

FLASH(AS2)打字公告牌(支持HTML链接和文本格式)2.jpg


源代码:

  1. System.useCodepage = true;
  2. var textLineList:Array;
  3. var textLoader:LoadVars = new LoadVars();
  4. textLoader.onData = function(textContent) {
  5.         //trace(textContent);
  6.         textLineList = textContent.split("\r\n");
  7.         showText();
  8.         clearInterval(autoTypeHander);
  9.         autoTypeHander = setInterval(showText, autoTypeDelay*1000);
  10. };
  11. showButton.onRelease = function() {
  12.         if (isRandomType == true) {
  13.                 textIndex = Math.floor(Math.random()*textLineList.length);
  14.         } else {
  15.                 if (++textIndex>textLineList.length-1) {
  16.                         textIndex = 0;
  17.                         content_mc.content_txt.htmlText = "<p>&nbsp;</p>";
  18.                 }
  19.         }
  20.         if (isSingleLineType == true) {
  21.                 content_mc.content_txt.htmlText = textLineList[textIndex];
  22.         } else {
  23.                 content_mc.content_txt.htmlText = content_mc.content_txt.htmlText+textLineList[textIndex];
  24.         }
  25.         //自动滚动文本框中的内容
  26.         content_mc.content_txt.scroll = content_mc.content_txt.maxscroll;
  27. };
  28. autoButton.onRelease = function() {
  29.         isAutoType = !isAutoType;
  30.         clearInterval(autoTypeHander);
  31.         if (isAutoType) {
  32.                 showText();
  33.                 this.label = "切至->手动播放";
  34.                 autoTypeHander = setInterval(showText, autoTypeDelay*1000);
  35.         } else {
  36.                 this.label = "切至->自动播放";
  37.         }
  38. };
  39. randomButton.onRelease = function() {
  40.         isRandomType = !isRandomType;
  41.         isRandomType ? this.label="切至->顺序选行" : this.label="切至->随机选行";
  42. };
  43. singleLineButton.onRelease = function() {
  44.         isSingleLineType = !isSingleLineType;
  45.         isSingleLineType ? this.label="切至->叠加输出" : this.label="切至->单行输出";
  46. };
  47. var textIndex:Number = -1;
  48. var autoTypeHander:Number;
  49. //设置自动播放间隔时间(秒)
  50. var autoTypeDelay:Number = 3;
  51. var isAutoType:Boolean = true;
  52. var isRandomType:Boolean = false;
  53. var isSingleLineType:Boolean = false;
  54. var showText:Function = showButton.onRelease;
  55. //textLoader.load("content.txt");
  56. //添加SWF文件自身绝对路径识别,以适应论坛发布时能够成功加载同一路径下的文本文件
  57. textLoader.load(_root._url.slice(0, _root._url.lastIndexOf("/", _root._url.length))+"/content.txt");
复制代码



加载文本文件的内容:

  1. <p style="text-align: left; ">  <b>《诗经》</b>云:“<font color="#771100">维士与女,伊其相谑,赠之以芍药。</font>”</p>
  2. <p style="text-align: left; ">  溱洧河畔,青年男女游春相戏、赠以芍药、互结情好的动人情景,总令人几分羡慕、几分憧憬!捻一缕白芍的花香,满满的全是期待。</p>
  3. <p style="text-align: left; ">  <font color="#993300">而白芍,退去花香,退去芳华,还是良药一味。</font>与其它药配伍,用途广泛:1.白芍配伍甘草;2.白芍配伍枳实;3.白芍配伍桂枝;4.白芍配伍柴胡 … <a target="_blank" href="http://dreamdesign.csrjgzs.com/Article/ShowClass.asp?ID=a&P=1&Flt=search&SF=%C9%D6%7C%7C%7Carticle%7C%7C%7Cor%7C%7C%7Cfalse"><font color="#003399"><u>详解芍药功用的文章-&gt;</font></u></a></p>
  4. <p style="text-align: center; "><img alt="" src="http://p1.img.cctvpic.com/fmspic/wuxi/2015/05/08/0d291add841e4b38b5314a2fa2876974-120.jpg" /><br /><br /><br /><br /><br /></p>
  5.   <font color="#882200"><b>《伤寒论》</b></font><font color="#993300">中芍药59方次</font>,仅次于甘草(124)、桂枝(78)、生姜(70)、大枣(63)没有了芍药,仲师可真不好开方啊。
  6.   <font color="#993300"><u>芍药补血而不滋腻、养阴而不寒凉。</u></font>配桂枝可畅通循环促进代谢;配柴胡能疏肝开郁调节情志;配甘草擅缓急柔筋解痉止痛;配桃仁长活血化瘀消癥散结……
  7.   愚以为芍药是一把能够开合“<font color="#cc3300"><i>脑-平滑肌轴</i></font>”的重要钥匙,俺非常喜欢她。
  8. <p style="text-align: center; "><img alt="" src="http://fdfs.xmcdn.com/group14/M0B/4C/45/wKgDY1WvpmvSv7PvAAH1c2bIEq4179_mobile_large.jpg" /><br /><br /><br /><br /><br /><br />  美容经方《当归芍药散》<br />  <a target="_blank" href="http://www.ximalaya.com/30660253/sound/16501812"><font color="#003399"><u>去喜马拉雅听-&gt;</font></u></a><br /><br /><br /><br /></p>
  9.   ……
  10.   ……
复制代码
回复 支持 反对

使用道具 举报

发表于 2016-9-24 23:06:02 | 显示全部楼层
本帖最后由 yypz 于 2016-9-24 23:10 编辑

FLASH(AS2)打字公告牌(支持HTML链接和文本格式)

演示动画:




Fla源文件:

FLASH(AS2)打字公告牌(支持HTML链接和文本格式).rar (322.16 KB, 下载次数: 340)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-25 19:27:51 | 显示全部楼层
yypz 发表于 2016-9-24 23:06
FLASH(AS2)打字公告牌(支持HTML链接和文本格式)

演示动画:

你的网站我看过,也留过言,太高深了,我一直佩服中。
你给的这套AS我一定要快好好看看。感谢了。
回复 支持 反对

使用道具 举报

发表于 2016-9-25 19:40:02 | 显示全部楼层
wdavid 发表于 2016-9-25 19:27
你的网站我看过,也留过言,太高深了,我一直佩服中。
你给的这套AS我一定要快好好看看。感谢了。


过奖了,实在惭愧,那些都是老土得别人早已不愿学习的技术了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-25 21:41:43 | 显示全部楼层
yypz 发表于 2016-9-25 19:40
过奖了,实在惭愧,那些都是老土得别人早已不愿学习的技术了。

我也不知道为什么,flash似乎没有以前那么热了。几年前有个网站“闪客帝国”,我在那里接触了flash8,可是没多久论坛没了,网站也没了,也不知为啥,于是我也就没再学了。那都是好多年前的事了,等以后偶尔想做点东西,请教别人时,几乎都是说现在都用AS3,没人用AS2了。

顺便问一下,能否加个独立的按钮AS,可以暂停,然后点击继续加载txt内容?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-25 22:11:41 | 显示全部楼层
yypz 发表于 2016-9-25 19:40
过奖了,实在惭愧,那些都是老土得别人早已不愿学习的技术了。

这个是重复加载的。
加载到最后一个的时候,怎么能让它停止呢?
回复 支持 反对

使用道具 举报

发表于 2016-9-26 08:48:29 | 显示全部楼层
wdavid 发表于 2016-9-25 21:41
我也不知道为什么,flash似乎没有以前那么热了。几年前有个网站“闪客帝国”,我在那里接触了flash8,可 ...

下面那排,一共四个按钮你都试过功效了吗?
从左到右第三个,标签为“切至->手动播放”的按钮,其功能就是暂停。
回复 支持 反对

使用道具 举报

发表于 2016-9-26 08:59:09 | 显示全部楼层
wdavid 发表于 2016-9-25 22:11
这个是重复加载的。
加载到最后一个的时候,怎么能让它停止呢?

修改一下这个函数即可(红色加粗字体部分是新添的):


showButton.onRelease = function() {
        if (isRandomType == true) {
                textIndex = Math.floor(Math.random()*textLineList.length);
        } else {
                if (++textIndex>textLineList.length-1) {
                        if (isAutoType == true){
                                var autoText:Function = autoButton.onRelease;
                                autoText();
                        } else {
                                textIndex = 0;
                                content_mc.content_txt.htmlText = "<p>&nbsp;</p>";
                        }
                }
        }
        if (isSingleLineType == true) {
                content_mc.content_txt.htmlText = textLineList[textIndex];
        } else {
                content_mc.content_txt.htmlText = content_mc.content_txt.htmlText+textLineList[textIndex];
        }
        //自动滚动文本框中的内容
        content_mc.content_txt.scroll = content_mc.content_txt.maxscroll;
};
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-26 21:42:59 | 显示全部楼层
yypz 发表于 2016-9-26 08:59
修改一下这个函数即可(红色加粗字体部分是新添的):

真的很感谢,帮我解决了疑问。

You are a really kind gentleman !
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-26 21:52:48 | 显示全部楼层
wdavid 发表于 2016-9-26 21:42
真的很感谢,帮我解决了疑问。

You are a really kind gentleman !

读取结束后,会出现undefined字样,这个是必须的吗?
回复 支持 反对

使用道具 举报

发表于 2016-9-27 09:09:37 | 显示全部楼层
wdavid 发表于 2016-9-26 21:52
读取结束后,会出现undefined字样,这个是必须的吗?

是代码有逻辑漏洞出的问题,昨天我没有进行实测和调试,

修正之后的代码、演示动画、和源文件:


showButton.onRelease = function() {
        if (isRandomType == true) {
                textIndex = Math.floor(Math.random()*textLineList.length);
        } else {
                if (++textIndex>textLineList.length-1) {
                        if (isAutoType == true) {
                                var autoText:Function = autoButton.onRelease;
                                autoText.call(autoButton);
                                textIndex = -1;
                                isSingleLineType != true ? content_mc.content_txt.htmlText="<p>&nbsp;</p>" : null;
                                return;
                        } else {
                                textIndex = 0;
                                content_mc.content_txt.htmlText = "<p>&nbsp;</p>";
                        }
                }
        }
        if (isSingleLineType == true) {
                content_mc.content_txt.htmlText = textLineList[textIndex];
        } else {
                content_mc.content_txt.htmlText = content_mc.content_txt.htmlText+textLineList[textIndex];
        }
        //自动滚动文本框中的内容
        content_mc.content_txt.scroll = content_mc.content_txt.maxscroll;
};







FLASH(AS2)打字公告牌(支持HTML链接和文本格式)2.rar (321.96 KB, 下载次数: 307)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-28 22:44:11 | 显示全部楼层
yypz 发表于 2016-9-27 09:09
是代码有逻辑漏洞出的问题,昨天我没有进行实测和调试,

修正之后的代码、演示动画、和源文件:

我来晚了,今天才看到回复。感谢。

完美解决问题,真是高手啊。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-29 21:43:41 | 显示全部楼层
yypz 发表于 2016-9-27 09:09
是代码有逻辑漏洞出的问题,昨天我没有进行实测和调试,

修正之后的代码、演示动画、和源文件:

我又注册了一个账号在你的网站,说是点击邮箱激活链接,可是我的邮箱没有收到激活的邮件。我点击再次发送,也不好使,仍然没收到什么。
回复 支持 反对

使用道具 举报

发表于 2016-9-29 22:57:20 | 显示全部楼层
wdavid 发表于 2016-9-29 21:43
我又注册了一个账号在你的网站,说是点击邮箱激活链接,可是我的邮箱没有收到激活的邮件。我点击再次发送 ...

我已经手工为你激活了,你只管用账户名和密码登录就是了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-10-8 14:53:14 | 显示全部楼层
yypz 发表于 2016-9-29 22:57
我已经手工为你激活了,你只管用账户名和密码登录就是了。

很是感谢。现在看来只有你跟我谈AS2了。

我昨天突然又想,能否用输入数字的方式,来变换间隔的秒数。比如输入3就是隔三秒,输入1就隔一秒。(要能外部调节帧频也行,也可以调节间隔时间)
回复 支持 反对

使用道具 举报

发表于 2016-10-9 19:16:40 | 显示全部楼层
本帖最后由 yypz 于 2016-10-9 19:20 编辑
wdavid 发表于 2016-10-8 14:53
很是感谢。现在看来只有你跟我谈AS2了。

我昨天突然又想,能否用输入数字的方式,来变换间隔的秒数。 ...


“沉舟侧畔千帆过”,如之奈何?

修改几行代码就可以了:

1、在textLoader.onData函数中添加3行代码,如红色加粗字体所示:

textLoader.onData = function(textContent) {
        //trace(textContent);
        textLineList = textContent.split("\r\n");
        var setDelay:String = textLineList.shift().toString();
        isNaN(Number(setDelay)) != true ? autoTypeDelay=Number(setDelay) : null;
        //trace(autoTypeDelay);
        showText();
        clearInterval(autoTypeHander);
        autoTypeHander = setInterval(showText, autoTypeDelay*1000);
};


2、将代码最后一行改为,如红色加粗字体所示:

textLoader.load(_root._url.slice(0, _root._url.lastIndexOf("/", _root._url.length))+"/content_setDlay.txt");


3、修改文本文件content_setDlay.txt的内容,将第一行用来设置间隔的秒数,确保是数字且无多余空格:

  1. 2.5
  2. <p style="text-align: left; ">  <b>《诗经》</b>云:“<font color="#771100">维士与女,伊其相谑,赠之以芍药。</font>”</p>
  3. <p style="text-align: left; ">  溱洧河畔,青年男女游春相戏、赠以芍药、互结情好的动人情景,总令人几分羡慕、几分憧憬!捻一缕白芍的花香,满满的全是期待。</p>
  4. <p style="text-align: left; ">  <font color="#993300">而白芍,退去花香,退去芳华,还是良药一味。</font>与其它药配伍,用途广泛:1.白芍配伍甘草;2.白芍配伍枳实;3.白芍配伍桂枝;4.白芍配伍柴胡 … <a target="_blank" href="http://dreamdesign.csrjgzs.com/Article/ShowClass.asp?ID=a&P=1&Flt=search&SF=%C9%D6%7C%7C%7Carticle%7C%7C%7Cor%7C%7C%7Cfalse"><font color="#003399"><u>详解芍药功用的文章-&gt;</font></u></a></p>
  5. <p style="text-align: center; "><img alt="" src="http://p1.img.cctvpic.com/fmspic/wuxi/2015/05/08/0d291add841e4b38b5314a2fa2876974-120.jpg" /><br /><br /><br /><br /><br /></p>
  6.   <font color="#882200"><b>《伤寒论》</b></font><font color="#993300">中芍药59方次</font>,仅次于甘草(124)、桂枝(78)、生姜(70)、大枣(63)没有了芍药,仲师可真不好开方啊。
  7.   <font color="#993300"><u>芍药补血而不滋腻、养阴而不寒凉。</u></font>配桂枝可畅通循环促进代谢;配柴胡能疏肝开郁调节情志;配甘草擅缓急柔筋解痉止痛;配桃仁长活血化瘀消癥散结……
  8.   愚以为芍药是一把能够开合“<font color="#cc3300"><i>脑-平滑肌轴</i></font>”的重要钥匙,俺非常喜欢她。
  9. <p style="text-align: center; "><img alt="" src="http://fdfs.xmcdn.com/group14/M0B/4C/45/wKgDY1WvpmvSv7PvAAH1c2bIEq4179_mobile_large.jpg" /><br /><br /><br /><br /><br /><br />  美容经方《当归芍药散》<br />  <a target="_blank" href="http://www.ximalaya.com/30660253/sound/16501812"><font color="#003399"><u>去喜马拉雅听-&gt;</font></u></a><br /><br /><br /><br /></p>
  10.   ……
  11.   ……
复制代码



4、修改之后的FLASH源文件及文本文件,已经测试通过:

FLASH(AS2)打字公告牌(支持HTML链接和文本格式)_setDlay.rar (127.13 KB, 下载次数: 315)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-10-10 22:54:34 | 显示全部楼层
本帖最后由 wdavid 于 2016-10-10 22:58 编辑

“沉舟侧畔千帆过”?此言差矣。呵呵,说我是沉舟还行。你是不稀罕开船,开起来那是嗖嗖快。

我总纳闷:那么多的代码,你的大脑是怎么想出来的呢?

我下载了附件,没找到可以输入数字文本,然后改变间隔秒数的地方。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-10-10 23:08:25 | 显示全部楼层
哦,我明白了。你是说在txt文本中改一下,设置间隔时间。

我以为是在界面上弄个输入文本框,输入几,就隔几秒,随时改变。或者是上下调整的按钮。

用这个也行,就是稍微麻烦点,得关闭界面,修改完再点开。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

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