A-Frame/aframe: Release v0.4.0
0.4.0 contains Oculus Touch controller support, integration with the Registry by means of the Inspector, API polish, and bug fixes.
Major Changes
getAttributereturns full computed rather than just defined component data set. (#1925)setAttributewhen passed an object (i.e.,setAttribute('material', {color: 'red'})) no longer clobbers existing component data, it will instead extend existing component data. Pass atrueflag as the third argument to clobber existing data.- Asset property type will directly pass the video element to a component if the value is a selector. (#2129)
 - Refactored primitives to fix component dependencies and initialization ordering. (#2106)
 - Removed 
transformsfeature from theregisterPrimitiveAPI. (#2045) - Removed deprecated 
look-atcomponent. (#1913) - Removed deprecated Declarative Events API (
<a-event>). (#1914) 
Deprecations
getComputedAttributedeprecated in favor ofgetAttribute.getDOMAttributedoes whatgetAttributeused to do. (#1925)srcschema property type deprecated in favor ofasset,audio,map,modelschema property types. (#2003)AFRAME.utils.isMobile,AFRAME.utils.isGearVR,AFRAME.utils.checkHeadsetConnected, andAFRAME.utils.isIOShave all moved to theAFRAME.utils.devicenamespace.
Enhancements
- Bumped three.js to r82. (#2081)
 - Oculus Touch controller support and controller refactor. (#2132)
 - Inspector is pulled from 
unpkg.comCDN to be able to reference a fuzzy version. (e664fe6) - Added 
reverseDragproperty tolook-controlscomponent to reverse mouse drag (ideal for static 360° content). (#2024) auto-enter-vrcomponent for Carmel browser support, may be replaced once link traversal lands. (ae69e1d)- Added standard material map properties for ambient occlusion, displacements, normals, and spherical environments. (#1826, #2078)
 - Asset parser no longer strictly demands URLs be wrapped with 
url(). (#2045) - Added ability to take equirectangular and projection screenshots with a keyboard shortcut. (#1984)
 - Added 
asset,map,model,audioschema property types. (#2054) - Added wireframe properties to the standard and flat materials. (#1971)
 - Have 
raycastercomponent refresh its list of intersection targets when entities are attached or detached from the scene. (#1887) - Added 
poolcomponent for performant object pooling and reuse. (#1954) - Added support for 
tracked-controlscomponent to change its origin position (e.g., for teleportation). (#2002) - Added pooling to the 
soundcomponent. (#1924) - Added intersection data to 
cursorcomponent events. (#1920) - Added events to entity 
setObject3DandremoveObject3D. (#2075) - Added 
pauseSound()method to thesoundcomponent. (#1996) - Added loading feedback while A-Frame Inspector is being injected over the network. (#2006)
 - Added console warning message if A-Frame script tag is included in the 
<body>. (#2000) - Added support for non-QWERTY keyboard layouts in 
wasd-controlscomponent. (#1832) - Automatically set 
playsinlineandwebkit-playsinlineon video elements in asset system. (#2076) - Used slightly faster function binding. (#1782)
 - Made 
statscomponent alert text more readable. (#1885) - Allowed 
inspectorcomponent to be opened viapostMessage. (#1997) - Allowed 
statscomponent to be disabled via querystring. (#1836) - Exposed component prototype. (#2062)
 - Exposed 
XHRLoaderin<a-assets>. (#2023) - Added local Markdown documentation server 
npm run docs. (48ff50) - Added documentation test and lint script for checking links, fix links. (#2080)
 
Fixes
- Fixed component dependencies where bugs manifested in the 
obj-modelandraycastercomponents. (#2036) - Fixed 
intproperty type with empty data being turned toNaN. (#2063) - Fixed GearVR VR mode height by only removing 
camera.userHeightif positional tracking exists and the device is not a GearVR or smartphone. (#2044) - Fixed mixins not working with multiple-instanced components. (#1699)
 - Fixed default components (i.e., 
position,rotation,scale,visible) not being flushed to DOM in debug mode. (#2064) - Fixed 
cursormouseleaveevent not being reliable with multiple close objects. (#1882) - Fixed 
cursorcomponent intersecting itself. (#1936) - Fixed entity not being able to re-attach after being detached. (#1928)
 - Fixed typos for 
requestFullscreencalls. (#1963) - Fixed 
tracked-controlscomponent if a mesh was not applied. (#1875) - Fixed 
raycastercomponent passing its actual intersection objects through events. (#1978) - Fixed 
statscomponent for Safari. (#1865) - Normalized Git-tracked files to Unix-style line feeds. (#1825)
 - Fix stringifying default 
nullvalues for object property types. (#2138) - Fix material update referencing 
sceneElwhen the scene has not yet loaded. (#2137) - Fix default values of a schema property getting changed to weird values. (#2140)
 
Known Issues
- A regression in the October 29th version of Chromium passes microsecond-based
timestamp into 
requestAnimationFrameinstead of milliseconds, breaking animations.