小编Dan*_*son的帖子

在 Three.js 中切换 canvas / rendertarget

我的页面上有两个画布元素,我开始渲染到我的:

new THREE.WebGLRenderer({canvas:myFirstCanvas});
Run Code Online (Sandbox Code Playgroud)

并且 3D 场景按照我的预期正确渲染

但是如果我尝试使用以下任一方法更改渲染器指向的画布元素:

renderer.domElement = mySecondCanvas;
Run Code Online (Sandbox Code Playgroud)

或者

renderer.setRenderTarget({canvas:mySecondCanvas});
Run Code Online (Sandbox Code Playgroud)

我查看了 github 上的文档,但不幸的是 setRenderTarget() 说 TODO 。是否可以切换渲染器正在使用的画布元素?如果是这样我该怎么办?目前我的尝试除了模糊原始画布元素中的图像之外什么也没做,大概是因为我还使用以下方法调整了渲染器的大小:

renderer.setSize(mySecondCanvas.width,mySecondCanvas.height);
Run Code Online (Sandbox Code Playgroud)

当我尝试切换到另一个画布时。

javascript webgl three.js

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

css动画持久结束状态

我有一个div元素作为我的网页的全局contianer,我也有一个div元素,我用作一个窗帘,即当它被激活时,它覆盖整个页面在一个黑暗的半透明层(就像一个灯箱因此页面基本上被停用,并且可以在顶部显示警告对话框或图片框等.

我可以使用javascript轻松实现这种效果和功能,但我想知道它是否可以纯粹用css动画实现?

<div id='globalCon'>
    <div id='curtain' class='enabled'></div>
    <div id='contentA'></div>
    <div id='contentB'></div>
    ... 
</div>
Run Code Online (Sandbox Code Playgroud)

因此,当窗帘不活动时,它应该具有不透明度0,并且最好display:none;是将它放在一边.然后当它被激活时,它应该具有display:block不透明度和0.8的动画.然后,当它被停用时,不透明度应该动画回0,然后应该将其设置回display:none;

就像我说的,我可以使用javascript轻松完成这项工作,我只是想知道是否以及如何只使用css来完成它?

animation persistence css3

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

Dart可以重载赋值运算符吗?

我有以下课程:

class EventableNumber{

  num _val;

  num get val => _val;

  void set val(num v){

    num oldValue = _val;
    _val = v;
    _controller.add(new NumberChangedEvent(oldValue, v));

  }

  StreamController<NumberChangedEvent> _controller = new StreamController<NumberChangedEvent>();
  Stream<NumberChangedEvent> _stream;
  Stream<NumberChangedEvent> get onChange => (_stream != null) ? _stream : _stream = _controller.stream.asBroadcastStream();

  EventableNumber([num this._val = 0]);

}
Run Code Online (Sandbox Code Playgroud)

是否可以重载=赋值运算符?而不是使用valgetter和setter强制事件在值发生变化时触发,如果它可以在用户写入myEventableNum = 34然后myEventableNum首先执行其onChange事件时完成,而不是myEventableNum.val = 34.

operator-overloading dart

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

c#公共财产无法访问

[DataContract]
public class UniqueNamedItem
{
    [DataMember]
    int Id { public get; protected set; }
    [DataMember]
    string Name { public get; protected set; }
}

[KnownType(typeof(UniqueNamedItem))]
[DataContract]
public class BasicNode : UniqueNamedItem
{
    [DataMember]
    SortedList<string, BasicNode> Children { public get; private set; }

    public void addChild(BasicNode bn)
    {
        this.Children.Add(bn.Name, bn);
    }
}
Run Code Online (Sandbox Code Playgroud)

你能告诉我为什么在我的addChild函数中,对bn.Name的调用无效,即使UniqueNamedItem.Name属性有一个公共get访问器吗?

c# properties public

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

有什么方法可以获得级联中最后一个方法的返回值?

我正在做这样的事情:

new A()
  ..methodA()
  ..methodB()
  .toString();
Run Code Online (Sandbox Code Playgroud)

这应该归还toString()吗?目前它正在返回新A对象.

dart method-cascades

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

Dart,如何在服务器端监听 websocket 关闭?

我看到客户端 websockets 有一个有用的onlClose流,但为什么服务器端websocket上没有免费的 onclose 流?当网络套接字关闭时,我希望能够在服务器端清理我的网络会话,但我不确定如何检测服务器端发生的事件。

events websocket dart

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

如何在 dart 应用程序中分析内存使用情况?

我有这个测试应用程序来查看我的 dart 应用程序的内存配置文件。当您单击左上角的“新客户端”按钮时,它将模拟新客户端浏览主机。主机生成一个新的应用程序会话,在这种情况下,它是一个可以创建或删除Massive对象的简单应用程序。主机上存在大量对象,蓝色方块是Massive对象的客户端表示。我希望如果我创建一堆Massive对象然后将它们全部删除,沿途拍摄堆快照,我应该看到内存使用量随着Massive对象数量的增加而增加,然后随着Massive对象最终被垃圾收集而减少,这是一个远程垃圾收集每 5 秒运行一次,从而释放实际Massive 对象在主机端,因此它应该可以被实际的 VM 垃圾收集器清除。

我一直在尝试使用 Chrome 开发工具来查看堆分配,因为我创建了多个客户端并MassiveView在它们上处理s。但我什么也没看到,创建一个新Massive对象我看到内存分配出现峰值,但在该对象应该被释放后,我没有看到任何内存使用量下降的迹象,但我不知道我是否我使用的开发工具错误,或者我的框架有问题。是否可以在 Chrome 开发工具中看到持续的内存分配源?

memory-leaks memory-management google-chrome-devtools dart

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

IE8帖子文件定位iframe,作为null到达服务器

我有一个只有一个表单的表单,input:file表单的目标是一个名字iframe.当用户选择文件时,它会自动将表单发布到服务器.这适用于IE10/firefox/chrome,但在IE8中,当IE8发布表单时,我的控制器方法上的File参数为null.有没有其他人遇到这个并知道任何解决方案,为什么IE8实际上不是发布文件数据?

客户端:

function createFileUploadForm()
{
    var frameName = 'fileUploadFormFrame';
    var fileValue;
    var fileUploadCallback = function()
    {
        //do stuff when the server responds after receiving the file
    };
    var fileInputChangedCallback = function(event)
    {
        if(fileInput.value != fileValue)
        {
            fileValue = fileInput.value;
            form.submit();
        }
    };

    var iFrame = document.createElement('iframe');
    iFrame.name = frameName
    document.body.appendChild(iFrame);

    var form = document.createElement('form');
    form.action = 'a/valid/url';
    form.method = 'post';
    form.enctype = 'multipart/form-data';
    form.target = frameName;

    var fileInput = document.createElement('input');
    fileInput.type = 'file';
    fileInput.name = 'File'; …
Run Code Online (Sandbox Code Playgroud)

iframe file-upload internet-explorer-8

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

Dart镜像行为是不允许从其他库保证调用私有方法和部分规范?

如果我有2个文件:

bin.dart:

import 'lib.dart';
import 'dart:mirrors';

/*
class Foo{
  bool _bar() => true;
}
*/

void main() {
  var foo = new Foo();
  print(reflect(foo).invoke(#_bar, []));
}
Run Code Online (Sandbox Code Playgroud)

lib.dart:

library lib;

class Foo{
  bool _bar() => true;
}
Run Code Online (Sandbox Code Playgroud)

如果我运行bin.dart,我会得到我希望发生的事情,尝试调用私有方法时会出现异常.但是如果我注释掉该import 'lib.dart'行并取消注释本地Foo定义,这个timeit运行无例外,我想这是好的,因为现在从声明库中调用了私有方法.所以我的问题是,行为是否得到保证?我需要确保通过我的库中的镜像调用点不允许从其他库调用私有成员,目前我通过检查以_开头的名称来明确检查:

if(MirrorSystem.getName(inv.method).startsWith('_')){
  throw new RestrictedMethodError(inv.method);
}else{
  _this.invoke(inv.method, inv.posArgs, inv.namArgs);
}
Run Code Online (Sandbox Code Playgroud)

但是,如果默认情况下仍然尊重隐私,那么我可以摆脱这个检查并删除我的库中的dart:mirror的导入,谢谢.

UPDATE

如果inv.method保证符号始终来自以下内容,该怎么办?

inv.method = MirrorSystem.getSymbol(stringName);
Run Code Online (Sandbox Code Playgroud)

这会阻止在文件dart:mirrors-patch_mirrors_patch.dart行92中调用私有方法:

  static Symbol getSymbol(String name,[LibraryMirror library]) {
    if((library != null && library is !_LocalLibraryMirror) ||
       ((name.length > 0) && (name[0] == …
Run Code Online (Sandbox Code Playgroud)

dart dart-mirrors

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

多参数函数的 Haskell 类型声明

我希望通过这个介绍Haskell的包含这个例子:

data Tree a             = Leaf a | Branch (Tree a) (Tree a) 
Run Code Online (Sandbox Code Playgroud)

它说本质上也定义了类型:

Branch                  :: Tree a -> Tree a -> Tree a
Leaf                    :: a -> Tree a
Run Code Online (Sandbox Code Playgroud)

我理解 Leaf 定义是说它映射 ana到 a Treeof a。但我不明白的分公司定义,我把它读作“科映射TreeaTreeaTreea不健全正确的。这是因为所有的Haskell函数得到默认令行禁止?

haskell

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