You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flex.apache.org by "keerthana pothula (Jira)" <ji...@apache.org> on 2021/04/26 06:39:01 UTC

[jira] [Commented] (FLEX-19794) incorrect embedding of fonts associated with embedded symbols

    [ 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)