PLUS实现动态精灵动画

By admin at 2020-08-06 • 3人收藏 • 1784人看过

感谢: 撒旦微笑 分享源码

TIM图片20200806184625.gif

动态精灵动画

//精灵动画
import win.ui;
/*DSG{{*/
var winform = win.form(text="鼠标放到图像上显示动画";right=724;bottom=224;bgcolor=16777215)
winform.add(
plus1={cls="plus";left=26;top=62;right=106;bottom=142;notify=1;z=1};
plus2={cls="plus";left=143;top=62;right=223;bottom=142;notify=1;z=2};
plus3={cls="plus";left=259;top=62;right=339;bottom=142;notify=1;z=3};
plus4={cls="plus";left=376;top=62;right=456;bottom=142;notify=1;z=4};
plus5={cls="plus";left=492;top=62;right=572;bottom=142;notify=1;z=5};
plus6={cls="plus";left=609;top=62;right=689;bottom=142;notify=1;z=6}
)
/*}}*/

var imgList = {
    "https://img.t.sinajs.cn/t6/style/images/common/steps_att_sad.png";
    "https://img.t.sinajs.cn/t6/style/images/common/steps_att_angry.png";
    "https://img.t.sinajs.cn/t6/style/images/common/steps_att_surprised.png";
    "https://img.t.sinajs.cn/t6/style/images/common/steps_att_happy.png";
    "https://img.t.sinajs.cn/t6/style/images/common/steps_att_like.png";
}

var createSpirit = function(plus,img,col,row=1,interval){
        import inet.http;
        import gdip.bitmap;
        col = tonumber(col);
        row = tonumber(row);
        interval = tonumber(interval);
        var bitmap = gdip.bitmap(img);
        if(!bitmap or !col or !row){
            return ; 
        }
        if(!interval){
            interval = 1000/(col*row);
        }
        var spirit = bitmap.split(col,row);
        plus.foreground = spirit[1];
        plus.foreRepeat = "scale"
        plus.onAnimation = function(state){
            state = state+1;
            if(state>col*row){
                state = 1
            }
            plus.foreground = spirit[state]
            return state;
        }
        plus.onStateChange = function(){
            if( plus.state.hover ){
                plus.startAnimation(interval,0) 
            }
            else {
                plus.stopAnimation()
                plus.foreground = spirit[1];
            }
        }	
}

for(k,v in imgList){
    createSpirit(winform["plus"++k],v,20)
}
var url = "https://img-ask.csdn.net/upload/202005/13/1589349016_808127.png"
createSpirit(winform.plus6,url,6,4,50)
winform.show() 
win.loopMessage();


3 个回复 | 最后更新于 2020-08-15
2020-08-13   #1

import win.ui;

/*DSG{{*/

var winform = win.form(text="aardio form";right=759;bottom=469)

winform.add(

custom={cls="custom";text="自定义控件";left=29;top=17;right=751;bottom=461;ah=1;aw=1;z=1}

)

/*}}*/


import com

import winex

import win.debounce

winex.waitDelay=500

var wps=com.CreateObject("KWPS.Application"); 

var book = wps.Documents.Add() //创建工作簿

var  App_hwnd=  winex.waitMainWnd("OpusApp","WPS Office")

//嵌入 

win.setParent(App_hwnd,winform.custom.hwnd)

var x,y,w,h=win.getPos(winform.custom.hwnd)

win.setPos(App_hwnd,0,0,w,h)

 

win.modifyStyle(winform.custom.hwnd,,0x2000000/*_WS_CLIPCHILDREN*/)

//嵌入外部程序,一定要附加输入队列,不然输入有关的功能就会乱套了

var tid = win.getThreadProcessId(App_hwnd)

::User32.AttachThreadInput( ..thread.getId(),tid,true); 

wps.Visible=true


winform.custom.adjust = function( cx,cy,wParam ) {

if !App_hwnd return;

win.debounce(win.setPos(App_hwnd,0,0,cx,cy)) 

winform.custom.redraw() 

};  

winform.show();

win.loopMessage();



/*

没有权限,只好发在这里

请问,在嵌入wps的时候,多了一个 透明的边框,这个怎么消除它?

捕获.PNG

*/

2020-08-15   #2

回复#1 @chygmm :

你首先要确认下这个框框是谁的,可以用彗星助手看看,顺便用这个工具试下能不能隐藏这个框框,如果能就可以在代码里设置框框的句柄hwnd隐藏就好

2020-08-15   #3

回复#2 @笑口常 :

是wps的,类名QWidget ,可以获得句柄,win.show(句柄,false)隐藏不了,使用setPos也移动不了。它是wps最外面嵌套的一个透明框。

登录后方可回帖

登 录
信息栏
 私人小站

本站域名

ChengXu.XYZ

投诉联系:  popdes@126.com



快速上位机开发学习,本站主要记录了学习过程中遇到的问题和解决办法及上位机代码分享

这里主要专注于学习交流和经验分享.
纯私人站,当笔记本用的,学到哪写到哪.
如果侵权,联系 Popdes@126.com

友情链接
Aardio官方
Aardio资源网


才仁机械


网站地图SiteMap

Loading...