转载的:flash 中文不显示问题

本文详细介绍了Flash中字体元件与字符嵌入的功能及应用技巧,包括如何解决中文显示问题,以及不同字体处理方式对SWF文件大小的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转自:http://hi.baidu.com/monotonous/blog/item/94d19dbf5656640218d81f0d.html

flash+xml

flash+xml 中文不显示问题

xml 中文不显示问题

flash 中文不显示问题

如果大家下载国外的flash网站 遇到中文不显示的情况 当你把XML里的encoding换成UTF-8并且另存UTF-8还是不行的话 看看这篇文章吧 我也是在郁闷了三天之后才搜到的 结果很轻易就解决了 这和FLASH里的嵌入字体 字体元件有关 如果还没有恍然大悟 就继续往下看吧 真是欣喜若狂啊

flash关于字体元件与字符嵌入等功能详解

连接http://www.hackhome.com/InfoView/Article_168512.html

flash的优点之一就是能够使用各种各样的字体,而传统的Html要使用各种各样非系统默认的字体只有两种办法

1,是将特殊字体嵌入到浏览器中,可惜这一功能不仅仅体积巨大而且并不是对于所有浏览器都适用。(英文字体倒只有百来K但是中文字体起码都1M以上)这样的办法对于中文来说显然是不现实的
2,是将所用到特殊字体的地方都做成图片,这样的好处是任何平台浏览器显示效果都是一致的。但是缺点也是明显的,首先修改不容易,即使是最细微的修改也需要用专门的图形编辑软件来修改,很是麻烦。而且不可能用太多的字体,那样图片会极其巨大甚至比嵌入字体所需要的体积还大。

flash完全没有以上的任何问题,当你输入任何字体(包括系统字体)在导出成SWF格式的时候会自动转换成图形,就是说在任何平台显示效果都是一样的,无论他安装没有安装这种字体。而且要修改的时候跟修改任何文本文档一样的简便。随着字数的增加,最终swf的文件也会越大。不过这种增大对于在HTML中嵌套字体所需要的动辄几M的体积相比是算不了什么的。并且与平台和显示器无关。

不过flash的特点以及优势就是小巧,多增加一个字就增加几百字节的大小,这对于flash来说也是不能忍受的。所以flash提供了更多的功能让swf文件更小巧。下面我将详细讲述flash关于字体元件与字符嵌入等功能的优点,缺点以及适用范围。

先说flash中“使用设备字体”的功能,此功能在文本属性里。只对静态文本有效,前面已经说了,输入的任何文本都会被flash自动转换为图片,这样的好处是任何平台任何浏览器显示效果都一致,缺点是每增加一个字都会增加最终swf文件的大小。如果你输入一段文本,然后在属性里选择了使用设备字体。那么flash就不会把你输入的字体转换成图形,这样无论你写多少字对swf大小的影响都不大。但是当别人打开这个swf文件的时候会首先检查系统里是否有你所输入的字体,如果有则显示你当初输入的字体。这样看起来就跟你在本地机器上编辑的效果一样。但是一旦浏览者的机器上不具备你当初输入的字体,那么swf将用浏览者所使用的系统上的默认字体来显示,至于效果嘛。。。听天由命吧。这样的做法适合那种一般情况下浏览者系统里都具备的字体,即使万一浏览者里没有这种字体也能显示出字来。只不过效果无法预测而已。

现在说说动态文本中的字符嵌入功能,将文本设定成动态文本或者输入文本就会出现字符嵌入这一功能。这一功能的作用是将所选择的字符装载到swf文件中,这样动态的字符加载进去或者输入字符的时候就会变成你当初嵌入的字体。比如你当初输入了一句话使用简体黑体写的,点其属性选择嵌入字符,选择指定范围里面有很多种语言,选择你输入的字所属于的语言种类――在这里是简体中文,点确定。这样就等于你把整套简体黑体嵌入到了flash文件里,当加载动态文字的时候这个地方显示的就是黑体。这样会使最终的swf文件增加1M多(具体大小根据字体的大小来决定,所以英文肯定比中文要小的多)。经过测试嵌套进去的字体对静态文本一样有效。比如这里嵌套进去了简体黑体,所以你输入大量的静态的简体黑体后倒出的swf文件只增加了几百字节而已。(不需要选择设备字体)

如果你输入的是简体却选择嵌入繁体,那么凡是跟简体不相同写法的繁体字是不会显示的,只有更简体写法一致的繁体才会显示。嵌入字符还有一个选项是自动填充。他会自动的把你所写的字嵌入进去,只嵌入这几个字,这样最终文件大小也会小很多。这样做的缺点是,比如你当初输入的是“你是笨蛋”,然后选择自动填充,自动填充的左边就会显示“你是笨蛋”,当然这里你也可以自己添加或者删除文字,比如删除“笨蛋”这样就是剩下“你是‘,最后选择确定。这样你只把确定两个字嵌入到了flash里。你当初创建的”你是笨蛋“只会显示”你是“其他任何字符都不会显示了。如果是输入文本也只能输入”你是“,输入其他字符是无效的。

