Egret社区
1银子
明明看到别人都可以直接在exml的设计界面将Image的资源名设置为图片名称而不是路径,但是我设置后,在设计界面有效,可以看到图片,但是运行后却看不到。怎么回事?
例如图片路径是resource/button/1.png,而我在default.res.json里面的preload组里加入这个资源,名称为1_png,然后界面里面Image的资源名赋值为1_png,设计界面可以成功看到,但是运行游戏就是看不见,而如果改成用resource/button/1.png给它赋值则可以,这到底怎么回事,怎么弄?每次如果都要输一大串路径简直要吐血啊,求救,谢谢各位大佬

分享到 :
0 人收藏

13 个回复

倒序浏览
acongdps  登堂入室 | 2017-10-26 18:00:13
原来是因为在Main.ts里面没有写下面这三句,就会导致这个问题,晕死
var assetAdapter = new AssetAdapter();
this.stage.registerImplementation( "eui.IAssetAdapter", assetAdapter );
this.stage.registerImplementation( "eui.IThemeAdapter", new ThemeAdapter() );
还是感谢各位老大回复,都很有心,再次感谢了,可能我贴工程上来会更容易解决。
ohyoung  登堂入室 | 2017-10-26 11:53:12
[mw_shl_code=java,true]/**
* 根据name关键字创建一个Bitmap对象。name属性请参考resources/resource.json配置文件的内容。
* @param name 图片资源 关键字
*/
public createBitmapByName(name: string) {
    let result = new egret.Bitmap(),
        texture: egret.Texture = RES.getRes(name);

    result.texture = texture;
    return result;
}[/mw_shl_code]

在初始化创建项目的时候,官方不是生成了一个类似这个的函数吗。
然后这个的函数入参,就是根据 资源文件 里面的 key。就可以达到你想要的效果啦~
acongdps  登堂入室 | 2017-10-26 12:08:44
ohyoung 发表于 2017-10-26 11:53
[mw_shl_code=java,true]/**
* 根据name关键字创建一个Bitmap对象。name属性请参考resources/resource.jso ...

非常感谢,在ts中是可以这样,但是我是想在exml编辑中实现,例如<e:Image source="1_png"/>这样,结果不行,必须用<e:Image source="resource/button/1.png"/>才行,请问怎么弄?
wuhaishengxxx  圆转纯熟 | 2017-10-26 12:25:20
资源没加载或者没有放到Res.Json里吧
布布  圆转纯熟 | 2017-10-26 13:30:45
<?xml version="1.0" encoding="utf-8"?>
<e:Skin  width="720" height="1280" xmlns:e="http://ns.egret.com/eui" xmlns:w="http://ns.egret.com/wing" class="BG_game">
        <e:Image id="BG" width="720" height="1280" x="-10" y="0" source="sprite-sheet1_png"/>
        <e:Group width="800" x="0" y="1040" height="263.64" scrollEnabled="true" anchorOffsetY="0">
                <e:Image width="1000" height="333.33" source="sprite7-sheet0_png" x="-150" y="0" scaleX="1" scaleY="1" anchorOffsetY="0"/>
</e:Group>
</e:Skin>

使用时  要在相应类继承eui.Component 并写
createChildren()
    {
        super.createChildren() ;
        this.BG_diupdate() ;
    }
        

我这边是这样的  
acongdps  登堂入室 | 2017-10-26 14:20:21
布布 发表于 2017-10-26 13:30
使用时  要在相应类继承eui.Component 并写
createChildren()
  ...

谢谢解答,请问this.BG_diupdate()是不是写错了?
acongdps  登堂入室 | 2017-10-26 14:23:26
wuhaishengxxx 发表于 2017-10-26 12:25
资源没加载或者没有放到Res.Json里吧

谢谢解答,资源已经放到default.res.json里面的preload了,然后也有加载组,还是不行。你们都可以直接在exml设计界面用key?并且运行后有显示?
布布  圆转纯熟 | 2017-10-26 14:38:52
这个写那都行  写construction  中也行  我是直接从我的项目中直接粘过来的
ohyoung  登堂入室 | 2017-10-26 14:46:53
acongdps 发表于 2017-10-26 14:23
谢谢解答,资源已经放到default.res.json里面的preload了,然后也有加载组,还是不行。你们都可以直接在e ...

可以的哦,你看下第二张图,的具体资源路径,是不是真实存在。
有时候将图片往资源文件里一拖,自动生成的代码会有问题。

exml

exml

res

res
acongdps  登堂入室 | 2017-10-26 14:56:04
本帖最后由 acongdps 于 2017-10-26 14:59 编辑

QQ图片20171026145324.png
preload里面明明设定了
QQ图片20171026145404.png
preload这样加载应该也是没问题的吧?
QQ图片20171026145315.jpg
最后这里这样写,设计界面当时是看得到的,但是游戏运行后就看不到,只能看到那个按钮

对了,他的报错信息是这个 QQ图片20171026145709.png

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号 )

Powered by Discuz! X3.4 © 2001-2019 Comsenz Inc.

返回顶部