找回密码
 加入
搜索
楼主: menfan

[AU3基础] 【已解决】AU3如何实现滚动字幕功能?

 火... [复制链接]
发表于 2010-3-16 21:36:46 | 显示全部楼层
本帖最后由 水木子 于 2010-3-16 21:38 编辑

回复 13# afan
我猜LZ是不是看到前辈的例子 认为前辈的是一个控件在滚动! 而他要的效果是整个GUI滚动???
哎!瞎猜的!
 楼主| 发表于 2010-3-16 21:41:22 | 显示全部楼层
回复  afan
我猜LZ是不是看到前辈的例子 认为前辈的是一个控件在滚动! 而他要的效果是整个GUI滚动??? ...
水木子 发表于 2010-3-16 21:36


这个例子以前就看到过了,一般实现滚动屏幕都是一行一行滚动,现在要实现的时一屏一屏的滚动切换,难度加大了一点哦。
发表于 2010-3-16 21:44:25 | 显示全部楼层
一屏一屏的滚动切换???

一屏的文字显示一段时间,滚动出去 新的文字进来停一段时间再出去 ??? 这样切换?
 楼主| 发表于 2010-3-16 21:45:16 | 显示全部楼层
一屏一屏的滚动切换???

一屏的文字显示一段时间,滚动出去 新的文字进来停一段时间再出去 ??? 这样 ...
水木子 发表于 2010-3-16 21:44


没错,类似于这种效果
发表于 2010-3-16 21:49:02 | 显示全部楼层
哦!那也比较简单!
我倒是在想做点切换时的特效,就像一些图片切换那样!
 楼主| 发表于 2010-3-16 21:52:33 | 显示全部楼层
哦!那也比较简单!
我倒是在想做点切换时的特效,就像一些图片切换那样!
水木子 发表于 2010-3-16 21:49


做好的话发个例子学习一下哦
发表于 2010-3-16 21:56:09 | 显示全部楼层
这个应该可以做到.....
 楼主| 发表于 2010-3-16 22:03:49 | 显示全部楼层
可以做的话,能不能给个实例呢?
发表于 2010-3-16 22:30:26 | 显示全部楼层
临时做的有点乱!不知道LZ是不是这意思?
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Global $hFgui, $hSgui, $Label1, $Label2, $Texta, $zb, $za

_Example1()

Func _Example1()
        $za = -180
        $zb = 300
        $Texta = '          滚动字幕开始' & @CRLF & @CRLF & _
                        '    这里是很长很长的测试文字' & @CRLF & @CRLF & _
                        '    这里是很长很长的测试文字' & @CRLF & @CRLF & _
                        '    这里是很长很长的测试文字' & @CRLF & @CRLF & _
                        '    这里是很长很长的测试文字' & @CRLF & @CRLF & _
                        '    这里是很长很长的测试文字' & @CRLF & @CRLF & _
                        '    这里是很长很长的测试文字' & @CRLF & @CRLF & _
                        '    这里是很长很长的测试文字' & @CRLF & @CRLF & _
                        '    这里是很长很长的测试文字' & @CRLF & @CRLF & _
                        '          滚动字幕结束'

        $hFgui = GUICreate('滚动字幕', 450, 300)
        GUISetState()
        $hSgui = GUICreate("", 200, 260, 230, 40, $WS_POPUP, $WS_EX_MDICHILD, $hFgui)
        GUISetBkColor('0x008ACC', $hSgui)

        $Label1 = GUICtrlCreateLabel("", -180, 15, 190, 250)
        $Label2 = GUICtrlCreateLabel("", 5, 300, 190, 250)
        GUICtrlSetData($Label1, $Texta)
        GUICtrlSetData($Label2, $Texta)
        GUISetState()
        AdlibRegister('Scrolla', 20)
EndFunc   ;==>_Example1

While GUIGetMsg() <> -3
WEnd

Func Scrolla()
        ControlMove($hSgui, '', $Label2, 5, $zb)
        If $zb = -250 Then
                $zb = 300
                AdlibUnRegister('Scrolla')
                AdlibRegister('Scrollb', 20)
        ElseIf $zb = 15 Then
                Sleep(3000)
        EndIf
        $zb -= 1
EndFunc   ;==>Scrolla

Func Scrollb()
        ControlMove($hSgui, '', $Label1, $za, 15)
        If $za = 250 Then
                $za = -180
                AdlibUnRegister('Scrollb')
                AdlibRegister('Scrolla', 20)
        ElseIf $za = 5 Then
                Sleep(3000)
        EndIf
        $za += 1
EndFunc   ;==>Scrollb

评分

参与人数 1金钱 +30 收起 理由
afan + 30

查看全部评分

发表于 2010-3-16 22:35:21 | 显示全部楼层
不知道怎么的,我始终觉得文字在滚动的时候抖动得很厉害,你试试呢!
 楼主| 发表于 2010-3-17 07:42:33 | 显示全部楼层
不知道怎么的,我始终觉得文字在滚动的时候抖动得很厉害,你试试呢!
水木子 发表于 2010-3-16 22:35


呵呵,是闪烁厉害吧,不知道如何平滑滚动?
 楼主| 发表于 2010-3-17 08:22:14 | 显示全部楼层
本帖最后由 menfan 于 2010-3-17 08:27 编辑
临时做的有点乱!不知道LZ是不是这意思?
水木子 发表于 2010-3-16 22:30


这个代码是已知文本的情况,如果是未知文本大小(要取多个DOC文件)的情况呢?比如滚动一个文件内容后停顿一下,然后滚动所有文件内容之后停顿一下,再循环滚动。
发表于 2010-3-17 11:32:25 | 显示全部楼层
不知道怎么的,我始终觉得文字在滚动的时候抖动得很厉害,你试试呢!
水木子 发表于 2010-3-16 22:35



    有点抖动.....
发表于 2010-3-17 12:39:54 | 显示全部楼层
新手进来学习赚点分
发表于 2010-3-21 13:53:48 | 显示全部楼层
看看,谢谢!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-27 13:00 , Processed in 0.067853 second(s), 15 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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