小编Ale*_*yne的帖子

在孩子中反转父母的旋转,所以孩子在世界中看起来没有旋转

在 THREE.js 场景中,我有一个旋转的父对象。这个父级的子级应该在位置上锁定到他们父级的旋转,但是他们自己的旋转需要是独立的,而不是从父级继承。

一个简单的例子是让孩子们总是面对镜头。

我的尝试是“反转”父级在子级中的旋转。那是:

# render loop
render = ->
  requestAnimationFrame(render)

  # Rotate the parent
  @parent.rotation.x += 0.01
  @parent.rotation.z += 0.02

  # Attempt to invert rotation of the parent, and fail :(
  for child in @children
    child.rotation.x = -@parent.rotation.x
    child.rotation.z = -@parent.rotation.z
Run Code Online (Sandbox Code Playgroud)

这种天真的尝试的结果就在这里。黄色的小平面是灰色立方体的孩子,它们以我意想不到的方式旋转......

http://jsfiddle.net/b6jgS/

我想要的是这些平面始终是完美的正方形,随着立方体的旋转而移动,但它们的旋转锁定到世界,而不是父级。

那么我将如何撤消父级在子级中的旋转?我在这里错过了什么疯狂的数学?

我知道我可以在这个例子中使用点精灵,但我有更复杂的需求,最终点精灵不会做。所以我需要想办法用一个真正的 3D 对象来做到这一点。


编辑:确实适用于每个轴。如果父级只在 X 上旋转,我可以在子级的 X 旋转上反转它,就像我想要的那样。只有 Z 相同。但是,如果我开始变化,然后将 X 和 Z 都反转,那么它就会变得松散。

3d webgl coffeescript three.js

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

Jade模板如何使用客户端全局变量?

假设我打开了一个浏览器,并在JavaScript中声明了一个全局变量.

window.myGlobalVar = 'Hello!';
Run Code Online (Sandbox Code Playgroud)

然后我为使用该变量的客户端渲染编译玉模板.

.foo= myGobalVar
Run Code Online (Sandbox Code Playgroud)

我编译的是这样的:

jade.compile('.foo= myGobalVar', {
  client: true,
  compileDebug: false
}).toString()
Run Code Online (Sandbox Code Playgroud)

这产生了这个模板功能:

function anonymous(locals) {
    var buf = [];
    var locals_ = (locals || {}),
        myGobalVar = locals_.myGobalVar;
    jade.indent = [];
    buf.push("\n<div class=\"foo\">"
             + (jade.escape(null == (jade.interp = myGobalVar) ? "" : jade.interp))
             + "</div>");;
    return buf.join("");
}
Run Code Online (Sandbox Code Playgroud)

哪个跑,会产生:

<div class="foo">undefined</div>
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,jade编译器注意到我使用了一个变量,并强制它成为局部变量via myGobalVar = locals_.myGobalVar;,这会影响我实际想要使用的全局变量.

所以我尝试引用window.myGlobalVar和玉,然后只是阴影window.

为什么不直接传递我想要使用的每个全局?那么在运行时我不确定需要什么全局变量.我有几十个全局构造函数并明确地传递它们将需要相当重构.

那么如何以允许引用glbal varaibles的方式编译客户端jade模板呢?


更新:

我有点成功.

