mirror of
https://github.com/BlackMATov/unity-flash-tools.git
synced 2025-12-13 11:39:54 +07:00
Fix (conversion error: 'Error: scaleSelection: Argument number 1 is invalid.')
This commit is contained in:
@@ -1,3 +1,6 @@
|
||||
###### Version 1.3.10
|
||||
* Fix (conversion error: 'Error: scaleSelection: Argument number 1 is invalid.')
|
||||
|
||||
###### Version 1.3.9
|
||||
* Not save generated meshes in scene
|
||||
* Fix (At line 908 of file "FTMain.jsfl": ReferenceError: ft is not defined)
|
||||
|
||||
@@ -82,78 +82,80 @@
|
||||
ft.type_assert(doc, Document);
|
||||
ft.type_assert(location_name, 'string');
|
||||
ft.type_assert_if_defined(optional_item, LibraryItem);
|
||||
|
||||
var selection_r = doc.getSelectionRect();
|
||||
var selection_w = selection_r.right - selection_r.left;
|
||||
var selection_h = selection_r.bottom - selection_r.top;
|
||||
|
||||
var max_scale = cfg.max_convertible_selection / Math.max(selection_w, selection_h);
|
||||
var prefer_scale = ftdoc.calculate_item_prefer_scale(doc, optional_item);
|
||||
var final_scale = Math.min(prefer_scale, max_scale);
|
||||
|
||||
if (final_scale < prefer_scale) {
|
||||
var down_scale = Math.floor(final_scale / prefer_scale * 1000) * 0.001;
|
||||
ft.trace_fmt(
|
||||
"[Warning] {0}\n" +
|
||||
"- Converted element was downscaled ({1}x) to maximum allowed size ({2}px)",
|
||||
location_name, down_scale, cfg.max_convertible_selection);
|
||||
}
|
||||
|
||||
if (ft.approximately(final_scale, 1.0, cfg.scale_precision)) {
|
||||
(function() {
|
||||
var elem_r = doc.getSelectionRect();
|
||||
var selection_r = doc.getSelectionRect();
|
||||
if ( selection_r ) { // getSelectionRect returns 0 for empty clips
|
||||
var selection_w = selection_r.right - selection_r.left;
|
||||
var selection_h = selection_r.bottom - selection_r.top;
|
||||
|
||||
var elem_x = elem_r.left;
|
||||
var elem_y = elem_r.top;
|
||||
var elem_w = elem_r.right - elem_r.left;
|
||||
var elem_h = elem_r.bottom - elem_r.top;
|
||||
var max_scale = cfg.max_convertible_selection / Math.max(selection_w, selection_h);
|
||||
var prefer_scale = ftdoc.calculate_item_prefer_scale(doc, optional_item);
|
||||
var final_scale = Math.min(prefer_scale, max_scale);
|
||||
|
||||
var elem_dx = Math.round(elem_x) - elem_x;
|
||||
var elem_dy = Math.round(elem_y) - elem_y;
|
||||
var elem_dw = Math.round(elem_w) - elem_w;
|
||||
var elem_dh = Math.round(elem_h) - elem_h;
|
||||
if (final_scale < prefer_scale) {
|
||||
var down_scale = Math.floor(final_scale / prefer_scale * 1000) * 0.001;
|
||||
ft.trace_fmt(
|
||||
"[Warning] {0}\n" +
|
||||
"- Converted element was downscaled ({1}x) to maximum allowed size ({2}px)",
|
||||
location_name, down_scale, cfg.max_convertible_selection);
|
||||
}
|
||||
|
||||
if (ft.approximately(final_scale, 1.0, cfg.scale_precision)) {
|
||||
(function() {
|
||||
var elem_r = doc.getSelectionRect();
|
||||
|
||||
doc.convertSelectionToBitmap();
|
||||
var elem = doc.selection[0];
|
||||
var elem_x = elem_r.left;
|
||||
var elem_y = elem_r.top;
|
||||
var elem_w = elem_r.right - elem_r.left;
|
||||
var elem_h = elem_r.bottom - elem_r.top;
|
||||
|
||||
elem.x -= elem_dx;
|
||||
elem.y -= elem_dy;
|
||||
elem.width -= elem_dw;
|
||||
elem.height -= elem_dh;
|
||||
})();
|
||||
} else {
|
||||
(function() {
|
||||
var wrapper_item_name = ft.gen_unique_name();
|
||||
var wrapper_item = doc.convertToSymbol("graphic", wrapper_item_name , "top left");
|
||||
fttim.recursive_scale_filters(doc, wrapper_item, final_scale);
|
||||
var elem_dx = Math.round(elem_x) - elem_x;
|
||||
var elem_dy = Math.round(elem_y) - elem_y;
|
||||
var elem_dw = Math.round(elem_w) - elem_w;
|
||||
var elem_dh = Math.round(elem_h) - elem_h;
|
||||
|
||||
var elem = doc.selection[0];
|
||||
elem.setTransformationPoint({x: 0, y: 0});
|
||||
doc.scaleSelection(final_scale, final_scale);
|
||||
doc.convertSelectionToBitmap();
|
||||
var elem = doc.selection[0];
|
||||
|
||||
var elem_x = elem.x;
|
||||
var elem_y = elem.y;
|
||||
var elem_w = elem.width;
|
||||
var elem_h = elem.height;
|
||||
elem.x -= elem_dx;
|
||||
elem.y -= elem_dy;
|
||||
elem.width -= elem_dw;
|
||||
elem.height -= elem_dh;
|
||||
})();
|
||||
} else {
|
||||
(function() {
|
||||
var wrapper_item_name = ft.gen_unique_name();
|
||||
var wrapper_item = doc.convertToSymbol("graphic", wrapper_item_name , "top left");
|
||||
fttim.recursive_scale_filters(doc, wrapper_item, final_scale);
|
||||
|
||||
var elem_dx = Math.round(elem_x) - elem_x;
|
||||
var elem_dy = Math.round(elem_y) - elem_y;
|
||||
var elem_dw = Math.round(elem_w) - elem_w;
|
||||
var elem_dh = Math.round(elem_h) - elem_h;
|
||||
var elem = doc.selection[0];
|
||||
elem.setTransformationPoint({x: 0, y: 0});
|
||||
doc.scaleSelection(final_scale, final_scale);
|
||||
|
||||
doc.convertSelectionToBitmap();
|
||||
elem = doc.selection[0];
|
||||
var elem_x = elem.x;
|
||||
var elem_y = elem.y;
|
||||
var elem_w = elem.width;
|
||||
var elem_h = elem.height;
|
||||
|
||||
elem.x -= elem_dx;
|
||||
elem.y -= elem_dy;
|
||||
elem.width -= elem_dw;
|
||||
elem.height -= elem_dh;
|
||||
var elem_dx = Math.round(elem_x) - elem_x;
|
||||
var elem_dy = Math.round(elem_y) - elem_y;
|
||||
var elem_dw = Math.round(elem_w) - elem_w;
|
||||
var elem_dh = Math.round(elem_h) - elem_h;
|
||||
|
||||
elem.setTransformationPoint({x: (elem_x - elem.x), y: (elem_y - elem.y)});
|
||||
doc.scaleSelection(1.0 / final_scale, 1.0 / final_scale);
|
||||
|
||||
fttim.recursive_scale_filters(doc, wrapper_item, 1.0 / final_scale);
|
||||
})();
|
||||
doc.convertSelectionToBitmap();
|
||||
elem = doc.selection[0];
|
||||
|
||||
elem.x -= elem_dx;
|
||||
elem.y -= elem_dy;
|
||||
elem.width -= elem_dw;
|
||||
elem.height -= elem_dh;
|
||||
|
||||
elem.setTransformationPoint({x: (elem_x - elem.x), y: (elem_y - elem.y)});
|
||||
doc.scaleSelection(1.0 / final_scale, 1.0 / final_scale);
|
||||
|
||||
fttim.recursive_scale_filters(doc, wrapper_item, 1.0 / final_scale);
|
||||
})();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -63,6 +63,8 @@ https://gist.github.com/talecrafter/111ea3345911bd238f4998b4d5a04bf3
|
||||
**** TODO Оптимизации по скейлу не влияют на растр
|
||||
**** TODO Не работает конвертация в batchmod'е
|
||||
**** TODO Площадь для оптимизации вычисляется некорректно при повёрнутых клипах
|
||||
**** DONE conversion error: 'Error: scaleSelection: Argument number 1 is invalid.'
|
||||
HsiyaoWang/magoichi-test.fla
|
||||
**** TODO Возможно проблемы с DX9
|
||||
UNITY_UV_STARTS_AT_TOP
|
||||
UNITY_HALF_TEXEL_OFFSET
|
||||
|
||||
Reference in New Issue
Block a user