设为首页收藏本站

仙剑之十里坡

 找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 4203|回复: 9
打印 上一主题 下一主题

RMFLASH

[复制链接]

1008

主题

5

听众

2万

积分

返璞归真

不器用な星の瞬き

会员等级: 10

  • TA的每日心情
    擦汗
    昨天 19:06
  • 签到天数: 1366 天

    [LV.10]以坛为家III

    精华
    2
    积分
    23737
    历练
    3
    声望
    133
    人气
    2542

    转帖之王 金融巨子 黑色羽翼

    单身中……
    帮我摆脱单身吧
    跳转到指定楼层
    1
    发表于 2010-4-18 18:22:28 |只看该作者 |倒序浏览
    1. class String
    2.   
    3.   CP_ACP = 0
    4.   CP_UTF8 = 65001
    5.   
    6.   def u2s
    7.     m2w = Win32API.new("kernel32", "MultiByteToWideChar", "ilpipi", "i")
    8.     w2m = Win32API.new("kernel32", "WideCharToMultiByte", "ilpipipp", "i")
    9.    
    10.     len = m2w.call(CP_UTF8, 0, self, -1, nil, 0)
    11.     buf = "\0" * (len*2)
    12.     m2w.call(CP_UTF8, 0, self, -1, buf, buf.size/2)
    13.    
    14.     len = w2m.call(CP_ACP, 0, buf, -1, nil, 0, nil, nil)
    15.     ret = "\0" * len
    16.     w2m.call(CP_ACP, 0, buf, -1, ret, ret.size, nil, nil)
    17.    
    18.     return ret
    19.   end
    20.   
    21.   def s2u
    22.     m2w = Win32API.new("kernel32", "MultiByteToWideChar", "ilpipi", "i")
    23.     w2m = Win32API.new("kernel32", "WideCharToMultiByte", "ilpipipp", "i")
    24.   
    25.     len = m2w.call(CP_ACP, 0, self, -1, nil, 0);
    26.     buf = "\0" * (len*2)
    27.     m2w.call(CP_ACP, 0, self, -1, buf, buf.size/2);
    28.   
    29.     len = w2m.call(CP_UTF8, 0, buf, -1, nil, 0, nil, nil);
    30.     ret = "\0" * len
    31.     w2m.call(CP_UTF8, 0, buf, -1, ret, ret.size, nil, nil);
    32.      
    33.     return ret
    34.   end

    35.   def s2u!
    36.     self[0, length] = s2u
    37.   end  
    38.   
    39.   def u2s!
    40.     self[0, length] = u2s
    41.   end
    42.   
    43. end

    44. class Bitmap
    45.   
    46.   RtlMoveMemory_pi = Win32API.new('kernel32', 'RtlMoveMemory', 'pii', 'i')
    47.   RtlMoveMemory_ip = Win32API.new('kernel32', 'RtlMoveMemory', 'ipi', 'i')

    48.   def address
    49.     buffer, ad = "xxxx", object_id * 2 + 16
    50.     RtlMoveMemory_pi.call(buffer, ad, 4); ad = buffer.unpack("L")[0] + 8
    51.     RtlMoveMemory_pi.call(buffer, ad, 4); ad = buffer.unpack("L")[0] + 16
    52.     RtlMoveMemory_pi.call(buffer, ad, 4); return buffer.unpack("L")[0]
    53.   end
    54.   
    55. end

    56. class RMFlash

    57.         API_NEW                      = Win32API.new("RMFlash", "_new", "piil", "l")
    58.         API_UPDATE            = Win32API.new("RMFlash", "_update", "l", "v")
    59.         API_FREE              = Win32API.new("RMFlash", "_free", "l", "v")
    60.         API_PLAYING     = Win32API.new("RMFlash", "_is_playing", "l", "i")
    61.         API_PAUSE              = Win32API.new("RMFlash", "_pause", "l", "v")
    62.         API_RESUME            = Win32API.new("RMFlash", "_resume", "l", "v")
    63.         API_BACK              = Win32API.new("RMFlash", "_back", "l", "v")
    64.         API_REWIND            = Win32API.new("RMFlash", "_rewind", "l", "v")
    65.         API_FORWARD            = Win32API.new("RMFlash", "_forward", "l", "v")
    66.         API_CURFRAME          = Win32API.new("RMFlash", "_cur_frame", "l", "i")
    67.         API_TOTALFRAME        = Win32API.new("RMFlash", "_total_frames", "l", "i")
    68.         API_GOTOFRAME          = Win32API.new("RMFlash", "_goto_frame", "li", "v")
    69.         API_GETLOOP                  = Win32API.new("RMFlash", "_get_loop", "l", "i")
    70.         API_SETLOOP                  = Win32API.new("RMFlash", "_set_loop", "li", "v")
    71.         API_CLEARALL          = Win32API.new("RMFlash", "_clear_all", "v", "v")
    72.   API_VALID       = Win32API.new("RMFlash", "_valid", "l", "i")
    73.   API_SENDMSG     = Win32API.new("RMFlash", "_send_message", "liii", "l")
    74.        
    75.   CUR_PATH        = Dir.pwd
    76.   
    77.         def self.get_version

    78.         end

    79.         def self.clear_all
    80.                 API_CLEARALL.call
    81.         end
    82.   
    83.   def self.load(name, width, height, v = nil)
    84.     new("#{CUR_PATH}/#{name}".u2s, width, height, v)
    85.   end
    86.   
    87.   attr_reader   :valid

    88.         def initialize(flash_name, flash_width, flash_height, viewport = nil)
    89.                 @sprite = Sprite.new(viewport)
    90.                 @sprite.bitmap = Bitmap.new(flash_width, flash_height)
    91.                 @value = API_NEW.call(flash_name, flash_width, flash_height, @sprite.bitmap.address)
    92.                 @loop = API_GETLOOP.call(@value) > 0
    93.     @valid = API_VALID.call(@value) > 0
    94.         end

    95.         def viewport
    96.                 @sprite.viewport
    97.         end

    98.         def update
    99.                 API_UPDATE.call(@value)
    100.         end

    101.         def dispose
    102.                 API_FREE.call(@sprite.bitmap.address)
    103.         end

    104.         def playing?
    105.                 API_PLAYING.call(@value) > 0
    106.         end

    107.         def pause
    108.                 API_PAUSE.call(@value)
    109.         end

    110.         def resume
    111.                 API_RESUME.call(@value)
    112.         end

    113.         def back
    114.                 API_BACK.call(@value)
    115.         end

    116.         def rewind
    117.                 API_REWIND.call(@value)
    118.         end

    119.         def forward
    120.                 API_FORWARD.call(@value)
    121.         end

    122.         def current_frame
    123.                 API_CURFRAME.call(@value)
    124.         end

    125.         def total_frames
    126.                 API_TOTALFRAME.call(@value)
    127.         end

    128.         def goto_frame(goal_frame)
    129.                 API_GOTOFRAME.call(@value, goal_frame)
    130.         end

    131.         def x
    132.                 @sprite.x
    133.         end

    134.         def x=(v)
    135.                 @sprite.x = v
    136.         end

    137.         def y
    138.                 @sprite.y
    139.         end

    140.         def y=(v)
    141.                 @sprite.y = v
    142.         end

    143.         def z
    144.                 @sprite.z
    145.         end

    146.         def z=(v)
    147.                 @sprite.z = v
    148.         end

    149.         def width
    150.                 @sprite.bitmap.width
    151.         end

    152.         def height
    153.                 @sprite.bitmap.height
    154.         end

    155.         def loop?
    156.                 @loop
    157.         end

    158.         def loop=(v)
    159.                 if @loop != v
    160.                         @loop = v
    161.                         API_SETLOOP.call(@value, v)
    162.                 end
    163.         end
    164.   
    165.   def msg_to_flash(msg, wParam, lParam)
    166.     return API_SENDMSG.call(@value, msg, wParam, lParam)
    167.   end
    168.   
    169.   #  例
    170.   WM_MOUSEMOVE  = 0x0200
    171.   
    172.   def make_long(a, b)
    173.     return (a & 0xffff ) | (b & 0xffff) << 16
    174.   end
    175.   
    176.   def on_mouse_move(x, y)
    177.     return msg_to_flash(WM_MOUSEMOVE, 0, make_long(x, y))
    178.   end

    179. end

    180. module Kernel

    181.   alias origin_exit exit unless method_defined? :exit
    182.   
    183.   def exit(*args)
    184.     RMFlash.clear_all
    185.     origin_exit(*args)
    186.   end
    187.   
    188. end
    复制代码
    调用方法:
    1. fls = RMFlash.load("video/你想要显示的FLASH",640,480)
    2. fls.x = 0
    3. fls.y = 0
    4. fls.loop = 1
    5. while true
    6.         Graphics.update
    7.         Input.update
    8.         fls.update
    9.         break if !fls.playing?
    10.         break if Input.trigger?(Input::B)
    11. end
    12. fls.dispose
    复制代码
    另外不要忘记DLL和OCX!

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?加入我们

    分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    转播转播0 分享淘帖0 分享分享0 收藏收藏0
    夜空の星に 捧げた願いの
    欠片積めて 爆誕する奇跡

    160

    主题

    6

    听众

    1万

    积分

    超级版主

    蜀山剑侠银行行长

    超级版主

  • TA的每日心情
    开心
    4 天前
  • 签到天数: 859 天

    [LV.10]以坛为家III

    精华
    3
    积分
    13202
    历练
    7
    声望
    24
    人气
    2364

    金融巨子 润泽万物 坚若磐石

    单身中……
    帮我摆脱单身吧
    2
    发表于 2010-4-18 18:23:16 |只看该作者
    喂!你的动画还是我给做的。
    于是饮酒乐甚,扣舷而歌之。歌曰:“桂棹兮兰桨,击空明兮溯流光。残阳阳兮是羊羊,吾乃最爱南宫煌。”
    回复

    使用道具 举报

    1082

    主题

    15

    听众

    1万

    积分

    管理员

    魔尊

    管理员

  • TA的每日心情
    无聊
    2024-4-22 00:16
  • 签到天数: 2281 天

    [LV.Master]伴坛终老

    精华
    3
    积分
    18263
    历练
    9
    声望
    342
    人气
    6122

    出神入化 润泽万物 金融巨子 神仙眷侣

    佛珠
    幸福:605℃
    3
    发表于 2010-4-18 18:24:13 |只看该作者
    有兴趣可以研究下RMXP调用BIK的问题 呵呵
    回复

    使用道具 举报

    1008

    主题

    5

    听众

    2万

    积分

    返璞归真

    不器用な星の瞬き

    会员等级: 10

  • TA的每日心情
    擦汗
    昨天 19:06
  • 签到天数: 1366 天

    [LV.10]以坛为家III

    精华
    2
    积分
    23737
    历练
    3
    声望
    133
    人气
    2542

    转帖之王 金融巨子 黑色羽翼

    单身中……
    帮我摆脱单身吧
    4
    发表于 2010-4-18 18:24:43 |只看该作者
    BIK……
    我看都看不了
    夜空の星に 捧げた願いの
    欠片積めて 爆誕する奇跡
    回复

    使用道具 举报

    1082

    主题

    15

    听众

    1万

    积分

    管理员

    魔尊

    管理员

  • TA的每日心情
    无聊
    2024-4-22 00:16
  • 签到天数: 2281 天

    [LV.Master]伴坛终老

    精华
    3
    积分
    18263
    历练
    9
    声望
    342
    人气
    6122

    出神入化 润泽万物 金融巨子 神仙眷侣

    佛珠
    幸福:605℃
    5
    发表于 2010-4-18 18:26:41 |只看该作者
    有个叫RADTools的东西 是个不错的bik播放软件 可以去试试
    回复

    使用道具 举报

    160

    主题

    6

    听众

    1万

    积分

    超级版主

    蜀山剑侠银行行长

    超级版主

  • TA的每日心情
    开心
    4 天前
  • 签到天数: 859 天

    [LV.10]以坛为家III

    精华
    3
    积分
    13202
    历练
    7
    声望
    24
    人气
    2364

    金融巨子 润泽万物 坚若磐石

    单身中……
    帮我摆脱单身吧
    6
    发表于 2010-4-19 22:41:47 |只看该作者
    哦?是吗?我下下来看看。
    于是饮酒乐甚,扣舷而歌之。歌曰:“桂棹兮兰桨,击空明兮溯流光。残阳阳兮是羊羊,吾乃最爱南宫煌。”
    回复

    使用道具 举报

    157

    主题

    2

    听众

    5946

    积分

    名扬四海

    挺尸中请勿打扰。。。。。

    会员等级: 7

  • TA的每日心情
    无聊
    2011-8-13 00:03
  • 签到天数: 256 天

    [LV.8]以坛为家I

    精华
    1
    积分
    5946
    历练
    4
    声望
    68
    人气
    68

    出神入化

    单身中……
    帮我摆脱单身吧
    7
    发表于 2010-6-26 13:53:03 |只看该作者
    附件怎么用啊
    心情不好,靠近者,死
    回复

    使用道具 举报

    3

    主题

    1

    听众

    87

    积分

    略有小成

    会员等级: 2

    该用户从未签到

    精华
    0
    积分
    87
    历练
    0
    声望
    2
    人气
    23
    单身中……
    帮我摆脱单身吧
    8
    发表于 2010-8-16 16:47:36 |只看该作者
    哇塞,俄没钱啊
    你灰色头像不会在跳动,哪怕是一句简单的问候
    回复

    使用道具 举报

    64

    主题

    2

    听众

    1990

    积分

    仗剑行侠

    会员等级: 5

  • TA的每日心情
    无聊
    2010-10-26 21:05
  • 签到天数: 35 天

    [LV.5]常住仙友I

    精华
    0
    积分
    1990
    历练
    0
    声望
    2
    人气
    100
    单身中……
    帮我摆脱单身吧
    9
    发表于 2010-8-16 18:39:20 |只看该作者
    这玩意儿咋用来者
    回复

    使用道具 举报

    1008

    主题

    5

    听众

    2万

    积分

    返璞归真

    不器用な星の瞬き

    会员等级: 10

  • TA的每日心情
    擦汗
    昨天 19:06
  • 签到天数: 1366 天

    [LV.10]以坛为家III

    精华
    2
    积分
    23737
    历练
    3
    声望
    133
    人气
    2542

    转帖之王 金融巨子 黑色羽翼

    单身中……
    帮我摆脱单身吧
    10
    发表于 2010-8-16 18:54:18 |只看该作者
    和别的脚本一个用法
    夜空の星に 捧げた願いの
    欠片積めて 爆誕する奇跡
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入我们

    手机版|Archiver|仙剑之十里坡 ( 苏ICP备11022766号 )  

    GMT+8, 2024-5-5 01:09 , Processed in 0.563706 second(s), 65 queries .

    Powered by Discuz! X2.5

    © 2001-2012 Comsenz Inc.

    回顶部