小编Kod*_*ode的帖子

Three.js OrbitControls 与 HTML5 Canvas 冲突?

我有一个 HTML5 Canvas(在本例中使用 Fabric.js)和一个渲染出来的 Three.js 对象。当使用 OrbitControls 旋转 3D 图像时,会出现两种奇怪的行为。

1)下拉字段和动态滑块不下拉或滑动

2) 当我在页面上有另一个画布并在该画布上移动图像时, Three.js 画布中的 3D 图像会与图像的移动同步移动。如果我移动 3D 图像,画布中的图像不会同步移动/不受影响

如果我注释掉/或删除“Box Controller - Collada Files”控制器中的旋转控件,则下拉菜单将起作用,并且正如预期的那样,画布中的图像与由三个渲染的 3D 图像之间没有“链接移动”。 Node.js(很可能是因为旋转控件被删除)。

我如何得到这个,以便 OrbitControls 不会停止下拉菜单和其他项目来运行/取消图像与 3D 对象的移动同步?

这是我的 HTML 示例:

<!DOCTYPE html>
<html lang="en" data-ng-app="appControllersBox">
<head>
<title>three.js webgl - loaders - collada loader</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">

<!-- Core files (jQuery, Angular, etc.) -->
<script src="js/scripts/jquery-2.1.4.min.js"></script>
<!-- Switch to AngularUI if appropriate -->
<script src="js/scripts/bootstrap.min.js"></script>
<script src="js/scripts/angular.min.js"></script>

<!-- Three.js: http://threejs.org/ --> …
Run Code Online (Sandbox Code Playgroud)

javascript canvas three.js

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

从Angular Controller调用节点函数的常用方法

让我以前缀为Node/Express更新.

我有一个AngularJS应用程序利用Node.JS来管理Azure Blob要求,例如创建Blob容器,如下所示:

function test(containerName) {
blobSvc.createContainerIfNotExists(containerName, function (error, result, response) {
    if (!error) {
// Container exists and allows
// anonymous read access to blob
// content and metadata within this container
    }
});
};

test('blob4');
Run Code Online (Sandbox Code Playgroud)

从Node中的server.js执行时创建容器的功能按预期工作并创建一个blob容器.但是,我需要在我的AngularJS应用程序中单击创建一个blob容器.我设想使用导出来访问和执行在Server.js中创建的函数,但是已经看到一些混合信息,特别是当Express.js在图片中时,用于通过AngularJS客户端调用Node.js函数,因为它似乎在Angular App中必须进行http调用(请参阅本文中的最后一个答案:来自angular应用程序的nodejs中的调用函数).

我的问题如下:

1)由于我的应用程序当前使用Node,Express和Angular,我是否需要在Angular控制器中使用http运行Node函数/执行Node/Server中编写的所有函数.如果通过AngularJS客户端调用,则需要$ http执行即使他们不打电话给服务,但可能是执行诸如数学之类的功能?基于Express的呼叫示例:

