天天看點

qml 利用粒子實作文字顯示

先上效果

qml 利用粒子實作文字顯示

實作原理:利用粒子發射器的shape屬性實作。qml提供了三種類型EllipseShape, LineShape, and MaskShape。利用MaskShape實作即可。現在實作的這種方式是利用的現有圖檔(圖檔是png格式的)

,可以利用Canvas動态生成圖檔顯示,有興趣的可以試試。

代碼如下:

import QtQuick 
import QtQuick.Particles 

Rectangle {
    //id : root
    width: 
    height: 
    color: "black"
    //[1]
    //實作字的粒子效果 通過Emitter的 MaskShape 實作(圖檔背景要是透明的)
    //
    property url soururl: "qrc:/1.png"
    property var urlstr: "qrc:/%1.png"
    property int num: 
    ParticleSystem {
        x: ;
        y:
        width: 
        height: 
        anchors.centerIn: parent

        ImageParticle {
            source: "qrc:///particleresources/glowdot.png"
            z: 
            anchors.fill: parent
            color: "#336666CC"
            colorVariation: 
        }

        Emitter {
            anchors.fill: parent
            emitRate: 
            lifeSpan: 
            size: 
            clip: true
            endSize: 
            velocity: PointDirection { y: ;  yVariation: }
            shape: MaskShape {
                source: soururl
            }

        }

    }

    Timer {
             interval: ; running: true; repeat: true
             onTriggered: {
                 soururl = urlstr.arg(num);
                 num++;
                 if (num == )
                     num = ;
             }
         }

    //[1]

}
           

繼續閱讀