#apache-flex #flex4
#apache-flex #flex4
Вопрос:
У меня есть следующий mxml:
<s:Image source="@Embed(source='my/path/to/img.png')" >
<flex:mask>
<s:Group alpha="0.1">
<s:Rect width="129" height="123">
<s:fill>
<s:SolidColor color="0x00FFFF"/>
</s:fill>
</s:Rect>
</s:Group>
</flex:mask>
</s:Image>
Разве этот код не должен генерировать прямоугольную маску размером 129 пикселей * 123 пикселя, которая создаст эффект обрезки?
Спасибо.
Комментарии:
1. Что
flex:mask
? Пользовательский компонент?2. @jason Это часть Flex. Когда я щелкаю по нему с помощью cmd, я получаю сообщение «Не удалось найти исходный код для flash.display. DisplayObject.mask»
Ответ №1:
Проблема в том, что объект mask должен быть уже создан И добавлен в список отображения к моменту его установки в качестве маски. Итак, ваш код должен быть изменен, чтобы отразить это, примерно так:
<s:Group id="imageMask" alpha="0.1">
<s:Rect width="129" height="123">
<s:fill>
<s:SolidColor color="0x00FFFF"/>
</s:fill>
</s:Rect>
</s:Group>
<s:Image source="@Embed(source='my/path/to/img.png')" mask="{imageMask}" />
Хорошего дня.
Ответ №2:
Это работает для BitmapImage
. Image
имеет свою собственную BitmapImage
внутреннюю ImageSkin
часть.
Создайте обложку, установите skinClass
:
<s:Image source="@Embed(source='my/path/to/img.png')"
skinClass="MyImageSkin"/>
и внутри MyImageSkin
найдите BitmapImage
и установите маску:
<!--- Primary image display skin part. -->
<s:BitmapImage id="imageDisplay" left="0" top="0" right="0" bottom="0">
<s:mask>
<s:Group alpha="0.1">
<s:Rect width="129" height="123">
<s:fill>
<s:SolidColor color="0x00FFFF"/>
</s:fill>
</s:Rect>
</s:Group>
</s:mask>
</s:BitmapImage>
Ответ №3:
Это должно сработать.
<s:Image source="@Embed(source='my/path/to/img.png')" >
<s:mask>
<s:Group alpha="0.1">
<s:Rect width="129" height="123">
<s:fill>
<s:SolidColor color="0x00FFFF"/>
</s:fill>
</s:Rect>
</s:Group>
</s:mask>
</s:Image>
s:mask является свойством изображения и будет использовать внутренний FXG в качестве маски.
Альфа не будет иметь никакого значения, если вы не установите для свойства MaskType=»» значение alpha (для clip, свойства по умолчанию, оно либо видно, либо нет).
Комментарии:
1. Да, это должно быть, единственная проблема в том, что это не так… Маску необходимо создать до того, как она будет фактически установлена таким образом (как маска).