function MyCtrl($scope, $http) { 
// $http is injected by angular's IOC implementation

// other functions and controller stuff is here...    

// this is called when button is clicked
$scope.batchfile = function() {
    $http.get('/performbatch').success(function() {
        // url …
Run Code Online (Sandbox Code Playgroud)

node.js express angularjs

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

通过 Kudu 命令 API 运行 PowerShell 以编辑文件

我需要修改我的 Azure Web 应用程序文件的内容,例如 Web.config 和文本文件。使用 Kudu 命令行 API,我可以使用以下内容创建目录或处理对象:

$username = "`$myuser"
$password = "mypass"
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username,$password)))   
$apiUrl = "https://mywebapp.scm.azurewebsites.net/api/command"

$commandBody = @{
    command = "md D:\home\site\wwwroot\newDirectory"
}

Invoke-RestMethod -Uri $apiUrl -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -Method POST -ContentType "application/json" -Body (ConvertTo-Json $commandBody) | Out-Null 
Run Code Online (Sandbox Code Playgroud)

如何通过 Kudu Command API 修改文件?我的理想状态是使用以下内容通过命令行 API 执行 PowerShell:

powershell -Command "(gc myFile.txt) -replace 'foo', 'bar' | Out-File myFile.txt"
Run Code Online (Sandbox Code Playgroud)

当我在 Kudu 界面的 CMD 调试控制台中输入此命令时,上述命令有效,但我需要通过 API 调用它。我尝试了以下方法:

$username = "`$myuser"
$password = "mypass"
$base64AuthInfo …
Run Code Online (Sandbox Code Playgroud)

powershell cmd azure kudu azure-web-app-service

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

将Azure Active Directory用户添加到Azure SQL数据库

我有一个Azure SQL Server,可以将SSMS插入其中。我还有一个Azure Active Directory,其用户名为mytestuser@mytest.onmicrosoft.com。我想添加此用户以对其Azure SQL Server中的数据库具有权限。第一步是尝试将其添加到Azure SQL Server的主要安全性中。

我已经在Master数据库上尝试了以下方法:

CREATE USER [mytestuser@mytest.onmicrosoft.com] FROM EXTERNAL PROVIDER;
CREATE USER mytestuser;
Run Code Online (Sandbox Code Playgroud)

但这会产生以下错误:

无法创建主体“ mytestuser@mytest.onmicrosoft.com”。只有使用Active Directory帐户建立的连接才能创建其他Active Directory用户。

“ mytestuser”不是有效的登录名,或者您没有权限。

如何将Azure Active Account添加到Azure SQL?一旦通过主服务器添加了它,使其显示在“安全性”中,我应该可以通过以下方式将其添加到任意数量的已创建数据库中:

CREATE USER mytestuser FROM LOGIN mytestuser; 
Run Code Online (Sandbox Code Playgroud)

azure azure-active-directory azure-sql-database

2
推荐指数
3
解决办法
5416
查看次数

New-AzSqlDatabaseImport 无法将参数绑定到参数“OperationStatusLink”,因为它为空

尝试使用 PowerShell 和 New-AzSqlDatabaseImport 命令将数据库部署到 Azure SQL 时,我收到以下错误:

New-AzSqlDatabaseImport : An unexpected error occured while processing the request. Tracking ID: 'mytrackingid'
At C:\mydir\mypowershell.ps1:363 char:18
+ ... rtRequest = New-AzSqlDatabaseImport -ResourceGroupName "myresource ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [New-AzSqlDatabaseImport], CloudException
    + FullyQualifiedErrorId : Microsoft.Azure.Commands.Sql.ImportExport.Cmdlet.NewAzureSqlDatabaseImport
 
Get-AzSqlDatabaseImportExportStatus : Cannot bind argument to parameter 'OperationStatusLink' because it is null.
At C:\mydir\mypowershell.ps1:376 char:74
+ ... tExportStatus -OperationStatusLink $importRequest.OperationStatusLink
+                                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [Get-AzSqlDatabaseImportExportStatus], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.Azure.Commands.Sql.ImportExport.Cmdlet.GetAzureSqlDatabaseImportExportStatus
Run Code Online (Sandbox Code Playgroud)

奇怪的是,我已经在其他虚拟机上运行了 100 …

powershell azure azure-sql-database

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

通过QueryString将值传递给NewForm.aspx

我试图通过查询字符串传递一个值来填充NewForm.aspx列表中的字段.示例:http://example.com/Lists/mylist/Newform.aspx?ID = 3

我被限制使用JavaScript并且必须坚持使用查询字符串.这可能吗?

sharepoint sharepoint-2013

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

使用相同的配置部署多个Content Delivery Server

我正在构建一个包含多个Content Delivery服务器的Sitecore服务器场.在当前流程中,我站起来CD服务器并按照手动步骤注释连接字符串,并按照每个虚拟机/ CD服务器的详细说明启用或禁用配置文件:

https://doc.sitecore.net/Sitecore%20Experience%20Platform/xDB%20configuration/Configure%20a%20content%20delivery%20server

但是因为我有多个服务器,是否有任何类型的全局配置文件,我可以指定我想要的设置(基本上是CD服务器的设置模板),或者我可以加载我想要的设置/模板的工具,配置文件是启用/禁用等?我已经使用SIM工具进行实例安装,但不确定它是否为CD服务器加载了预先确定的"模板".

只需要站起来服务器然后手动配置每个服务器而不是更自动化的流程(例如类似于Sitecore Azure,但在这种情况下我需要在本地安装VM),这似乎是无效的.

sitecore

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

Three.js - 盒子所有侧面的定向灯?

我有一个用户自定义的 3D 盒子,可以使用 Three.js 通过轨道控件进行旋转/旋转。该功能按预期工作,但是,照明很难正确,因为用户需要看到他们定制的盒子颜色,我在以下位置使用环境光设置:

var light = new THREE.AmbientLight(0xffffff); // White light
scene.add(light);
Run Code Online (Sandbox Code Playgroud)

环境光的问题在于,虽然它似乎保留了用户选择的颜色,但深度/清晰度丢失了,因为盒子显示为打开状态,并且用户期望看到深度:

在此输入图像描述

如果我将环境光设置为示例中所示的默认值,我会获得更多的深度/清晰度,但会失去颜色,因为光线不同:

在此输入图像描述

这促使我尝试使用定向光,目标是为顶部、底部和侧面提供定向光。然而,我对如何实现这一点感到困惑,以便我可以在所有侧面都有灯光。深度/清晰度看起来很棒,但我不知道position.set(0,0,0)的坐标代表什么。我怀疑是x,y,z。使用下面的代码我可以覆盖一些盒子,但不能全部覆盖在光下。我需要它像环境光一样被照亮,但具有使用定向的深度。这是我当前的代码:

var directionalLight = new THREE.DirectionalLight(0xffffff, 0.5);
directionalLight.position.set(0, 1, 0);
scene.add(directionalLight);

var directionalLight2 = new THREE.DirectionalLight(0xffffff, 0.5);
directionalLight2.position.set(1, 0, 0);
scene.add(directionalLight2);

var directionalLight3 = new THREE.DirectionalLight(0xffffff, 0.5);
directionalLight3.position.set(0, 0, 1);
scene.add(directionalLight3);
Run Code Online (Sandbox Code Playgroud)

顶部和两侧的照明效果很好:

在此输入图像描述

但其他侧面和底部则不然:

在此输入图像描述

是否可以为盒子的每一侧、顶部和底部安装定向灯?如果是这样,我需要做什么?是否需要添加更多具有不同坐标的灯光?更新:

更新:使用这里的帖子,我可以让光线跟随,因为我正在使用轨道控制。Three.js 定向光跟随摄像头

这给了我这个:

在此输入图像描述

唯一的问题是,第一次加载时,在用户交互之前它都是黑色的。关于如何改变这种行为以便它显示加载时的颜色有什么想法吗?

在此输入图像描述

3d three.js

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

初始渲染的threejs场景不添加纹理

我最初为我的three.js场景设置了一个动画功能,该场景加载在AngularJS模态中,但发现在关闭模态之后,动画继续运行,这是不必要的,因为我不需要像视频一样的恒定动画游戏会有.

此时,我将其切换为仅在有人使用OrbitControls移动我的示例中的简单框时进行渲染,并进行初始调用以渲染场景,以便用户可以看到框而不是大的黑色方框.

但是,在初始渲染时,在我使用轨道控件并移动框之前,纹理似乎不会被应用,此时它们会出现.这很奇怪,因为我的初始调用和与OrbitControls绑定的监听器都属于同一个函数.如何获得初始载荷以显示纹理?

$scope.generate3D = function () {
    // 3D OBJECT - Variables
    var texture0 = baseBlobURL + 'Texture_0.png';
    var boxDAE = baseBlobURL + 'Box.dae';
    var scene;
    var camera;
    var renderer;
    var box;
    var controls;
    var newtexture;

    // Update texture
    newtexture = THREE.ImageUtils.loadTexture(texture0);

    //Instantiate a Collada loader
    var loader = new THREE.ColladaLoader();

    loader.options.convertUpAxis = true;
    loader.load(boxDAE, function (collada) {

        box = collada.scene;

        box.traverse(function (child) {

            if (child instanceof THREE.SkinnedMesh) {

                var animation = new THREE.Animation(child, child.geometry.animation);
                animation.play();

            }
        });

        box.scale.x …
Run Code Online (Sandbox Code Playgroud)

three.js

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

当URL被复制到地址栏时,GET工作,但不能通过AJAX

我有一系列端点,供应商的应用程序可以从中获取文件.如果我将这些端点输入到浏览器的地址栏中,则会打开该文件,但如果我尝试通过jQuery AJAX获取它们,则会因为跨源错误而失败(No'Access-Control-Allow-Origin'标头是出现在请求的资源上.因此不允许来源' http:// mydomain '访问.).供应商应用程序REST Web服务不支持CORS.这是我的AJAX调用:

$.ajax({
    url: "http://vendorrestwebservice/endpoint",
    type: "GET",
    success: function (result) {
    console.log("downloaded file");
  },
  error: function (error) {
    console.log("Failed to download file!");
  }
});
Run Code Online (Sandbox Code Playgroud)

为什么文件在粘贴到地址栏时打开,而不是在通过我的GET请求调用时打开?

javascript ajax rest jquery

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