本文整理汇总了Golang中github.com/gopherjs/gopherjs/js.Object.Invoke方法的典型用法代码示例。如果您正苦于以下问题:Golang Object.Invoke方法的具体用法?Golang Object.Invoke怎么用?Golang Object.Invoke使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/gopherjs/gopherjs/js.Object
的用法示例。
在下文中一共展示了Object.Invoke方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: LoadTrack
func (c *controllerWrapper) LoadTrack(ident string, gids []string, cb *js.Object) {
go func() {
err := c.controller.LoadTrack(ident, gids)
if err != nil {
cb.Invoke("Hello failed: " + err.Error())
}
}()
}
示例2: SendVolume
func (c *controllerWrapper) SendVolume(ident string, volume int, cb *js.Object) {
go func() {
err := c.controller.SendVolume(ident, volume)
if err != nil {
cb.Invoke("Hello failed: " + err.Error())
}
}()
}
示例3: SendHello
func (c *controllerWrapper) SendHello(cb *js.Object) {
go func() {
err := c.controller.SendHello()
if err != nil {
cb.Invoke("Hello failed: " + err.Error())
}
}()
}
示例4: loginSaved
func loginSaved(username, authData string, appkey string, cb *js.Object) {
go func() {
key, _ := base64.StdEncoding.DecodeString(appkey)
data, _ := base64.StdEncoding.DecodeString(authData)
conn, _ := MakeConn()
sController, err := spotcontrol.LoginConnectionSaved(username, data, key, "spotcontrol", conn)
if err != nil {
cb.Invoke(nil, "", "login failed")
}
c := &controllerWrapper{controller: sController}
cb.Invoke(js.MakeWrapper(c), authData, nil)
}()
}
示例5: login
func login(username, password, appkey string, cb *js.Object) {
go func() {
key, _ := base64.StdEncoding.DecodeString(appkey)
conn, _ := MakeConn()
sController, err := spotcontrol.LoginConnection(username, password, key, "spotcontrol", conn)
if err != nil {
cb.Invoke(nil, "", "login failed")
} else {
authData := sController.SavedCredentials
c := &controllerWrapper{controller: sController}
cb.Invoke(js.MakeWrapper(c), base64.StdEncoding.EncodeToString(authData), nil)
}
}()
}
示例6: parsePSD
func parsePSD(in *js.Object, progress *js.Object, complete *js.Object, failed *js.Object) {
go func() {
defer func() {
if err := recover(); err != nil {
failed.Invoke(fmt.Sprint("uncaught exception occurred on during parsing PSD: ", err))
}
}()
r, err := newReaderFromJSObject(in)
if err != nil {
failed.Invoke(err.Error())
return
}
canvasMap := map[int][2]*js.Object{}
root, err := parse(r, func(prog float64) {
progress.Invoke(prog)
}, func(seqID int, l *psd.Layer) {
var canvas, mask *js.Object
if l.HasImage() && !l.Rect.Empty() {
var a []byte
if ach, ok := l.Channel[-1]; ok {
a = ach.Data
}
canvas = createImageCanvas(
l.Rect.Dx(),
l.Rect.Dy(),
l.Channel[0].Data,
l.Channel[1].Data,
l.Channel[2].Data,
a,
)
}
if m, ok := l.Channel[-2]; ok && l.Mask.Enabled() && !l.Mask.Rect.Empty() {
mask = createMaskCanvas(l.Mask.Rect.Dx(), l.Mask.Rect.Dy(), m.Data, l.Mask.DefaultColor)
}
canvasMap[seqID] = [2]*js.Object{canvas, mask}
})
if err != nil {
failed.Invoke(err.Error())
return
}
mapCanvasGo(canvasMap, root)
complete.Invoke(root)
}()
}
示例7: parsePSDInWorker
func parsePSDInWorker(in *js.Object, progress *js.Object, complete *js.Object, failed *js.Object) {
script := js.Global.Get("document").Call("getElementById", "psdgo")
if !script.Bool() {
panic("id=psdgo not found")
}
worker := js.Global.Get("Worker").New(script.Get("src"))
script.Set("psdgo", worker)
canvasMap := map[int][2]*js.Object{}
worker.Set("onmessage", func(e *js.Object) {
data := e.Get("data")
switch data.Get("type").String() {
case "makeCanvas":
var canvas, mask *js.Object
if w, h := data.Get("w").Int(), data.Get("h").Int(); w*h > 0 {
r := js.Global.Get("Uint8Array").New(data.Get("r")).Interface().([]byte)
g := js.Global.Get("Uint8Array").New(data.Get("g")).Interface().([]byte)
b := js.Global.Get("Uint8Array").New(data.Get("b")).Interface().([]byte)
var a []byte
if aab := data.Get("a"); aab.Bool() {
a = js.Global.Get("Uint8Array").New(aab).Interface().([]byte)
}
canvas = createImageCanvas(w, h, r, g, b, a)
}
if m := data.Get("m"); m.Bool() {
mask = createMaskCanvas(
data.Get("mw").Int(), data.Get("mh").Int(),
js.Global.Get("Uint8Array").New(m).Interface().([]byte),
data.Get("mc").Int(),
)
}
canvasMap[data.Get("id").Int()] = [2]*js.Object{canvas, mask}
case "progress":
progress.Invoke(data.Get("progress"))
case "error":
failed.Invoke(data.Get("error"))
case "complete":
root := data.Get("root")
mapCanvasJS(canvasMap, root)
complete.Invoke(root)
}
})
if jsbuiltin.InstanceOf(in, js.Global.Get("ArrayBuffer")) {
worker.Call("postMessage", js.M{
"input": in,
}, js.S{in})
} else {
worker.Call("postMessage", js.M{"input": in})
}
}
示例8: jsCallback
func jsCallback(f *js.Object) Callback {
if f == nil || f == js.Undefined {
return nil
}
return func(val interface{}) interface{} { return f.Invoke(val) }
}