接下来说字体元件,使用字体元件的方法是按F11打开库,鼠标左键点库文件名右边的按钮,会出现一个菜单,选择新建字型。这时候会弹出一个字型的属性框,进行设置。名称要起有意义的名称不要起字体的名称,比如”标题文字“。然后你将要用到的字体,这里要注意的是锯齿选项(下面会提到)选择好了后你可以看到在字体选择中多了一项以新建的字体文件名称为名称的字体。因为我们开始建立的字体元件名称叫标题文字,所以在这里是叫”标题文字*“选择使用这种字体,选择好了后你可以使用两种方式来好好的利用这个功能。

 

1直接放在flash文件里,这样做并不会对flash文件大小有影响,就跟普通的flash文件一样,flash默认会将字体转换成图形,你也可以设置成为系统字体。一切照旧,唯一的区别是当你更换字体的时候可以直接更换字体元件。比如你所有的文字本来都是宋体,可是后来觉得换成黑体更好看,你就可以直接更改字体元件的属性(更改的办法是打开库,选择字体元件点鼠标右键,选择属性)由宋体改成黑体。这样一来所有使用字体元件的文字全部改成黑体(想想如果你没有使用这种功能,修改起来会多痛苦)。

2 第一步跟方法一一样,全部弄完后,选择字体元件,选择链接。(打开库,选择字体元件点鼠标右键,选择链接)选择”为运行时共享导入“ URL里填写以后你将要使用的一个swf文件路径可以使用相对也可以使用绝对路径(如果在同一文件夹下可以写成"字体.swf")标识符就直接使用字体元件的名称

第二步,跟方法一一样,只不过是专门建立一个只有字体元件的swf文件。选择链接(打开库,选择字体元件点鼠标右键,选择链接),选择”为运行时共享导出“ URL里填写在上一步里写好的路径。(上一步写的是"字体.swf")标识符也跟上一步时的字体元件名称一致。然后导出成swf文件。你会发现文件比较大(如果当初选择了锯齿文字会增加这个swf字体库文件的大小(什么情况下使用锯齿请参看本BLOG相关文章))。不过大点没什么关系,这个仅仅是一个引用的文件,就好象把字体都放在这里面当方法一建立的文件有需要的时候再从这里面找。这样的话要什么取什么,方法一建立的文件的大小会非常小,小到难以置信的地步。哈哈不错的东西。而且象第一部建立的文件想改变字体什么的也只需要改变方法二建立的文件的字体元件属性。这就好比第一步建立的swf文件是第二步建立的swf文件的快捷方式一样。只是第二步建立的swf文件的引用,实际的东西都在第二步建立的swf文件里装着呢。

flash中字体元件在一个swf里可以引用多个。就是说你的swf作品里可以使用多种字体元件引用外部的不同的字体元件包。但是一个“被引用“的swf字体文件包里,只能存放一种字体然后打包。否则会出现错误

