小编Bri*_*kel的帖子

按下时将视觉效果添加到SKSpriteNode

我正在使用Xcode 6中的第一个SpriteKit应用程序,在Swift中编码.现在我从透明的png文件中制作了一些漂亮的按钮.但我想按下按钮时显示视觉效果.

我现在如何显示静态按钮的示例:

let playButton = Button(imageNamed:"playButton")
playButton.position = CGPointMake(self.size.width/2, self.size.height/2 - playButton.size.height * 2.5 - displacement)
self.sharedInstance.addChildFadeIn(playButton, target: self)
Run Code Online (Sandbox Code Playgroud)

任何效果都足够了,可能是脉冲效应,或按下时发光.我搜索过,但我在Swift中找不到任何东西.

编辑:更多信息

    class Button: SKSpriteNode {  
        init(imageNamed: String) {
            let texture = SKTexture(imageNamed: imageNamed)
            // have to call the designated initializer for SKSpriteNode
            super.init(texture: texture, color: nil, size: texture.size())
        }
        override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
            self.runAction(SKAction.scaleTo(1.3, duration: kButtonFadingSpeed))
        }    
        override func touchesMoved(touches: NSSet, withEvent event: UIEvent) {
            self.runAction(SKAction.scaleTo(1.3, duration: kButtonFadingSpeed))
        }
         override func touchesEnded(touches: NSSet, withEvent event: …
Run Code Online (Sandbox Code Playgroud)

ios sprite-kit skspritenode swift

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

Android Emulator中的HTTP代理适用于浏览器,而不适用于WebView

我的开发环境落后于HTTP代理.在Android模拟器中,我可以在wifi首选项中设置我的代理地址和凭据.然后,当我在浏览器中查看该页面时,系统会提示我重新输入我指定的主机的凭据.不知道为什么我必须再次输入它们,但它可以工作,我可以查看该页面.

然后我有一个带有WebView的应用程序加载相同的页面.该应用程序具有Internet权限:

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
Run Code Online (Sandbox Code Playgroud)

并支持平台通知:

WebView.enablePlatformNotifications();
Run Code Online (Sandbox Code Playgroud)

但是......当我尝试查看页面时,我收到代理的错误页面,说明没有正确输入用户名和密码.这告诉我应用程序正在成功读取代理地址,但是浏览器没有读取凭据.然后,在完成请求之前,它无法显示与浏览器请求凭据相同的对话框.

有没有办法启用此对话框(内置?)或手动指定代理详细信息的方法?

android

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

Object.keys(obj)如何工作?

根据MDN描述Object.keys:

Object.keys返回一个数组,其元素是与直接在对象上找到的可枚举属性相对应的字符串.属性的顺序与手动循环对象的属性所给出的顺序相同.

它包括以下示例:

// array like object with random key ordering
var an_obj = { 100: "a", 2: "b", 7: "c"};

alert(Object.keys(an_obj)); // will alert "2, 7, 100"
Run Code Online (Sandbox Code Playgroud)

但是根据定义,键应该100, 2, 7按照它们插入对象的顺序打印,而不是2, 7, 100.

请让我知道,密钥的排序如何发生Object.key.

javascript

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

UIScrollView和 - [NSRunLoop runUntilDate:]

我正在开发一个在应用程序的主线程中运行的UI测试框架(KIF-next).基本过程是:

  1. 执行一些测试逻辑.
  2. 通过旋转主循环0.1秒runUntilDate:.
  3. 重复.

这种方法效果非常好.您可以模拟点击事件,您可以在滑块刷卡,观看警示的意见动画进出,scrollToRowAtIndexPath :. 除了一个特定的场景,拖动滚动视图,一切正常.

您可以上下拖动滚动视图,但是当您松开手指时,没有任何反应.此外,触摸事件不再被其他视图识别,您可以做的就是拖动滚动视图.

如果执行模式结束,程序退出,滚动视图将尽自己的弹跳/减速,但这不是一种选择,因为我的OCUnit执行顺序执行我的工作.

我的问题:为什么会发生这种情况以及可以采取哪些措施来纠正它?

我有两个演示:

演示1:阻止整个应用程序

使用此代码,您可以测试您的应用程序并确认一切正常,直到您的滚动.在那之后,没有任何作用.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    double delayInSeconds = 2.0;
    dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
    dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
        while (YES) {
            [[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.25]];
        }
    });
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

演示2:暂时阻止

如果您连线该代码到一个按钮,你会看到同样的效果如上,如果你的第一次轻触按钮,然后滚动.计时器完成后,您将看到您的应用程序恢复生机.

- (IBAction)spinButtonClicked:(id)sender
{
    [[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:5]];
}
Run Code Online (Sandbox Code Playgroud)

uikit nsrunloop ios

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

标签 统计

ios ×2

android ×1

javascript ×1

nsrunloop ×1

skspritenode ×1

sprite-kit ×1

swift ×1

uikit ×1