for (key in window) {
  if (localsObject[key] == null) …
Run Code Online (Sandbox Code Playgroud)

javascript pug

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

永久忽略警告

我有一个项目,编译了一些警告.这是一个使用NSDate上的一些方法的iPhone项目,它们似乎不是iPhone SDK的标题,但是完美无缺地工作.当我调用这些方法时,我收到如下警告:

NSDate警告http://beautifulpixel.com/assets/NSDate_Warnings-20090215-235727.png

那么我如何永久地静音警告,以告诉XCode"它没关系,真的."

或者我该如何更正警告?这段代码在设备上运行良好,Apple已经批准了一个使用这些相同方法的应用程序,所以我当然可以让XCode了解这些方法确实存在.

iphone xcode cocoa cocoa-touch objective-c

5
推荐指数
2
解决办法
1056
查看次数

防止在Android WebView中自动链接电子邮件和URL

我有一个WebView可能包含似乎正在"自动链接"的数据.看起来像电子邮件地址的东西正在变得可点击,即使它现在在<a>标签内或具有onclick属性.如何禁用此自动链接?

我看过WebView文档以及WebSettings文档,但似乎没有看到任何提到这种行为的东西.

替代文字http://beautifulpixel.com/assets/5554_Fast-20100706-110228.png

android webview

5
推荐指数
2
解决办法
2973
查看次数

检测UIWebView中的JavaScript错误

可能重复:
我的iPhone Objective-C代码如何在UIWebView中收到Javascript错误的通知?

我遇到了一个非常烦人的问题,UIWebView在iPhone应用程序中开发javascript .如果javascript中存在错误,它将以静默方式失败并停止执行正在运行的函数.并且在桌面浏览器中不会发生一些错误,所以一切都很好.然后我在iPhone上运行它并且因为功能在中途瘫痪而发生了巨大的失败,并且不知道为什么.然后,我慢慢地,有条不紊地注释掉各种代码行,直到没有发生灾难性故障,以便查明有问题的代码行.

这很糟糕.

那么有什么方法UIWebView可以记录或报告任何javascript错误?他们显然正在发生,我只是不知道为什么或如何,这让我的生活变得艰难.

javascript iphone xcode objective-c uiwebview

5
推荐指数
0
解决办法
2万
查看次数

jQuery:实时事件并查询元素是否响应事件

我想问一个元素是否会响应实时事件,而不会实际触发该事件.

HTML

<div id="foo">Click me!</div>
Run Code Online (Sandbox Code Playgroud)

JS

$('#foo').live('mousedown', function() {
  console.log('triggered mousedown event');
}

if ($('#foo').__willRespondToLiveEvent__('mousedown')) {
  console.log('#foo is wired up properly');
}
Run Code Online (Sandbox Code Playgroud)

这是一个有点简单和人为的例子,但我正在寻找一个实际适用于__willRespondToLiveEvent__伪代码的替代品.

是否有jQuery在没有实际触发事件的情况下咳出这些信息?

javascript jquery events javascript-events

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

理解Javascript调用函数和返回函数但稍后执行它之间的区别

我想明白之间的差别foo.bar(),并var fn = foo.bar; fn();

我把一个小例子放在一起,但我不完全理解为什么失败的那些实际上失败了.

var Dog = function() {
    this.bark = "Arf";
};

Dog.prototype.woof = function() {
    $('ul').append('<li>'+ this.bark +'</li>');
};

var dog = new Dog();


// works, obviously
dog.woof();

// works
(dog.woof)();

// FAILS
var fnWoof = dog.woof;
fnWoof();


// works
setTimeout(function() {
    dog.woof();
}, 0);

// FAILS
setTimeout(dog.woof, 0);
Run Code Online (Sandbox Code Playgroud)

哪个产生:

  • 东盟地区论坛
  • 东盟地区论坛
  • 未定义
  • 东盟地区论坛
  • 未定义

在JSFiddle:http://jsfiddle.net/D6Vdg/1/

因此,看起来捕捉一个函数会导致它删除它的上下文.好.但为什么那么(dog.woof)();有效呢?

只是有点混乱,弄清楚这里发生了什么.显然有一些我没有得到的核心语义.

javascript scope prototype this

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

HTML5拖放不会掉线

玩拖放,虽然我似乎拖得很好,我似乎无法放弃.

这是我的游乐场:http: //jsfiddle.net/KZ8RD/1/

基本上,dragstartdragend可拖动节点上的事件似乎火罚款.但是我还没有在目标节点上触发任何事件.

# Source handlers
$('#source')
  .on('dragstart', (e) -> log '#source dragstart', this, e)
  .on('dragend',   (e) -> log '#source dragend',   this, e)

# Target Handlers
$('#cells td')
  .on('dragenter', (e) -> log 'target dragenter',  this, e)
  .on('dragleave', (e) -> log 'target dragleave',  this, e)
  .on('dragover',  (e) -> log 'target dragover',   this, e)
  .on('drop',      (e) -> log 'target drop',       this, e)???
Run Code Online (Sandbox Code Playgroud)

那么目标dragenterdrop事件需要存在哪些条件?我显然错过了其中的一些.

javascript jquery html5 drag-and-drop coffeescript

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

如何在类组件类型脚本中使用 useHistory() 钩子

您好,我正在尝试使用

this.history.push({
                    pathname: `/search-results`,
                    search: `${job}$${location}`
                  }) 
Run Code Online (Sandbox Code Playgroud)

在我使用 type script 的类组件中。然而,它给了我一个错误,即“横幅”类型上不存在属性“历史”。TS2339

我可以看到功能组件的其他示例,您可以const history = useHistory();从 hook 中执行和使用 history.push。

如何在类组件中做同样的事情?

typescript react-router

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

Ramda 的 LensProp 类型定义

当使用 RamdalensProp时:

R.lensProp('x')
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

Argument of type 'string' is not assignable to parameter of type 'never'.ts(2345)
Run Code Online (Sandbox Code Playgroud)

typescript ramda.js typescript-typings

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