Egret社区
10银子
本帖最后由 youdangxinghai 于 2016-6-7 15:00 编辑

代码修改Scroller.viewport.scrollV导致list中之前预览图不显示
必须手动滚动下滚动条 list中图片才显示
class UploadImgClass extends LomoBaseClass {
private sc: eui.Scroller;
    private scynum:number=0;

this.sc= this.uploadImgAlbum["sc"]
        this.sc.addEventListener(eui.UIEvent.CHANGE_END,this.scy,this);

private scy():void{
        if(this.sc.viewport.scrollV>0){

            this.scynum = this.sc.viewport.scrollV;
        }
    }

this.uploadImgAlbumImgList.addEventListener(egret.Event.ADDED,this.changescy,this);

private changescy():void{
        this.sc.viewport.scrollV = this.scynum;
        console.log(this.sc.viewport.scrollV);
    }

添加后得 滑动下滚动条 其他预览图才会出现


添加图片后实际效果

添加图片后实际效果

添加图片后预期效果

添加图片后预期效果
分享到 :
0 人收藏

13 个回复

倒序浏览
xyl  初窥堂奥 | 2016-6-7 13:51:21
你有添加后,输出记录吗 ,查看下有没有执行添加后的数据
youdangxinghai  初窥堂奥 | 2016-6-7 13:53:09
xyl 发表于 2016-6-7 13:51
你有添加后,输出记录吗 ,查看下有没有执行添加后的数据

添加的图片显示出来了 其他的都白了
xyl  初窥堂奥 | 2016-6-7 13:57:59
什么叫其他的都白了?
youdangxinghai  初窥堂奥 | 2016-6-7 14:09:07
xyl 发表于 2016-6-7 13:57
什么叫其他的都白了?

本来 添加后应该是图2的效果  
结果出来的是图1 图1唯一显示的那张图片就是添加的
xyl  初窥堂奥 | 2016-6-7 14:32:09
源码贴上来  看看
youdangxinghai  初窥堂奥 | 2016-6-7 14:41:08
本帖最后由 youdangxinghai 于 2016-6-7 15:03 编辑
xyl 发表于 2016-6-7 14:32
源码贴上来  看看

/**
*
* @author
* 图片上传类
*/

class UploadImgClass extends LomoBaseClass {
    public shouldBeSelectedNum: number = 1;
    public uploadImg: UploadImgExml = new UploadImgExml();
    public myCollection: eui.ArrayCollection = new eui.ArrayCollection();

    public uploadImgAlbum: UploadImgAlbumExml;
    public uploadImgAlbumImgList: eui.List;
    public isUploadImgAlbumInitialize:boolean=false;//用于判断上传界面是否已经初始化



    private testFileList: Array<Blob>=[];
    public centerGroup: eui.Group = super.initCenterGroup();
    private remarksContent:string;
    public remarkInput: RemarksTest = new RemarksTest();
    public progressbar: Progressbar = new Progressbar();


    public bunttonRemarks:eui.Button = new eui.Button();
    private updateContrrol:number;
    private shapenum:egret.Shape;
    private labelremake: eui.Label = new eui.Label();

    private countnum:number;
    private sc: eui.Scroller;
    private scynum:number=0;







