{"id":1389,"date":"2023-08-24T19:51:16","date_gmt":"2023-08-24T19:51:16","guid":{"rendered":"https:\/\/mklasen.com\/?p=1389"},"modified":"2023-08-25T10:12:42","modified_gmt":"2023-08-25T10:12:42","slug":"a-frame-change-an-objects-color-on-hover","status":"publish","type":"post","link":"https:\/\/mklasen.com\/a-frame-change-an-objects-color-on-hover\/","title":{"rendered":"A-Frame: Change an objects color on hover"},"content":{"rendered":"\n

A-Frame is quite fun to work with, but it takes a while to get into.. As I’m doing a project in A-Frame at the moment, you’ll probably see some more insights on this library on my blog in the next couple of weeks.<\/p>\n\n\n\n

Special thanks to Diarmid Mackenzie<\/a> for helping me out in the A-Frame Slack Channel<\/a>.<\/p>\n\n\n\n

In this case, I’ve used an object file (.obj) and a material file (.mtl) and loaded it in A-Frame using the following code:<\/p>\n\n\n\n

\n<\/code><\/pre>\n\n\n\n
<\/a-entity><\/code><\/pre>\n\n\n\n

Now, in order to see the object change it’s color when hovering over it, we need to add an A-Frame component that hooks into the ThreeJS object to then change the material color, as you see below:<\/p>\n\n\n\n

AFRAME.registerComponent('mouse-over', {\n    init() {\n        this.el.addEventListener('model-loaded', () => {\n            this.el.addEventListener('mouseenter', this.mouseenter);\n            this.el.addEventListener('mouseleave', this.mouseleave);\n        })\n    },\n    mouseenter(evt) {\n        const model = evt.target.getObject3D('mesh');\n        model.traverse((obj) => {\n            if (!obj.material) return\n            obj.material.color.setHex(0xFFFFFF)\n        })\n    },\n    mouseleave(evt) {\n        const model = evt.target.getObject3D('mesh');\n        model.traverse((obj) => {\n            if (!obj.material) return\n            obj.material.color.setHex(0x333333)\n        })\n    },\n});<\/code><\/pre>\n\n\n\n

That’s it! Light and breezy \ud83d\ude42 <\/p>\n\n\n\n

Happy developing!<\/p>\n","protected":false},"excerpt":{"rendered":"

A-Frame is quite fun to work with, but it takes a while to get into.. As I’m doing a project in A-Frame at the moment, you’ll probably see some more insights on this library on my blog in the next couple of weeks. Special thanks to Diarmid Mackenzie for helping me out in the A-Frame […]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[57],"tags":[],"acf":[],"yoast_head":"\nA-Frame: Change an objects color on hover - Marinus Klasen<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/mklasen.com\/a-frame-change-an-objects-color-on-hover\/\" \/>\n<meta property=\"og:locale\" content=\"nl_NL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"A-Frame: Change an objects color on hover - Marinus Klasen\" \/>\n<meta property=\"og:description\" content=\"A-Frame is quite fun to work with, but it takes a while to get into.. As I’m doing a project in A-Frame at the moment, you’ll probably see some more insights on this library on my blog in the next couple of weeks. Special thanks to Diarmid Mackenzie for helping me out in the A-Frame […]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/mklasen.com\/a-frame-change-an-objects-color-on-hover\/\" \/>\n<meta property=\"og:site_name\" content=\"Marinus Klasen\" \/>\n<meta property=\"article:publisher\" content=\"http:\/\/facebook.com\/marinus.klasen\" \/>\n<meta property=\"article:author\" content=\"http:\/\/facebook.com\/marinus.klasen\" \/>\n<meta property=\"article:published_time\" content=\"2023-08-24T19:51:16+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-08-25T10:12:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/mklasen.com\/content\/uploads\/2020\/03\/cropped-cropped-mklasen-logo-margin-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"512\" \/>\n\t<meta property=\"og:image:height\" content=\"512\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Marinus Klasen\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@http:\/\/twitter.com\/marinusklasen\" \/>\n<meta name=\"twitter:site\" content=\"@marinusklasen\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Marinus Klasen\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minuut\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/mklasen.com\/a-frame-change-an-objects-color-on-hover\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/mklasen.com\/a-frame-change-an-objects-color-on-hover\/\"},\"author\":{\"name\":\"Marinus Klasen\",\"@id\":\"https:\/\/mklasen.com\/#\/schema\/person\/bbad02776afb72dfba2ebfe1956a4e29\"},\"headline\":\"A-Frame: Change an objects color on hover\",\"datePublished\":\"2023-08-24T19:51:16+00:00\",\"dateModified\":\"2023-08-25T10:12:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/mklasen.com\/a-frame-change-an-objects-color-on-hover\/\"},\"wordCount\":136,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/mklasen.com\/#\/schema\/person\/bbad02776afb72dfba2ebfe1956a4e29\"},\"articleSection\":[\"A-Frame\"],\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/mklasen.com\/a-frame-change-an-objects-color-on-hover\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/mklasen.com\/a-frame-change-an-objects-color-on-hover\/\",\"url\":\"https:\/\/mklasen.com\/a-frame-change-an-objects-color-on-hover\/\",\"name\":\"A-Frame: Change an objects color on hover - Marinus Klasen\",\"isPartOf\":{\"@id\":\"https:\/\/mklasen.com\/#website\"},\"datePublished\":\"2023-08-24T19:51:16+00:00\",\"dateModified\":\"2023-08-25T10:12:42+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/mklasen.com\/a-frame-change-an-objects-color-on-hover\/#breadcrumb\"},\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/mklasen.com\/a-frame-change-an-objects-color-on-hover\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/mklasen.com\/a-frame-change-an-objects-color-on-hover\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/mklasen.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"A-Frame\",\"item\":\"https:\/\/mklasen.com\/a-frame\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"A-Frame: Change an objects color on hover\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/mklasen.com\/#website\",\"url\":\"https:\/\/mklasen.com\/\",\"name\":\"Marinus Klasen\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/mklasen.com\/#\/schema\/person\/bbad02776afb72dfba2ebfe1956a4e29\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/mklasen.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"nl-NL\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/mklasen.com\/#\/schema\/person\/bbad02776afb72dfba2ebfe1956a4e29\",\"name\":\"Marinus Klasen\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\/\/mklasen.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/mklasen.com\/content\/uploads\/2021\/01\/DONE1171.jpg\",\"contentUrl\":\"https:\/\/mklasen.com\/content\/uploads\/2021\/01\/DONE1171.jpg\",\"width\":1500,\"height\":1000,\"caption\":\"Marinus Klasen\"},\"logo\":{\"@id\":\"https:\/\/mklasen.com\/#\/schema\/person\/image\/\"},\"description\":\"Marinus has been working in software\/web development for more than a decade. Since 2020 his attention shifted on sharing knowledge and developing products and tools for sharing knowledge. Marinus Klasen on Twitter\",\"sameAs\":[\"http:\/\/facebook.com\/marinus.klasen\",\"https:\/\/nl.linkedin.com\/in\/marinusklasen\",\"https:\/\/twitter.com\/http:\/\/twitter.com\/marinusklasen\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"A-Frame: Change an objects color on hover - Marinus Klasen","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/mklasen.com\/a-frame-change-an-objects-color-on-hover\/","og_locale":"nl_NL","og_type":"article","og_title":"A-Frame: Change an objects color on hover - Marinus Klasen","og_description":"A-Frame is quite fun to work with, but it takes a while to get into.. As I’m doing a project in A-Frame at the moment, you’ll probably see some more insights on this library on my blog in the next couple of weeks. Special thanks to Diarmid Mackenzie for helping me out in the A-Frame […]","og_url":"https:\/\/mklasen.com\/a-frame-change-an-objects-color-on-hover\/","og_site_name":"Marinus Klasen","article_publisher":"http:\/\/facebook.com\/marinus.klasen","article_author":"http:\/\/facebook.com\/marinus.klasen","article_published_time":"2023-08-24T19:51:16+00:00","article_modified_time":"2023-08-25T10:12:42+00:00","og_image":[{"width":512,"height":512,"url":"https:\/\/mklasen.com\/content\/uploads\/2020\/03\/cropped-cropped-mklasen-logo-margin-1.png","type":"image\/png"}],"author":"Marinus Klasen","twitter_card":"summary_large_image","twitter_creator":"@http:\/\/twitter.com\/marinusklasen","twitter_site":"@marinusklasen","twitter_misc":{"Written by":"Marinus Klasen","Est. reading time":"1 minuut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/mklasen.com\/a-frame-change-an-objects-color-on-hover\/#article","isPartOf":{"@id":"https:\/\/mklasen.com\/a-frame-change-an-objects-color-on-hover\/"},"author":{"name":"Marinus Klasen","@id":"https:\/\/mklasen.com\/#\/schema\/person\/bbad02776afb72dfba2ebfe1956a4e29"},"headline":"A-Frame: Change an objects color on hover","datePublished":"2023-08-24T19:51:16+00:00","dateModified":"2023-08-25T10:12:42+00:00","mainEntityOfPage":{"@id":"https:\/\/mklasen.com\/a-frame-change-an-objects-color-on-hover\/"},"wordCount":136,"commentCount":1,"publisher":{"@id":"https:\/\/mklasen.com\/#\/schema\/person\/bbad02776afb72dfba2ebfe1956a4e29"},"articleSection":["A-Frame"],"inLanguage":"nl-NL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/mklasen.com\/a-frame-change-an-objects-color-on-hover\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/mklasen.com\/a-frame-change-an-objects-color-on-hover\/","url":"https:\/\/mklasen.com\/a-frame-change-an-objects-color-on-hover\/","name":"A-Frame: Change an objects color on hover - Marinus Klasen","isPartOf":{"@id":"https:\/\/mklasen.com\/#website"},"datePublished":"2023-08-24T19:51:16+00:00","dateModified":"2023-08-25T10:12:42+00:00","breadcrumb":{"@id":"https:\/\/mklasen.com\/a-frame-change-an-objects-color-on-hover\/#breadcrumb"},"inLanguage":"nl-NL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/mklasen.com\/a-frame-change-an-objects-color-on-hover\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/mklasen.com\/a-frame-change-an-objects-color-on-hover\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/mklasen.com\/"},{"@type":"ListItem","position":2,"name":"A-Frame","item":"https:\/\/mklasen.com\/a-frame\/"},{"@type":"ListItem","position":3,"name":"A-Frame: Change an objects color on hover"}]},{"@type":"WebSite","@id":"https:\/\/mklasen.com\/#website","url":"https:\/\/mklasen.com\/","name":"Marinus Klasen","description":"","publisher":{"@id":"https:\/\/mklasen.com\/#\/schema\/person\/bbad02776afb72dfba2ebfe1956a4e29"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/mklasen.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"nl-NL"},{"@type":["Person","Organization"],"@id":"https:\/\/mklasen.com\/#\/schema\/person\/bbad02776afb72dfba2ebfe1956a4e29","name":"Marinus Klasen","image":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/mklasen.com\/#\/schema\/person\/image\/","url":"https:\/\/mklasen.com\/content\/uploads\/2021\/01\/DONE1171.jpg","contentUrl":"https:\/\/mklasen.com\/content\/uploads\/2021\/01\/DONE1171.jpg","width":1500,"height":1000,"caption":"Marinus Klasen"},"logo":{"@id":"https:\/\/mklasen.com\/#\/schema\/person\/image\/"},"description":"Marinus has been working in software\/web development for more than a decade. Since 2020 his attention shifted on sharing knowledge and developing products and tools for sharing knowledge. Marinus Klasen on Twitter","sameAs":["http:\/\/facebook.com\/marinus.klasen","https:\/\/nl.linkedin.com\/in\/marinusklasen","https:\/\/twitter.com\/http:\/\/twitter.com\/marinusklasen"]}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","featured_image_src":null,"featured_image_src_square":null,"author_info":{"display_name":"Marinus Klasen","author_link":"https:\/\/mklasen.com\/author\/mklasen\/"},"_links":{"self":[{"href":"https:\/\/mklasen.com\/wp-json\/wp\/v2\/posts\/1389"}],"collection":[{"href":"https:\/\/mklasen.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mklasen.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mklasen.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mklasen.com\/wp-json\/wp\/v2\/comments?post=1389"}],"version-history":[{"count":2,"href":"https:\/\/mklasen.com\/wp-json\/wp\/v2\/posts\/1389\/revisions"}],"predecessor-version":[{"id":1392,"href":"https:\/\/mklasen.com\/wp-json\/wp\/v2\/posts\/1389\/revisions\/1392"}],"wp:attachment":[{"href":"https:\/\/mklasen.com\/wp-json\/wp\/v2\/media?parent=1389"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mklasen.com\/wp-json\/wp\/v2\/categories?post=1389"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mklasen.com\/wp-json\/wp\/v2\/tags?post=1389"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}