FlashBuilder4.7读取FlashCS导出SWC的JPG图片为空的问题

事因

平常我们做页游项目的时候,比较少用到从FlashCS里导出SWC里面的图片,就算有也是Png,jsp是非常少的了。对于习惯使用FlashBuilder的人来说,如果要用图片,就直接采用嵌入图片了。

[Embed(source="assets/play.png")] 

所以这次做个小游戏的时候,因为贪图方便,把资源全部做到FlashCS里面,然后生成swc,最后在FlashBuilder里引用。结果就出现问题了,发现使用jpg的时候,竟然是一片空白,然后输出宽和高,发现是0

查找出现原因

首先要考虑一下是怎么出现这个问题,得想出解决方案。
1. 刚开始怀疑是FlashCS导出SWC的问题,然后把SWF解压,提取出library.swf,通过反变异软件查看,图片是在里面,而且是存在的
这里写图片描述
2. 既然SWC没问题(其中也检查了版本号,也在合理范围之类),那是不是FlkashBulder的问题呢?4.7和4.6是区别的,于是用FlashBuilder4.6测试SWC,结果是正常的。那么就很明显了。FlashBuilder的环境下才有问题。

那么问题来,因为不想轻易换编辑器,再次考虑SWC的问题,是不是图片导出格式有问题。

所以再次比较了一下可以正常使用的图片,最终发现一种可以显示出来的方式。

解决方案

这里只是在FB4.7下面的解决方案,是在FlashCS里修改图片到处方式。
在FlashCS的库里,设置选中图片的属性,在压缩方式那里,从JPG修改为PNG,问题得到解决。
这里写图片描述
这里写图片描述

测试代码例子

为了完整表达这个东西,我写一个相关的测试例子。
RoleImg 是直接导入的png图片
ChapterJpg 是直接导入的jpg图片
ChapterPng 是导入后修该为png的图片
运行结果是:
FlashBuilder4.6
这里写图片描述
FlashBuilder4.7
这里写图片描述
测试代码:

/**
 *
 * @author sodaChen
 */
[SWF(width="572", height="510", frameRate="30", backgroundColor="#ffffff")]
public class TestSwcImg extends Sprite
{
    public function TestSwcImg()
    {
        //直接导入的jpg
        addBitmap("ChapterJpg",new ChapterPng(),0,0);
        //导入的jpg,设置为png格式的
        addBitmap("ChapterJpg",new ChapterJpg(),0,255);
        //直接导入的png
        addBitmap("role",new RoleImg(),200,0);
    }
    private function addBitmap(key:String,bitmapData:BitmapData,x:int,y:int):void
    {
        trace(key + "width:" + bitmapData.width);
        var bitmap:Bitmap = new Bitmap(bitmapData);
        bitmap.x = x;
        bitmap.y = y;
        addChild(bitmap);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值