我目前正在使用AngularJS和Three.js来尝试开发一个VR应用程序的小例子.我已根据用户代理是否是移动设备来定义控件.这是一个狡猾的方法,但它只是一个例子.OrbitControls用于非移动设备,否则使用DeviceOrientationControls.
var controls = new THREE.OrbitControls(camera, game.renderer.domElement);
controls.noPan = true;
controls.noZoom = true;
controls.target.set(
camera.position.x,
camera.position.y,
camera.position.z
);
// Really dodgy method of checking if we're on mobile or not
if(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {
controls = new THREE.DeviceOrientationControls(camera, true);
controls.connect();
controls.update();
}
return controls;
Run Code Online (Sandbox Code Playgroud)
我还创建了一些实际显示的对象.
this.camera = new THREE.PerspectiveCamera(90, window.innerWidth / window.innerHeight, 0.001, 1000);
this.camera.position.set(0, 15, 0);
this.textGeometry = new THREE.TextGeometry("Hello World", { size: 5, height: 1 });
this.textMesh = new THREE.Mesh(this.textGeometry, new THREE.MeshBasicMaterial({
color: 0xFF0000, opacity: 1
}));
this.textMesh.position.set(-20, 0, …Run Code Online (Sandbox Code Playgroud) 我目前正在使用以下代码来查看用户是否已停止在searchBar中输入内容.每当用户在0.5几秒钟后立即开始输入时,我想取消它.
码:
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
// your function here
}
Run Code Online (Sandbox Code Playgroud)
DispatchQueue.main.asyncAfter如果用户再次开始输入,如何取消Swift3?
我之前尝试过实施:
NSObject.cancelPreviousPerformRequests(withTarget: self)
self.perform(Selector(("searchForText:")), with: searchString, afterDelay: 0.5)
Run Code Online (Sandbox Code Playgroud)
然而,延迟似乎没有正常工作.
更多代码:
//In class SearchViewController: UITableViewController, UISearchResultsUpdating
func updateSearchResults(for searchController: UISearchController) {
let searchString: String = searchController.searchBar.text!
//This is what I previously tried.. which doesn't work...
//NSObject.cancelPreviousPerformRequests(withTarget: self)
//self.perform(Selector(("searchForText:")), with: searchString, afterDelay: 0.5)
//A struct with the first example code shown above.
Utils.Dispatch.delay(secondsToDelay: 1){
print("1 second has passed ! " + …Run Code Online (Sandbox Code Playgroud) 我试图了解Vimeo API的"搜索查询"是如何工作的.我甚至通过Vimeo API上的" 游乐场 "为开发人员试用了它.
Vimeo游乐场的屏幕截图.正如您所看到的,查询采用"字符串",但没有关于它如何工作的描述.
我试图通过我放在标题中的关键字来查找视频.我已经使用游乐场测试并查看查询实际上是如何工作的.
使用NOTHING填写上图中的"查询"文本框会返回2个结果.
{
"total": 2,
/* Rest of data here */
}
Run Code Online (Sandbox Code Playgroud)
这是预料之中的,因为到目前为止我只上传了两个视频.
我试图在查询中添加标题中的单词,但它们总是返回0结果.
这是我正在使用的PHP代码,当然返回0结果.
public function findVimeoVideoByKeyword($keyword) {
$response = $this->lib->request('/me/videos', [
'query' => $keyword
]);
# handle response code here...
}
Run Code Online (Sandbox Code Playgroud)
这是我在搜索标题中的特定单词时转储的返回数据(0结果):
VimeoService.php on line 168:
array:3 [?
"body" => array:5 [?
"total" => 0 //0 results
"page" => 1
"per_page" => 25
"paging" => array:4 [?]
"data" => []
]
"status" => 200
"headers" …Run Code Online (Sandbox Code Playgroud) 看来键盘不必占用整个屏幕,请查看我帖子的问题栏中的UPDATE.谢谢.
使用UITextField在屏幕上放置全屏键盘.
我已经设置了一个UISplitViewController,我希望RootViewController(又名MasterViewController)有UITextField键盘显示.然后我想在右边搜索结果(在"ResultViewController"(UIViewController)中).
这个想法是当用户输入时,提出结果.
我首先添加了一个UITextField到我的RootViewController通道,storyboard但是当我通过激活键盘时占用了整个屏幕textField.becomeFirstResponder().
我想如果我使用了UIAlertController这个问题,但是键盘仍然会占据整个屏幕.
class RootViewController: UIViewController {
override func viewDidLoad() {
let alertController = UIAlertController(title: "Search", message: "Search for something!.", preferredStyle: UIAlertControllerStyle.Alert)
alertController.addTextFieldWithConfigurationHandler({(textField: UITextField!) in
textField.placeholder = "Search"
})
self.addChildViewController(alertController)
alertController.view.frame = self.view.frame
self.view.addSubview(alertController.view)
}
}
Run Code Online (Sandbox Code Playgroud)
使用UISplitViewController时我怎样才能让键盘只停留在其中RootViewController并且不占用整个屏幕?
更新:看来这已在新苹果电视上的Netflix应用程序中实现.键盘位于顶部,占据整个宽度.底部分为两部分.左侧是建议的单词结果,右侧是可能视频的视频封面的集合视图.一切都在用户输入时更新.
如果这被认为是Apple TV的糟糕设计,那么请随时指出原因.
这就是我目前得到的.文本框打开一个占据整个屏幕的键盘.
我有DK2,我正在研究一个VR项目.这个项目使用FirefoxNightly.我已经下载并安装了WebVR Enabler Add-On

从http://mozvr.com/downloads/得到这个
我还从https://developer.oculus.com/downloads/下载并安装了最新的SDK和Runtime for Windows.

我也在Oculus配置实用程序中获取此功能(当插入oculus时):

然而,我已经在另一台带有Windows的计算机上安装了所有内容,就像在这台Windows计算机上一样,它清楚地显示Oculus Rift正确连接但头部跟踪仍无法正常工作.
编辑:我只是尝试将oculus裂缝连接到这个"第二"电脑(戴尔笔记本电脑),现在它甚至不识别眼裂谷.仍然没有头部追踪.
编辑2:我尝试在第三台PC上安装所有内容但没有成功.我在Oculus配置实用程序上获得"服务不可用"
我的显示模式设置如图所示.

我究竟做错了什么?有没有我忘了做的一步?奇怪的是,我在Mac上运行的项目没有任何问题.是的,在Windows上我可以看到屏幕,oculus rift但头部检测不存在.
这篇reddit帖子讨论了防火墙问题,但是我尝试了在防火墙失效但没有成功的情况下的oculus rift.
这个reddit帖子通过重新安装所有内容并更新某些驱动程序来讨论可能的修复方法.但是我一步一步地遵循此修复程序而没有成功.
这个oculus论坛帖子讨论了这个问题,一个人提出了一个适合他/她的解决方案.我没有成功地跟着修复.
如果您需要特定翻译,请通知我.这是法语.

Rift Display Mode 这听起来像我们很多人在使用0.5和0.6版本时遇到的问题.电缆没有问题,但是运行时本身.直接模式完美无瑕地工作,在扩展模式下,裂缝仍然显示图片,但运行时没有任何跟踪等.希望它能在下次更新中修复.
当我设置setCircularReferenceHandler回调时,为什么我的响应返回"空白" ?
编辑:
看起来它什么都不返回,但确实将标题设置为500 Internal Server Error.这是令人困惑的,因为Symfony应该发送有关错误的某种错误响应?
我$json = $serializer->serialize($data, 'json');在try/catch中包装但没有抛出显式错误,因此没有捕获任何内容.任何想法都会非常有用.
查询实体媒体时,我得到一个空白的回复.实体媒体(与Doctrine)映射到实体作者.由于它们是链接的,因此在尝试序列化时可能会发生无限循环.
我曾希望使用循环参考处理程序,我可以避免这一点,但它不起作用.
当我没有设置循环引用处理程序时,这是我得到的错误:
序列化类"Proxies__CG __\AppBundle\Entity\Author\Author"(配置限制:1)的对象时检测到循环引用(500内部服务器错误)
现在这个错误是完全可以预料的,因为我的实体作者在最初查询Media时指向了Entity Media(Media -> Author -> Media)
class Author implements JsonSerializable {
//Properties, Getters and setters here
/**
* Specify data which should be serialized to JSON
* @link http://php.net/manual/en/jsonserializable.jsonserialize.php
* @return mixed data which can be serialized by <b>json_encode</b>,
* which is a value of any type other than …Run Code Online (Sandbox Code Playgroud) 答案Objective-C和Swift2.0:如何居中对齐UICollectionView的单元格?
我通常会尝试将Swift2.0答案转换为Swift3.0解决方案,但方法是:
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAtIndex section: Int) -> UIEdgeInsets {
let edgeInsets = (screenWight - (CGFloat(elements.count) * 50) - (CGFloat(elements.count) * 10)) / 2
return UIEdgeInsetsMake(0, edgeInsets, 0, 0);
}
Run Code Online (Sandbox Code Playgroud)
似乎不存在Swift3.0,我找到的唯一有用的方法似乎是:
func collectionView(_ collectionView: UICollectionView, transitionLayoutForOldLayout fromLayout: UICollectionViewLayout, newLayout toLayout: UICollectionViewLayout) -> UICollectionViewTransitionLayout {
<#code#>
}
Run Code Online (Sandbox Code Playgroud)
但我不确定如何正确实施它.
如何对准一个UICollectionViewin 的细胞Swift3.0?
(iOS和tvOS的简单通用解决方案将是完美的)
当我对运行在其上的symfony服务器执行正常请求时http://localhost:8000/api/admin/login_check,返回所需的jwt令牌.
但是,当我使用功能测试(with ./bin/phpunit)时,我收到以下错误:
错误:无法找到path \"/ api/admin/login_check \"的控制器.路由配置错误.
我还浏览了功能测试文档.
不要犹豫克隆或分叉这个项目进行测试.有README.md解释安装步骤.
我还能够通过克隆lexikjwtauthenticationbundle的创建者之一提供的工作示例来重现该bug.
运行时发生 ./bin/phpunit
[2019-01-31 09:37:49] request.INFO: Matched route "api_admin_login_check". {"route":"api_admin_login_check","route_parameters":{"_route":"api_admin_login_check"},"request_uri":"http://localhost/api/admin/login_check","method":"POST"} []
[2019-01-31 09:37:49] security.INFO: Populated the TokenStorage with an anonymous Token. [] []
[2019-01-31 09:37:49] request.WARNING: Unable to look for the controller as the "_controller" parameter is missing. [] []
Run Code Online (Sandbox Code Playgroud)
执行curl或postman请求时发生
[2019-01-29 21:16:26] request.INFO: Matched route "api_admin_login_check". {"route":"api_admin_login_check","route_parameters":{"_route":"api_admin_login_check"},"request_uri":"https://localhost:8000/api/admin/login_check","method":"POST"} []
[2019-01-29 21:16:27] doctrine.DEBUG: SELECT t0.id AS id_1, t0.email …Run Code Online (Sandbox Code Playgroud) 如何使用Symfony设置Typescript,同时对Symphony的配置文件进行最少量的配置更改?
以下是此解决方案应解决的问题:
私有打字稿目录中的Typescript MVC Pattern:
src> XBundle>资源>私有>打字稿
编译的Javascript包:
src> XBundle>资源> public> js
私人目录应包含多个不同页面的应用程序.(如果应用程序需要它自己的tsconfig.json文件,那很好)
一个应用程序只是(例如)home.app.ts导入(例如)search.component.ts和chat.component.ts
编译的"apps"应位于第(2)点中提到的public> js存储库中,并且应该命名(示例来自第(4)点)home.bundle.js
在public > js文件夹中,应该只有x.bundle.js文件
将包添加到我的twig文件,并调用我的视图应立即运行该包.我不应该添加额外的脚本来调用" module"(这就是为什么我要避免AMD/ System)
我不是在寻找一个解决方案react,并angular而是使用一个通用的解决方案/web在symfony项目的根目录下(甚至是资源目录中包).
关于这个的大多数文章谈论symfony2和尝试整合react和angular.
我不是在寻找npm和tsc的安装教程.
我不需要自动编译.我使用Phpstorm,所以它无论如何都会自动执行.
随着同步 的快速移除XMLHttpRequest(即:Chrome 88 正在移除它),我正在寻找下一个预缓存视频的最佳替代方法。
“同步 XMLHttpRequest 是一个可怕的想法” - 从来没有人说过
是的,您适合大多数情况,但这是不同的。
在android和ios 上,我工作的公司有一个 SDK,可以在后台打开webview,将 HTML 注入其中并等待onload事件触发。当 webview 准备好向用户显示时,这会通知 SDK。
这是必要的,当视频播放有NO缓冲任何可能的最佳体验。
这就是为什么当 webview 在后台加载时,我们使用 XMLHttpRequest 同步预缓存视频(因此,延迟onload事件被触发)。
我们考虑了一些不同的解决方案,它们各有优缺点;这里有一些:
<link rel="preload" ... />index.htmlbase64页面内(如果视频重量为2-3Mo,则转换为base64后重量会增加30%)(1) 是最干净的方法,但由于各种原因需要对我们的后端进行一些重大更改。也不保证在浏览器/网络视图出现时视频将被完全缓存。不能保证预缓存的优先级在 web 视图和移动浏览器中是相同的。用户可以停用预缓存功能,例如,在他们的 Chrome 配置中。当连接为 4G 或更低时,它也不起作用(叹气)。
(2) 是一种笨拙且未经优化的方法,但与 (1) 相比,实施起来相对简单
在 …
php ×3
swift ×3
symfony ×3
tvos ×3
android ×2
ios ×2
javascript ×2
swift3 ×2
doctrine-orm ×1
html ×1
oculus ×1
php-7.1 ×1
phpunit ×1
symfony-3.1 ×1
symfony-3.3 ×1
symfony4 ×1
three.js ×1
typescript ×1
uikeyboard ×1
vimeo ×1
vimeo-api ×1
webpack ×1
webview ×1
webvr ×1
windows ×1