Анимация может быть экспортирована как изображения, но это не должно происходить, если вы не скажете это. Как выглядит ваша библиотека JavaScript? Экспортируются ли какие-либо изображения? Возможно, поищите в источнике .cache
, чтобы узнать, не делает ли Adobe что-нибудь смешное под капотом.
Если карта является источником SVG: К сожалению, только единственная поддержка SVG в EaselJS (которая лежит в основе экспорта Animate) предназначена для svg в качестве «источника растрового изображения». Это означает, что он обрабатывается как изображение определенного размера, и масштабирование его выше «100%» будет интерполировать детали.
Может быть возможно загрузить его в качестве большего растрового изображения и уменьшить его до начала, но это:
Другой вариант - импортировать SVG-ресурс в Adobe Animate, который должен преобразовать его в векторную графику. Если в EaselJS это вектор, вы можете масштабировать его столько, сколько хотите, потому что он использует векторные API Canvas для рисования вместо источника изображения.
Вы упомянули, что зеленый круг является родным (я предполагаю, что форма в Animate?). Вы уверены, что он не экспортируется как изображение, а не форма? Вы что-нибудь кешируете?
Надеюсь, это поможет!
var item = list[oldIndex];
list.RemoveAt(oldIndex);
if (newIndex > oldIndex) newIndex--;
// the actual index could have shifted due to the removal
list.Insert(newIndex, item);
Я ожидал бы также:
// Makes sure item is at newIndex after the operation
T item = list[oldIndex];
list.RemoveAt(oldIndex);
list.Insert(newIndex, item);
... или:
// Makes sure relative ordering of newIndex is preserved after the operation,
// meaning that the item may actually be inserted at newIndex - 1
T item = list[oldIndex];
list.RemoveAt(oldIndex);
newIndex = (newIndex > oldIndex ? newIndex - 1, newIndex)
list.Insert(newIndex, item);
... добился бы цели, но у меня нет VS на этой машине для проверки.
Вставляйте объект в настоящее время в oldIndex
быть в newIndex
и затем удалите исходный экземпляр.
list.Insert(newIndex, list[oldIndex]);
if (newIndex <= oldIndex) ++oldIndex;
list.RemoveAt(oldIndex);
Необходимо принять во внимание, что индекс объекта, который Вы хотите удалить, может измениться из-за вставки.
Список <T>.Remove () и <T>.RemoveAt Списка () не возвращает объект, который удаляется.
Поэтому необходимо использовать это:
var item = list[oldIndex];
list.RemoveAt(oldIndex);
list.Insert(newIndex, item);
Самый простой путь:
list[newIndex] = list[oldIndex];
list.RemoveAt(oldIndex);
Править
Вопрос не очень ясен... Так как мы не заботимся где list[newIndex]
объект идет, я думаю самый простой способ сделать, это следующим образом (с или без дополнительного метода):
public static void Move<T>(this List<T> list, int oldIndex, int newIndex)
{
T aux = list[newIndex];
list[newIndex] = list[oldIndex];
list[oldIndex] = aux;
}
Это решение быстро, потому что оно не включает вставки/удаления списка.