spacemeowx2 / flash-emu

Run flascc in js
MIT License
20 stars 1 forks source link

能否不通过std的方式输出变量? #5

Closed Fangzzzjjj closed 6 years ago

Fangzzzjjj commented 6 years ago

const fs = require('fs') const util = require('util') const readFile = util.promisify(fs.readFile) const FlashEmu = require('flash-emu') FlashEmu.PLAYERGLOBAL = 'node_modules/flash-emu/lib/playerglobal.abc' FlashEmu.BUILTIN = 'node_modules/flash-emu/lib/builtin.abc' const emu = new FlashEmu({ async readFile (filename) { const buf = await readFile(filename) return new Uint8Array(buf).buffer } }) const vm = emu.getVM() emu.runSWF('example.swf', false).then(() => { const CModule = vm.getProxy(emu.getProperty('sample.mp', 'CModule')) CModule.callProperty('startAsync') let somePtr = CModule.callProperty('malloc', 4) console.log('ptr:', somePtr) CModule.callProperty('free', somePtr) }).catch(e => console.error(e)) 比如demo中想获取Ptr的值

spacemeowx2 commented 6 years ago

没看懂问题

Fangzzzjjj commented 6 years ago

后续我想对somePtr进行操作,希望得到somePtr的值。 emu.runSWF('example.swf', false).then(() => { const CModule = vm.getProxy(emu.getProperty('sample.mp', 'CModule')) CModule.callProperty('startAsync') let somePtr = CModule.callProperty('malloc', 4) console.log('ptr:', somePtr) CModule.callProperty('free', somePtr) }).catch(e => console.error(e)) 比如类似在这之中return somePtr

spacemeowx2 commented 6 years ago

那你在then里操作就行了,是普通的Promise

Fangzzzjjj commented 6 years ago

明白了!谢谢!