程式碼解析
在threex.godrays\examples\basic.html裡看到一個奇怪的寫法
var mesh = new THREE.Mesh(geometry, material) mesh.userData.domClasses += 'godRays'
用WebStorm去查發現居然找不到出處
js本地存储解决方案(localStorage与userData) - BeiYuu - 博客园WEB應用的快速發展,是的本地存儲一些數據也成為一種重要的需求,實現的方案也有很多,最普通的就是cookie了,大家也經常都用,但是cookie的缺點是顯而易見的,其他的方案比如:IE6以上的userData,Firefox下面的globalStorage
- User Data in mesh object? - Babylon.js - HTML5 Game Devs Forum
- in Three.js there is a User Data object in mesh to store any json data you might want/need
於是我回去找Three.js的documentation,在Object3D()裡找到userData
不過讀了一下大都是採用object3D.userData,而不是範例裡的mesh.userData
不過在這篇文章發現也有人用mesh.userData
找了老半天終於給我找到原因了
- How can I set the position of a mesh before I add it to the scene in three.js - Stack Overflow
- http://threejs.org/docs/#Reference/Objects/Mesh As you can see on the top of the docu-page, Mesh inherits from "Object3D". That means that you can use all methods or properties that are provided by Object3D.
Object3D裡的userData
- An object that can be used to store custom data about the Object3d.
看到basic.html裡有
mesh.scale.set(1,1,1).multiplyScalar(1)
回去documentation找,發現scale會跑去Vector3,裡面有set() 這method,也有multiplyScalar()這method
看到basic.html裡有
mesh.userData.domClasses
奇怪,這個domClasses是什麼??? 估狗一下發現那似乎是自定義的,估狗一下發現兩篇
- With three.js, can I attach information to an object, such as a URL? - Stack Overflow
- javascript - three.js can't select the objects with Raycaster - Stack Overflow
他們的userData後面也接不同的東西,目前已看過接了domClasses、id、URL,跑去three.js-master\src\core\Object3D.js看原始碼,也沒看到類似的東西,所以應該要回到JavaScript的本質去找了
水!!!我找到了,辜狗鍵入:JavaScript 建構式,在下面這篇文章的範例code裡找到
- [JavaScript] 談物件, 實字與建構式 - apa (搜尋:實字與建構式)
白天時在hree.js-master\src\core\Object3D.js裡看過userData的定義,就如同這篇文章的範例一樣,只有給個 userData = {}; 感謝估狗大神,從這篇可以知道mesh.userData.domClasses,是給userData一個屬性domClasses
疲勞了,今晚來看有什麼能用
各種火焰與控制火焰教學,還有聲音可用
- threex-master\src\threex.flamethrower
有點疲勞,跑去THREEx的網頁看了一個如何製作遊戲的投影片
這個如何製作雲端遊戲的GitHub
裡面還提到一個管理前端的工具Bower,改天研究一下這能幹嘛用
沒靈感來看Jerome Etienne的Learning Three.js blogger,讀到這篇
沒有留言:
張貼留言