化石原创文章,转载请注明来源并保留原文链接


Android上的Unity程序,程序左侧是ugui制作的listview,右边由UniWebview2占据剩余空间。正常情况下没有任何问题。一旦该程序进入后台,再转回前台,发现listview的空间全是黑色,也就是listview看起来消失了。

这个问题的解决方式是:

让webview能hide和show,在进入后台的时候hide,进前台的时候show。

因为Unity有OnApplicationPause,所以我们利用在这个地方动手。

OnApplicationPause的参数是true的时候,我们知道程序会进入后台了,所以调用webview的hide().
OnApplicationPause的参数是false的时候,我们知道程序会进入前台了,所以调用webview的show().

问题解决。


化石原创文章,转载请注明来源并保留原文链接



化石原创文章,转载请注明来源并保留原文链接


几天用下来,发现这个库跟原来所想一样,真的很强大。使用这个库,基本分

1、构造mement实例。

mement提供了很多种构造方式,从iso8601格式到rfc2822,到Date格式。都可以作为构造参数传入,得到一个mement实例对象。如果没有参数,则是当前时间的mement对象。

mement()
mement(undefined)
moment(iso8601string)
moment(rfc2822datetimestring)
moment("12-25-1995", "MM-DD-YYYY");
moment(unixtimestampmilliseconds);
moment.unix(unixtimestampseconds);

2、操作实例

有了mement实例后,我们就可以调用该对象的方法,进行操作。从而

a、得到新的对象,比如当前实例表示的时间7天前的mement实例。

moment().subtract("months", 12);
moment().add("months", 12);

b、判断特定的事件,比如两个mement实例,哪个在前,哪个在后。

//now通过mement()得到,baseTime也是一个mement实例
var diff = now.diff(baseTime, "years");
var diff = now.diff(baseTime, "months");
var diff = now.diff(baseTime, "days");
var diff = now.diff(baseTime, "hours");
var diff = now.diff(baseTime, "minutes"); 

moment('2010-10-20').isBefore('2010-10-21'); // true
moment('2010-10-20').isSame('2010-10-20'); // true 
moment('2010-10-20').isAfter('2010-10-19'); // true
moment('2010-10-20').isBetween('2010-10-19', '2010-10-25'); // true
moment([2000]).isLeapYear() 

3、格式化实例

格式化通常用于显示,mement对象提供丰富的格式化方式:

moment().format(); //默认格式化成iso8601
moment().format(String); //通过token格式化成相应的任何格式
比如:
moment().format("dddd, MMMM Do YYYY, h:mm:ss a"); // "Sunday, February 14th 2010, 3:25:50 pm"

所有的token可以在官网的Doc | Display | Format中看到。


化石原创文章,转载请注明来源并保留原文链接



化石原创文章,转载请注明来源并保留原文链接


Cesium的viewer.zoomTo()可以控制当前相机快速定位物体(zoomTo方法的第一个参数代表)。实际使用中,由于物体的大小,我们需要修改或者调整默认的距离和角度。

这个需求可以通过给zoomTo方法传入第二个参数实现。举例:

globalViewer.zoomTo(entity, new globalCesium.HeadingPitchRange(0, Cesium.Math.toRadians(-50), 500));

第二个参数是一个HeadingPitchRange()类型,原型如下:

new Cesium.HeadingPitchRange(heading, pitch, range) 

第一个参数是绕Y轴转动的弧度,第二个是绕X轴的弧度,第三个是离目标中心的距离。


化石原创文章,转载请注明来源并保留原文链接



化石原创文章,转载请注明来源并保留原文链接


前面提到过javascript中时间戳的转化,近日遇到一个很不错的时间处理类库,moment.js,有中文官网,直接bing即可得到。

这个库使用时,直接在官网下载一个js文件即可。需要中文(不然时间格式出来的月份、星期等都是英文)的话,直接下载多语言版本的那个即可,如下图下方的一个文件。

图1:moment.js官方下载

这个库我看下来,常用的时间功能:格式化、加减等非常之多。这里仅举一个例子:取当前的时间,格式化成年月日带星期的,并且用中文习惯显示

    var dateTime = document.querySelector("#date-time-on-title");
    moment.locale("zh-cn");
    var date = moment().format("YYYY-MM-DD dddd");
    dateTime.innerText = date;

就上面涉及到moment的两句话即可。其中dddd是格式成星期x的显示,如果要“周六”这样的显示,只要换成ddd即可。非常方便。


化石原创文章,转载请注明来源并保留原文链接



化石原创文章,转载请注明来源并保留原文链接


function shallowCopy( original )  
{
    // First create an empty object with
    // same prototype of our original source
    var clone = Object.create( Object.getPrototypeOf( original ) ) ;

    var i , keys = Object.getOwnPropertyNames( original ) ;

    for ( i = 0 ; i < keys.length ; i ++ )
    {
        // copy each property into the clone
        Object.defineProperty( clone , keys[ i ] ,
            Object.getOwnPropertyDescriptor( original , keys[ i ] )
        ) ;
    }

    return clone ;
}


化石原创文章,转载请注明来源并保留原文链接