PLUS实现动态精灵动画

By admin at 2020-08-06 • 0人收藏 • 307人看过

感谢: 撒旦微笑 分享源码

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最外面嵌套的一个透明框。

登录后方可回帖

登 录
信息栏
本站永久域名:HtmLayout.Cn
纯私人站,当笔记本用的,学到哪写到哪,目前正在学aardio+halcon机器视觉.
Sciter中文在线文档Sciter在线学习文档
本 站 主 站:Stm32cube中文网
Aardio 官方站:Aardio官方
Aardio最新功能:Aardio官方更新日志
aardio在线手册Aardio在线手册
C大Aardio论坛:Aar爱好者论坛
简码教程网:简码编程
AARDIO语言QQ群:70517368
赞助商:才仁机械
下载站:非凡软件站
Loading...