Выбор 100 случайных точек может означать, что похожие (или иногда даже разные) изображения будут помечены как одинаковые, что, я полагаю, не то, что вы хотите. Хеши MD5 не будут работать, если изображения были разных форматов (png, jpeg и т. Д.), Имели разные размеры или имели разные метаданные. Хорошим выбором будет уменьшение всех изображений до меньшего размера, сравнение по пикселям не должно занимать слишком много времени, если вы используете хорошую библиотеку изображений / быстрый язык, а размер достаточно мал.
Вы можете попробовать сделать их крошечными, тогда, если они одинаковые, проведите другое сравнение с большим размером - может быть хорошим сочетанием скорости и точности ...
Вам просто нужно использовать percentWidth
вместо атрибута width
.
Итак, третья строка в вашем коде будет:
textinp.percentWidth = 100;
Это меня тоже на некоторое время сбило с толку.
Вышеупомянутый ответ правильный, но я не могу его комментировать, потому что я слишком новичок в SO .
Если вы хотите добавить эту функцию к пользовательскому компоненту, вы можете сделать что-то вроде этого:
[PercentProxy("percentMultiplier")]
public function set multiplier(value:Number):void
{
_multiplier = value;
invalidSomethingOrDoSomething();
}
public function set percentMultiplier(value:Number):void
{
multiplier = value / 100;
}
Конечно, когда вы делаете это для ширины, подклассы контейнера ищут percentWidth , и не проверяйте метаду, поэтому не называйте ее widthInPercent или чем-то еще, даже если можете.
Вот ответ:
var textinp:TextInput = new TextInput();
someContainer.addChild(textinp);
textinp.percentWidth = 100;
Если позже вы захотите вернуться к ширине на основе пикселей для того же компонента, вот что вам нужно сделать:
textinp.percentWidth = NaN;