Форум

Конфликт с mootools-core.js -- Joomla 3

08 сентября 2015 17:35 #3683
При подключении библиотеки mootools-core.js, прекращается работа b4w с сообщением:
uncaught exception: Wrong camera type: undefined

При отключении – все работает.

строка в b4w.full.min.js: 499

Например тут http://мир-и-любовь.рф/
Земля анимированная и крутится, если отключить mootools-core.js
08 сентября 2015 18:46 #3686
Здравствуйте!

Не могли бы Вы подготовить отдельный HTML файлик, в котором воспроизводится эта проблема, и приаттачить его на форуме? Заранее спасибо.
Руководитель разработки
08 сентября 2015 19:12 #3687
Вот две ссылки, файлы упрощены в ноль, чистый html, один с загрузкой mootools-core.js, другой – без.
http://мир-и-любовь.рф/templates/protostar/zemlya/shapka_a.html – подключен mootools-core.js
http://мир-и-любовь.рф/templates/protostar/zemlya/shapka_b.html – не подключен, и b4w пашет.

Все беда в том, что Joomla интенсивно юзает эту библиотеку, так бы вырубил и забыл , хоть CMS меняй…
08 сентября 2015 20:00 #3689
Эта проблема есть как в новом релизе, так и в предыдущей версии.
09 сентября 2015 11:36 #3710
Да, бага воспроизвелась у нас. Фикс будет доступен в конце месяца в релизе, или можете сами его применить и скомпилировать движок.

diff --git a/src/camera.js b/src/camera.js
index e5cafb3..4b861ea 100644
— a/src/camera.js
+++ b/src/camera.js
@@ -1036,7 +1036,9 @@ function update_ortho_scale(obj) {
     if (!m_obj_util.is_camera(obj))
         return;
 
-    if (render.cameras[0].type === exports.TYPE_ORTHO) {
+    var cams = render.cameras;
+
+    if (cams[0].type === exports.TYPE_ORTHO) {
         if (render.move_style === exports.MS_TARGET_CONTROLS) {
             var dir_dist = m_vec3.dist(render.trans, render.pivot);
             var new_scale = dir_dist / render.init_dist * 
@@ -1047,10 +1049,10 @@ function update_ortho_scale(obj) {
             var new_scale = dir_dist / render.init_dist * 
                         render.init_top;  
         } else
-            var new_scale = obj.render.cameras[0].top;
+            var new_scale = cams[0].top;
 
-        for (var i in obj.render.cameras) {
-            var cam = obj.render.cameras[i];
+        for (var i = 0; i < cams.length; i++) {
+            var cam = cams[i];
             cam.top = new_scale;
             set_projection(cam, cam.aspect);
         }
Руководитель разработки
09 сентября 2015 17:35 #3721
Спасибо!!!
25 октября 2015 23:28 #4565
А если пока фреймом вставить в сайт?
Коплю деньги на коммерческий B4W.
 
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.