From 8ca72bf1943d35f94b2fc431121a43acfb1e2923 Mon Sep 17 00:00:00 2001 From: BlackMATov Date: Thu, 18 May 2017 04:11:30 +0700 Subject: [PATCH] Fix drawing object shape problems --- Assets/FlashTools/Docs/CHANGELOG.md | 1 + .../FlashTools/FlashExport/FlashExport.jsfl | 47 ++++++++++++------- ProjectStuff/FlashTools.org | 1 + 3 files changed, 33 insertions(+), 16 deletions(-) diff --git a/Assets/FlashTools/Docs/CHANGELOG.md b/Assets/FlashTools/Docs/CHANGELOG.md index 7527af3..af38907 100644 --- a/Assets/FlashTools/Docs/CHANGELOG.md +++ b/Assets/FlashTools/Docs/CHANGELOG.md @@ -1,5 +1,6 @@ ###### Version 1.3.8 * Fix shape groups in tweens problems +* Fix drawing object shape problems * Fix locked elements problem * Fix optimizator bitmap trim problems * Fix Unity 5.6 submesh sorting bug diff --git a/Assets/FlashTools/FlashExport/FlashExport.jsfl b/Assets/FlashTools/FlashExport/FlashExport.jsfl index 6565136..4d43d83 100644 --- a/Assets/FlashTools/FlashExport/FlashExport.jsfl +++ b/Assets/FlashTools/FlashExport/FlashExport.jsfl @@ -712,6 +712,18 @@ fttim.is_group_shape_instance = function (elem) { return elem.elementType == "shape" && elem.isGroup; }; + + fttim.is_object_shape_instance = function (elem) { + return elem.elementType == "shape" && elem.isDrawingObject; + }; + + fttim.is_simple_shape_instance = function (elem) { + return elem.elementType == "shape" && !elem.isGroup && !elem.isDrawingObject; + }; + + fttim.is_complex_shape_instance = function (elem) { + return elem.elementType == "shape" && (elem.isGroup || elem.isDrawingObject); + }; fttim.is_symbol_instance = function (elem) { return elem.elementType == "instance" && elem.instanceType == "symbol"; @@ -902,24 +914,27 @@ timeline.currentFrame = frame_index; timeline.setSelectedFrames(frame_index, frame_index + 1, true); - var groups = ft.array_filter(frame.elements, fttim.is_group_shape_instance); - ft.array_foreach(groups, function (group, group_index) { + var elements = ft.array_clone(frame.elements); + ft.array_foreach(elements, function (elem, elem_index) { doc.selectNone(); - doc.selection = [group]; - var group_depth = group.depth; - - doc.unGroup(); - try { - doc.unlockAllElements(); - } catch (e) {} - - var wrapper_item_name = ft.gen_unique_name(); - var wrapper_item = doc.convertToSymbol("graphic", wrapper_item_name , "top left"); - for (var i = 0; i < group_depth; ++i) { - doc.arrange("backward"); + doc.selection = [elem]; + + if (fttim.is_simple_shape_instance(elem)) { + // nothing + } else if (fttim.is_complex_shape_instance(elem)) { + if (fttim.is_object_shape_instance(elem)) { + doc.breakApart(); + doc.group(); + } + doc.unGroup(); + try { + doc.unlockAllElements(); + } catch (e) {} + var wrapper_item = doc.convertToSymbol("graphic", ft.gen_unique_name(), "top left"); + new_symbols.push(wrapper_item); + } else { + doc.arrange("front"); } - - new_symbols.push(wrapper_item); }); }, fttim.is_keyframe); }, fttim.is_not_guide_layer); diff --git a/ProjectStuff/FlashTools.org b/ProjectStuff/FlashTools.org index b3f4a2c..bbcf115 100644 --- a/ProjectStuff/FlashTools.org +++ b/ProjectStuff/FlashTools.org @@ -68,6 +68,7 @@ dipyalov: фишка в том, что swf обновился, но и собр **** TODO Не работает конвертация в batchmod'е **** DONE В ошибках конвертации не пишется путь до swf **** DONE Не растеризуются группы в твинах +**** DONE Проблемы с порядком drawing objects и groups при экспорте **** DONE Unity может переставлять сабмеши на одинаковой глубине (проблема с масками) https://fogbugz.unity3d.com/default.asp?910858_0diqjnj67814hj3i http://ru.esotericsoftware.com/forum/Submeshes-render-in-random-order-with-orthographic-camera-8528