    /**
     * 初始化中间group
     */
    protected initCenterGroup(): any {

        this.uploadImgAlbumImgList = this.uploadImgAlbum["uploadImgAlbumImgList"];
        this.sc= this.uploadImgAlbum["sc"]
        this.sc.addEventListener(eui.UIEvent.CHANGE_END,this.scy,this);


       this.uploadImgAlbumImgList.touchChildren=true;
        this.uploadImgAlbumImgList.addEventListener(egret.TouchEvent.TOUCH_TAP,this.upload,this);
        this.uploadImgAlbumImgList.addEventListener(egret.Event.ADDED,this.changescy,this);

        var tLayout = new eui.TileLayout();
        tLayout.requestedColumnCount = 4;
        tLayout.paddingLeft=12
        tLayout.paddingTop=12
        tLayout.paddingRight=12
        tLayout.paddingBottom = 21;
        tLayout.horizontalGap = 12;
        tLayout.verticalGap = 12;
        this.uploadImgAlbumImgList.layout = tLayout;
        this.uploadImgAlbumImgList.dataProvider = this.myCollection;

        this.uploadImgAlbumImgList.itemRenderer = AlbumImgItemRendererTest;


        RES.getResByUrl('/resource/assets/Images/addphoto.png',function(texture: egret.Texture) {
            var uploadImg = new UploadImg();

            uploadImg.name = "imgSource";

            uploadImg.buttonvisible = false;
            uploadImg.imgTexture = texture;
            uploadImg.addimg = true;

            this.myCollection.addItemAt(uploadImg,0);
            this.myCollection.refresh();//刷新容器数据,uploadImgAlbumImgList中的数据源将自动更新
        },this,RES.ResourceItem.TYPE_IMAGE);
    }




    /**
     * 响应“上传图片”事件
     */
    public upload(event: egret.TouchEvent): void {

        selectImage(this.selectedHandler,this);//此函数为第三方插件编译的函数,用于选择上传图片,
                                                //selectdHandler为回调函数,this为回调函数中的thisRef     
                                                //此函数为js编译而成,如果编译器无法识别可能需要重新编译(注意:
                                                //每次上传图片页面最下端都会出现上传的图片,编译前记得将
                                                //uploader.js中的document.body.appendChild(image);去掉)。




    }

    /**
     * selectImage的回调函数,此函数如果要引用类方法或成员,需要通过thisRef引用。thisRef为上面提到的当前类对象this
     */
    private selectedHandler(thisRef: any,imgURLes: Array<string>,files: Array<Blob>): void {


        for(var i = 0;i < files.length;i++){
            var imgFile= files;
            var imgUrl= imgURLes

            if(imgFile!=null){
        if(!thisRef.isUploadImgAlbumInitialize){
            thisRef.uploadImgAlbumImgList.dataProvider = thisRef.myCollection;//绑定数据源
            thisRef.uploadImgAlbumImgList.itemRenderer = AlbumImgItemRendererTest;
        }

        /**
         * 该函数中this==thisRef,同上函数内部要引用外部资源需传入要引用的对象
         */

        RES.getResByUrl(imgUrl,function(texture: egret.Texture){
            var uploadImg =new UploadImg();
            uploadImg.name ="imgSource";
            uploadImg.imgFile = imgFile;
            uploadImg.buttonvisible=true;
            uploadImg.imgTexture = texture;
            uploadImg.myCollection = thisRef.myCollection;
            uploadImg.uploadImgAlbumImgList = thisRef.uploadImgAlbumImgList;
            uploadImg.addimg = false;
            this.myCollection.addItemAt(uploadImg,0);
            this.myCollection.refresh();//刷新容器数据,uploadImgAlbumImgList中的数据源将自动更新
        },thisRef,RES.ResourceItem.TYPE_IMAGE);

        thisRef.isUploadImgAlbumInitialize=true;
        } else {
            alert("请插入图片")
        }
        }
}
    private scy():void{
        if(this.sc.viewport.scrollV>0){

            this.scynum = this.sc.viewport.scrollV;
        }
    }
    private changescy():void{
        this.sc.viewport.scrollV = this.scynum;
    }
}



youdangxinghai  初窥堂奥 | 2016-6-7 17:29:10
顶一下 继续求助
youdangxinghai  初窥堂奥 | 2016-6-8 10:48:14
顶一下
pilihou  圆转纯熟 | 2016-6-8 11:49:22
private changescy():void{
        this.sc.viewport.scrollV = this.scynum;
        console.log(this.sc.viewport.scrollV);
    }

你这应该还要更新视图的代码,不是等下一帧更新吧
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

返回顶部