Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title> Object.getOwnPropertyNames(AFRAME[v])</title>
    <meta name="description" content=" Object.getOwnPropertyNames(AFRAME[v])">
    <script src="https://aframe.io/aframe/dist/aframe-master.min.js"></script>
  </head>
  <body>
    <script>
AFRAME.registerComponent('selfinspect', {
  init: function () {
    // lifecycles
      //AFrame ?
      //systems ?
      //components: init update remove tick play pause updateSchema
    
    var ignoreProps = ["prototype", "length", "name", "THREE", "TWEEN", "version", "scenes" ]
    
    var sceneEl = this.el
    var aframeColor = "#ef2d5e"
    console.log('selfinspect')
    
    Object.getOwnPropertyNames(AFRAME)
      .map(function(v, i){ 
      var e = document.createElement("a-box")
      e.setAttribute("position", {x:0, y:i*1.1, z:-1} )
      e.setAttribute("material", "color:"+aframeColor )
      
      var txt = document.createElement("a-entity")
      txt.setAttribute("text","value:"+v+" ;color:"+aframeColor )
      txt.setAttribute("scale","10 10 10" )
      e.appendChild(txt)
      
      // we must go deeper
      console.log(v)
      
      var props = Object.getOwnPropertyNames(AFRAME[v])
      if ((ignoreProps.indexOf(v)>-1)){
        console.log('ignoring',v)
      }
      
      if (!(ignoreProps.indexOf(v)>-1) && props){
        for (var prop in props){
          if (!(ignoreProps.indexOf(props[prop])>-1)){
            //console.log("    "+props[prop])
            
            var c = document.createElement("a-box")
            c.setAttribute("position", {x:prop*1.1, y:0, z:0} )
            c.setAttribute("material", "color:"+aframeColor )
            var txt = document.createElement("a-entity")
            txt.setAttribute("text","value:"+props[prop]+" ;color:"+aframeColor )
            txt.setAttribute("scale","10 10 10" )
            txt.setAttribute("rotation","0 0 45" )
            txt.setAttribute("position","4 0 0" )
            c.appendChild(txt)
            e.appendChild(c)
          }
        }
      }      
      
      sceneEl.appendChild(e)
    });
  }
});
    </script>
    
      
    <div>
      <div style="width:100%; height:200px; ">
      <a-scene embeddedNOT workshop-mode selfinspect>
      <a-sky color="#ECECEC"></a-sky>
      <a-entity position="0 0 3.8">
        <a-camera></a-camera>
      </a-entity>
    </a-scene>
        
      </div><!-- end of AFrame scene -->
      
      <div id="workshop-material">
        
      <iframe src='https://vatelier.net/MyDemo/DiveInAFrameCodeBase/' width="3%" height='200px'></iframe>
      </div><!-- content to manually hide -->
      
  </body>
</html>
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
Utopiahpro
0viewers