gkk created FLEX-33351:
--------------------------
Summary: mx menubar problems using embedded font
Key: FLEX-33351
URL: https://issues.apache.org/jira/browse/FLEX-33351
Project: Apache Flex
Issue Type: Bug
Components: mx: Menu Bar
Affects Versions: Adobe Flex SDK 4.5.1 (Release)
Environment: FlashBuilder 4.6, SDK 4.5.1
Reporter: gkk
1. Copy/paste the below Flex application into your IDE of choice (I'm using
FB4.6, with Flex SDK 4.5.1).
2. Copy Arial.ttf from your system library folder into the workspace folder
you've copied this code.
3. Run the application.
4. Observe that when you select the checkbox to enable variableRowHeight, that
the menuBar does not allow enough vertical height to fit the menu options. This
occurs for all pull-down menus, although it's easier to see when there are a
lot of options (e.g. click on "File" pull-down and position your mouse over the
last option that appears).
5. Also observe, regardless of variableRowHeight setting, there are visual
artifacts in the menubar. For example, click on "Edit1", and observe a gray
vertical line running about 10 pixels to the left of the menu-bar's pull-down
text area. The right-side of the menubar pull-down area has a white pixel
border mistakenly placed between the right-edge of the menubar and the shadow
region.
6. Remove `fontFamily="arial_mx"` from the menubar's properties, run the
program again, and observe the menubar looks perfect.
7. As a side note, however, there appears to be functional bug now, in that
when you click, for example, the first item in a pull-down menu (e.g. "File"
then "New" in my example below), then click outside the menu to collapse the
menubar, the click again the same pull-down "File" selection, then mouse-over
the "New" option (which you previously clicked), Flex doesn't highlight to show
the mouse is hovering over "New".).
8. As another aside, I implemented the spark menuBar component from here:
https://github.com/badu/SparkComponents
This did remove the visual artifacts, perhaps because there's no dropshadow.
However, the embedded text appears more blurrly than the already somewhat
blurry embedded text in Adobe's spark (e.g. dataGrid) components. Zooming in on
the text using my Mac's DigitalColor Meter, I can see that Adobe's text, in the
darkest portion, is truly black (0x000000) whereas the new spark MenuBar's
embedded spark text (same font settings) is gray (0x626262) (I zoomed in on a
straight letter "l" as in "lobster"). The darkest part of the spark menubar
text seems to spill into neighboring pixels, making it appear blurry.
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
>
<!-- modified from:
http://blog.flexexamples.com/2010/02/19/setting-a-variable-row-height-on-an-mx-menubar-control-in-flex/
-->
<fx:Script>
<![CDATA[
import mx.events.MenuEvent;
protected function
mBar_menuShowHandler(evt:MenuEvent):void {
evt.menu.variableRowHeight = ch.selected;
evt.menu.invalidateSize();
}
]]>
</fx:Script>
<fx:Style>
@namespace s "library://ns.adobe.com/flex/spark";
@font-face {
font-family:arial_mx;
src:url("Arial.ttf");
embed-as-cff:false;
}
</fx:Style>
<s:controlBarContent>
<s:CheckBox id="ch" label="variableRowHeight" />
</s:controlBarContent>
<mx:MenuBar id="mBar"
labelField="@label"
horizontalCenter="0" top="20"
menuShow="mBar_menuShowHandler(event);"
fontFamily="arial_mx">
<mx:dataProvider>
<s:XMLListCollection>
<fx:XMLList xmlns="">
<menu label="File">
<item label="New" />
<item label="Open" />
<item label="Save" />
<item label="Save As" />
<fake type="separator" />
<item label="Exit1" />
<item label="Exit2" />
<item label="Exit3" />
<item label="Exit4" />
<item label="Exit5" />
<item label="Exit6" />
<item label="Exit7" />
<item label="Exit8" />
<item label="Exit9" />
<item label="Exit10" />
</menu>
<menu label="Edit1">
<item label="Cut" />
<item label="Copy" />
<item label="Paste" />
<fake type="separator" />
<item label="Undo" />
<item label="Redo" />
<fake type="separator" />
<item label="radio button"
type="radio" toggled="true" />
<item label="check box"
type="check" toggled="true" />
</menu>
<menu label="Edit2">
<item label="Cut" />
<item label="Copy" />
<item label="Paste" />
<fake type="separator" />
<item label="Undo" />
<item label="Redo" />
<fake type="separator" />
<item label="radio button"
type="radio" toggled="true" />
<item label="check box"
type="check" toggled="true" />
</menu>
<menu label="Edit3">
<item label="Cut" />
<item label="Copy" />
<item label="Paste" />
<fake type="separator" />
<item label="Undo" />
<item label="Redo" />
<fake type="separator" />
<item label="radio button"
type="radio" toggled="true" />
<item label="check box"
type="check" toggled="true" />
</menu>
</fx:XMLList>
</s:XMLListCollection>
</mx:dataProvider>
</mx:MenuBar>
</s:Application>
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira