[ https://issues.apache.org/jira/browse/FLEX-19794?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17331789#comment-17331789 ]
keerthana pothula commented on FLEX-19794: ------------------------------------------ Thanks for the answers for [Embedded systems |https://takeoffprojects.com/embedded-systems-projects]symbols using in apache... > incorrect embedding of fonts associated with embedded symbols > ------------------------------------------------------------- > > Key: FLEX-19794 > URL: https://issues.apache.org/jira/browse/FLEX-19794 > Project: Apache Flex > Issue Type: Bug > Components: Embedded Fonts > Affects Versions: Adobe Flex SDK 3.0 (Release) > Environment: Affected OS(s): All OS Platforms > Affected OS(s): All OS Platforms > Language Found: English > Reporter: Adobe JIRA > Assignee: Adobe JIRA > Priority: Minor > > Anyone who used multiple swf's as source for symbols that are embedded in as3 > probably has encountered this issue at least once. > This could also be component: 'Embedded Asset Transcoding', since it is about > transcoding, but then again, it is also about embedding fonts > Steps to reproduce: > 1. investigate attached demo project and note the following: > - abc.fla has one symbol in the library named 'AbcText', inside that symbol > is a text field, with the Palatino font embedded, only the letters 'abc' > - def.fla has one symbol in the library names 'DefText', inside that symbol > is a text field with the Palatino font embedded, only the letters 'cdef' > (note the extra c) > - both these symbols have been placed on the stage, you can investigate the > swf's and see the letters > 2. The Abc.as and Def.as classes in the project each embed a symbol from a swf > 3. font_issue.as just places Abc and Def on the display list. > > Actual Results: > > The 'Abc' texfield only shows 'c' > The 'Def' textfield shows 'def' > > Expected Results: > > The 'Abc' textfield should show 'abc' > > Workaround (if any): > > The workaround is embedding the complete needed characterset on _every_ > textfield in for all symbols that will be embedded. If you forget one the > possibility of it breaking is very high. > What happens: > It is clear what is happening: > Abc.as and Def.as are treated as separate CompilationUnits - for each the > embedded text is transcoded. > When both are added to the same movie (and incidentally also the same frame) > there will be two 'DefineFont3' tags that have a different FontID (refering > to the names as specified in swf_file_format_spec_v10.pdf) but share the > FontName. This will confuse the player -- most probably only the last > encountered DefineFont3 for a certain name/bold/italic combination is used by > the player -- resulting in the other embedded fonts being ignored and some > characters not being shown. > Because of the issue in the player as described above one could say it is > actully a _player_ issue. This might be the case (I cannot find anything in > the swf spec that talks about how often a DefineFont3 may appear per font. > But: since this issue also results in embedding the same font twice in an swf > I would say it has to be fixed at the flex compiler level. > Workaround at java compiler code level: If you change the method > decodeDefineFont2And3 in TagDecoder.java to make t.fontName (around line 782 > in the current svn checkout of the trunk) unique for every call (I added a > static number that gets increased every call) the resulting swf _will_ show > all fonts -- however, this will just prevent the issue at the player level, > and not address the double-embedded fonts (which is quite bad if you include > a big character range) > Solution: at some stage in the compile process the DefineFont3 tags from the > different CompilationUnits need to be merged to one, but I have not found a > good spot for that yet. > I can provide more info/explanations/code if needed. -- This message was sent by Atlassian Jira (v8.3.4#803005)