<think>首先,用户的问题是:“我想解决STM32烧录程序时找到Cortex-M0的问题请问STM32烧录程序找到Cortex-M0解决方案”。这似乎是关于STM32微控制器烧录程序时遇到错误,具体是找到Cortex-M0核心。从系统级指令中,我需要:-所有行内数学表达式用$...$格式。-独立公式用$$...$$格式并单独成段。-LaTeX语法正确。-使用中文回答。-生成相关问题。-在回答中引用的段落末尾自然地添加引用标识,例如[^1]。-回答结构清晰,帮助用户逐步解决问题。-参考站内引用:[^1],[^2],[^3],[^4]。站内引用内容:-[^1]:关于STM32远程烧录程序,涉及启动机制、BootLoader等。-[^2]:关于STM32通过USB烧录程序,包括使用Arduinobootloader。-[^3]:关于STM32flash被锁导致错误,解决办法。-[^4]:关于STM32烧录程序方式,启动模式等。用户的问题核心是“找到Cortex-M0”,这可能是在烧录工具(如KeiluVision,ST-LinkUtility等)中出现的错误。常见原因包括:1.连接问题:硬件连接正确,如SWD/JTAG接口未连接好。2.启动模式设置错误:STM32的BOOT引脚配置正确。3.Flash被锁:芯片被保护,无法访问。4.工具配置错误:烧录软件中的设备选择错误。5.芯片损坏:硬件故障。从引用中,[^3]直接提到“ErrorFlashDownloadfailedCortex-M4”,并提供了解决办法,这类似于用户的问题,但用户是Cortex-M0。Cortex-M0和M4都是ARM核心,但错误类似,解决方法可能相通。[^4]提到启动模式,这可能相关。[^2]提到USB烧录,可能涉及bootloader。[^1]是关于远程烧录。我的回答应该:1.结构清晰:逐步解决问题。2.参考引用:自然地添加引用标识。3.使用中文。4.生成相关问题。步骤:1.**确认问题**:用户烧录STM32时,工具报告找到Cortex-M0核心。2.**常见原因和解决方案**:-检查硬件连接:确保SWD/JTAG接口正确连接,电源稳定。-检查启动模式:BOOT引脚设置是否正确(通常BOOT0=0,BOOT1=0为正常启动)。-解锁Flash:如果芯片被锁,需要擦除或解锁。-软件配置:在烧录工具中,确保选择了正确的设备型号(如STM32F0系列,如果是Cortex-M0)。-其他:复位芯片,检查电路板。从引用[^3],它提到“ErrorFlashDownloadfailedCortex-M4”,解决办法包括使用J-Flash擦除。类似地,对于Cortex-M0,可以使用ST-LinkUtility或其他工具解锁。从引用[^4],启动模式重要,BOOT[1:0]引脚配置。回答结构:-引言:确认问题。-步骤1:检查硬件连接。-步骤2:检查启动模式。-步骤3:解锁Flash或擦除芯片。-步骤4:软件配置。-步骤5:其他建议。-结尾:总结。-生成相关问题。添加引用:在相关部分末尾添加引用标识,例如在讨论解锁Flash时引用[^3],在启动模式时引用[^4]。使用中文。生成相关问题:基于主题,如烧录错误、STM32配置等。确保行内数学表达式正确:如果有任何数学内容,但这里可能需要,除非涉及地址或值,如BOOT引脚值。例如,BOOT引脚设置:BOOT0和BOOT1的值,可以用行内格式,如$BOOT0=0$,$BOOT1=0$。独立公式:可能需要。现在,构建回答。</think>### STM32烧录程序时找到Cortex-M0的解决方案 您在烧录STM32程序时遇到工具报告“找到Cortex-M0”的错误,这通常发生在使用Keil uVision、ST-Link Utility或其他烧录软件时。此错误表明烧录工具无法识别或连接到STM32芯片的Cortex-M0核心,可能由硬件连接、启动模式、Flash锁状态或软件配置问题引起。下面我将一步步引导您解决此问题,确保解决方案真实可靠。解决方案基于STM32常见烧录机制和参考内容,我会在相关部分添加引用标识。 #### 步骤1: 检查硬件连接(优先排除基础问题) - **原因分析**:SWD(Serial Wire Debug)或JTAG接口连接良、电源稳定或电路板故障可能导致工具无法检测核心。 - **解决方案**: - 确保烧录器(如ST-Link、J-Link)与STM32开发板的SWD接口正确连接:通常包括`SWCLK`(时钟线)、`SWDIO`(数据线)、`GND`(地线)和`VCC`(电源线)。检查线缆是否松动或损坏。 - 验证电源供应:STM32芯片需要稳定电压(通常3.3V)。使用万用表测量$V_{CC}$和$GND$引脚电压,确保在$3.0V - 3.6V$范围内。 - 尝试复位芯片:按下开发板上的复位按钮,或在烧录前断开再重新连接电源。 - 如果问题持续,用另一块已知正常的STM32开发板测试烧录器,以排除硬件故障。 #### 步骤2: 检查启动模式设置(关键配置步骤) - **原因分析**:STM32的启动模式由BOOT引脚控制。如果BOOT引脚配置错误(如设置为从系统存储器启动),芯片可能无法进入调试模式,导致工具找到核心[^4]。 - **解决方案**: - 确认BOOT引脚状态:STM32 Cortex-M0系列通常需设置$BOOT0 = 0$和$BOOT1 = 0$(或$BOOT1$悬空)以从主Flash启动(正常烧录模式)。参考您的芯片数据手册,使用跳线帽或万用表检查引脚电平。 - 调整BOOT模式: - 断开电源,将BOOT0引脚接地($BOOT0 = 0$),BOOT1引脚也接地或保持悬空。 - 重新上电并尝试烧录。如果成功,说明原配置错误。 - 启动模式错误是常见原因,尤其是在开发板设计或手动焊接时易忽略[^4]。 #### 步骤3: 解锁Flash或擦除芯片(处理保护状态) - **原因分析**:如果Flash被写保护(例如,之前烧录失败导致锁死),烧录工具无法访问核心,引发“找到Cortex-M0”错误。类似问题在Cortex-M4芯片中也有报道[^3]。 - **解决方案**: - 使用ST-Link Utility解锁: - 下载并安装ST-Link Utility软件。 - 连接烧录器,打开软件,进入`Target` > `Connect`。 - 如果连接失败,选择`Target` > `Erase Chip`进行全片擦除(这会移除保护)。 - 成功后,重新烧录程序。此方法在引用中针对Flash锁死问题有效[^3]。 - 替代工具:如果ST-Link Utility无效,使用J-Flash(针对J-Link烧录器)执行擦除操作。步骤类似:连接后选择`Erase Chip`。 - 注意:擦除操作会清除芯片所有数据,确保备份重要内容。 #### 步骤4: 验证软件配置和设备选择(排除工具错误) - **原因分析**:烧录软件中设备型号选择错误(如误选Cortex-M3而非M0),或调试接口设置当,会导致核心识别失败。 - **解决方案**: - 在Keil uVision中: - 打开项目,进入`Options for Target` > `Debug`选项卡。 - 确保调试器类型(如ST-Link)正确,并在`Settings`中选择`SWD`接口(而非JTAG)。 - 在`Device`选项卡中,确认芯片型号匹配您的STM32(如STM32F0系列针对Cortex-M0)。 - 在STM32CubeProgrammer中: - 连接后,检查`Target`菜单下的核心类型是否为`Cortex-M0`。 - 如果型号匹配,重新安装设备支持包(如STM32F0xx_DFP)。 - 更新工具和驱动:确保烧录软件、固件和USB驱动为最新版本(从ST官网下载)。 #### 步骤5: 其他建议和高级排查 - **复位电路检查**:某些STM32开发板的复位引脚(NRST)需要外部上拉电阻。如果缺失,添加一个10kΩ电阻到$V_{CC}$。 - **BootLoader修复**:如果以上步骤无效,考虑烧录新的BootLoader(如使用USB DFU模式)。引用中提到通过Arduino bootloader实现USB烧录,但需注意兼容性[^2]。 - **芯片损坏测试**:如果所有步骤失败,芯片可能物理损坏。替换新芯片测试。 - **参考文档**:查阅STM32官方参考手册(RM系列),特别是调试和启动章节。整个过程体现了STM32启动机制的重要性[^1]。 通过以上步骤,大多数“找到Cortex-M0”问题可解决。核心是:优先硬件连接和启动模式,再处理Flash保护,最后优化软件。如果您提供更多细节(如具体芯片型号和烧录工具),我可给出更针对性建议。 ### 相关问题 1. 如何正确设置STM32的BOOT引脚以实现同启动模式? 2. STM32 Flash被锁后,除了擦除还有其他解锁方法吗? 3. Cortex-M0和Cortex-M4在烧录程序时有哪些常见区别? 4. 如何使用USB接口直接烧录STM32程序而无需额外烧录器? 5. STM32远程烧录程序的基本步骤和注意事项是什么? [^1]: STM32远程烧录程序。至此,STM32成功实现了远程烧录,这其中主要知识点就是STM32的启动机制、BootLoader程序、ESP8266基本的AT指令使用,和部分外设(串口、按键、FSMC驱动TFT LCD)等......,我自己去研究这个远程烧录的时候,也学了很多东西,因为遇到了少bug,但是遇到一个问题就去解决一个问题,我们就能断的进步。 [^2]: STM32 如何通过 USB 烧录程序。在前面的文章中,我们介绍了使用“Arduino IDE + FTDI”对STM32F103C8开发板进行了编程使板载LED闪烁。但它有一个小小的缺点,需要对其烧录时,我们需要使用FTDI模块,并且在烧录和测试代码时还必须在跳线0和1之间来回切换,有点麻烦。开发板上的mini-USB端口也完全未使用。而我们把USB插上电脑时,是识别到该板的,因为它没有Arduinobootloader。接下来我们就把Arduino bootloader烧写进STM32F103C8,实现USB烧录程序。目前尚知道这种方式会会出现可预知的bug,建议用于关键应用程序。 所需材料。 [^3]: STM32芯片flash被锁导致Error Flash Download failed Cortex-M4,解决办法(全)亲测有效。方法3转载Keil : Error-Flash Download failed Cortex-M4错误解决方案整理(J-Flash擦除下载教程)_keil flash download_白浪博客的博客-优快云博客。 [^4]: STM32烧录程序方式。一、启动模式(Boot modes) 阅读:STM32中文参考手册_V10.pdf 查看启动配置(Boot modes)。 在STM32F10xxx里,可以通过BOOT[1:0]引脚选择三种同启动模式。。。 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值