小编Sea*_*ess的帖子

用于自定义动画控件的框架/库

我们正在制作一个应用程序,其主要目的是显示数据,但我们希望以丰富的方式这样做.我们的设计包括几个定制控件.

例如,一个控件将是用户可以旋转以选择一天中的时间的轮子.你会看到一个完整的圆圈 - 一个磁盘 - 它的时间值就像中心的辐条一样.它需要围绕中心旋转.所以 - 它不像苹果的选择器.它需要很好地制作动画.

您建议使用哪个库/框架?石英?OpenGL的?是否有人们使用的第三方框架使这种事情变得更简单?

opengl iphone cocoa-touch quartz-graphics

2
推荐指数
1
解决办法
115
查看次数

应用程序随机停止接收按键(CGEventTaps)

所以,我浪费了很多时间来创建这个非常酷的键盘宏应用程序.它工作得很好,唯一的问题是,几分钟后,它就会停止工作.当我按下一个键时,它就不再被调用了.

我无法锁定它,但它总是需要至少30秒才能发生.通常不会发生几分钟.那时我会拦截并发出许多事件.应用程序在发生时仍在运行.

这是我正在做的事情的一个例子

 -(void)listen {

      CFMachPortRef downEventTap = CGEventTapCreate(kCGHIDEventTap,kCGHeadInsertEventTap,kCGEventTapOptionDefault,CGEventMaskBit(kCGEventKeyDown),&onKeyDown,self);  
      downSourceRef = CFMachPortCreateRunLoopSource(NULL, downEventTap, 0);
      CFRelease(downEventTap);
      CFRunLoopAddSource(CFRunLoopGetCurrent(), downSourceRef, kCFRunLoopDefaultMode);
      CFRelease(downSourceRef)
}
Run Code Online (Sandbox Code Playgroud)

和处理程序 -

CGEventRef onKeyDown(CGEventTapProxy proxy, CGEventType type, CGEventRef event, void *refcon) {
    NSLog(@"DOWN (%i)", CGEventGetIntegerValueField(event, kCGKeyboardEventKeycode)); 
    // When it matches, I return CGEventCreate(NULL) to stop the event
    return event;
}
Run Code Online (Sandbox Code Playgroud)

另请注意,当我拦截一个事件(并返回该事件CGEventCreate(NULL))时,我通常会使用以下代码发出一个或多个我自己的按键.请注意,KeyCmd等只是常规常量的快捷方式.

 - (void)sendKey:(KeyCode)code cmd:(BOOL)cmd alt:(BOOL)alt ctl:(BOOL)ctl shift:(BOOL)shift {

    CGEventFlags flags = 0;

    if (cmd) flags = flags | KeyCmd;
    if (alt) flags = flags | KeyAlt;
    if (ctl) …
Run Code Online (Sandbox Code Playgroud)

macos cocoa macos-carbon objective-c cgeventtap

2
推荐指数
1
解决办法
689
查看次数

Haskell模糊类型变量 - 我迷路了?

所以,我的想法是,我将使用以下代码在haskell中运行MongoDB查询

我想把它变成这个,这样我就可以假装run函数是一个"db",就像普通的mongo驱动程序一样.

db <- connectDb "127.0.0.1" "testdb" 
db $ delete $ select [] "mycollection"
Run Code Online (Sandbox Code Playgroud)

这是我写的功能:

mdb :: (MonadIO m) => String -> String -> IO (Action m a -> m (Either Failure a))
mdb hostname dbname = do
    pipe <- runIOE $ connect $ host hostname
    return (access pipe master (pack …
Run Code Online (Sandbox Code Playgroud)

haskell mongodb

2
推荐指数
1
解决办法
365
查看次数

如何使用ReaderT转换Happstack的ServerPart响应?

这是我第一次玩Monad变形金刚.这是一个简单的快乐堆栈应用程序.

{-# LANGUAGE OverloadedStrings #-}

import Happstack.Lite 
import qualified Data.ByteString.Lazy.Char8 as L

main :: IO ()
main = do
    serve Nothing hello 

hello :: ServerPart Response
hello = do
    ok $ toResponse ("Hello" :: L.ByteString)
Run Code Online (Sandbox Code Playgroud)

我希望能够更改你好,以便它可以使用读取一些全局配置数据ReaderT.让我们说配置是一个字符串,以保持简单

type NewMonad = ReaderT L.ByteString (ServerPartT IO) 
runNewMonad :: NewMonad a -> L.ByteString -> ServerPart a
runNewMonad k c = runReaderT k c
Run Code Online (Sandbox Code Playgroud)

如何更改问候语以便它可以使用ask?我不确定那种类型.NewMonad Response是不对的,因为ok返回一个ServerPart Response.

如何更改主要以便serve有效?它期望一个ServerPart Response.

haskell

2
推荐指数
1
解决办法
270
查看次数

用于滚动窗格的HTML 5 Canvas vs Divs

我正在制作电视指南.有关使用Canvas的示例实现,请参见http://i.tv/guide.

我需要制作很多代表每个节目的小盒子.我需要能够在垂直(通道)和水平(时间)上滚动它们.为了使用Canvas,我的理解是实现滚动的唯一方法是拦截正确的事件,并使用新的偏移量平滑地重绘画布每秒多次.

如果我要使用div,我可以在它上面滚动滚动条并让它正常滚动.我可以将它们定位一次,让滚动移动它们,而不是重新计算它们的新偏移量.

我应该选择哪种项目?如果我使用divs会太慢吗?一些阵容有500个频道.我想一次显示最多4个小时.

谢谢!

html javascript html5 canvas

1
推荐指数
1
解决办法
1970
查看次数

仆人组合子不会落入后续的替代方案中

我制作了一个自定义组合器:MultipartUpload但是当我使用它时,它最终不仅应用我使用它的路线,而且还应用于所有后续路线:

例如,在以下API中,MultipartUpload在第二个和第三个路径上运行.因此,如果我调用第3个,它将返回错误File upload required.我只希望它适用于第二个.怎么样?

type ModelAPI =
  "models" :>
    (    ProjectKey :> Get '[JSON] [Model]
    :<|> ProjectKey :> MultipartUpload :> Post '[JSON] Model
    :<|> ProjectKey :> Capture "modelId" ID :> Get '[JSON] Model
    )
Run Code Online (Sandbox Code Playgroud)

这是如何MultipartUpload定义的.

{-# LANGUAGE DataKinds #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeSynonymInstances #-}
module Servant.Multipart
  ( MultipartUpload
  , FileInfo(..)
  ) where

import …
Run Code Online (Sandbox Code Playgroud)

rest haskell servant

1
推荐指数
1
解决办法
129
查看次数

带有 SVG 的徽标中的动画半圆

我想在 SVG 中制作这个图形。我可以使用<animate>标签,并且可以使用 javascript 操作 SVG 文档。如果可能的话,我更愿意在 SVG 中完成这一切。

在此处输入图片说明

html javascript svg svg-animate

0
推荐指数
1
解决办法
452
查看次数