COCOS CREATOR(TS)のsettimeOut
2706 ワード
一:前景
多くのフロントエンドはsettimeOutが言う価値がないと思っているかもしれませんが、Butは、異なるプラットフォームでsettimeOutの実行には一定のルールが守らなければならないので、仕方がないこともあります.例えば、先日の開発で非常に奇妙な現象が発見された.setoutTimeはWeb/微信IDE端末で機能するが、携帯電話の微信で動作すると、それほど機能しないようだ.今日は少し時間を割いてよくテストしました.内容は以下の通りです.
二:テスト
Ⅰ,試験環境は以下の通り(TSコードを使用)Ⅱ,コード1,試験思想はそれぞれパラメータ(settimeOut付帯伝参とsettimeOut不付帯)を与え,無パラメータはWeb(edge),微信IDE,携帯電話微信でそれぞれの結果(印刷データ)2,コード①,三つのケースの列挙コードexport enum TY_SETTIMEOUT {
/**setTimeOut */
___HAS_PARAMS_UNBRING4ALONG___ = 1,
/** */
___NO_PARAMS___ = 2,
/**setTimeOut */
___HAS_PARAMS_BRING4ALONG___ = 3
}
②,コアテストコードprivate _myName : string = null;
private _myAge : number = null;
/**
*
*/
private testSetTimeOutInWeChat( $ty : TY_SETTIMEOUT ) : void{
switch ($ty) {
case TY_SETTIMEOUT.___NO_PARAMS___:
this._timeout_id = setTimeout(
this.onTimeOutNoParams.bind(this),
2000
);
break;
case TY_SETTIMEOUT.___HAS_PARAMS_UNBRING4ALONG___:
this._myName = "Aonaufly";
this._myAge = 18;
this._timeout_id = setTimeout(
this.onTimeOutHasParams_2_unbring.bind(this),
2000
);
break;
case TY_SETTIMEOUT.___HAS_PARAMS_BRING4ALONG___:
this._timeout_id = setTimeout(
this.onTimeOutHasParams_2_bring.bind(this),
2000,
"Aonaufly",
18
);
break;
}
}
private onTimeOutNoParams() : void {
console.log( ` no params timeout ------` );
}
private onTimeOutHasParams_2_bring( $name : string , $age : number ) : void{
console.log(`has params timeout ------ , name : ${$name} , age : ${$age}`);
}
private onTimeOutHasParams_2_unbring() : void{
console.log(`has params timeout ------ , name : ${this._myName} , age : ${this._myAge}`);
}
Ⅲ,テスト
1、パラメータを持たない.
①WEB端末②WeChat IDE③携帯電話WeChat
2,settimeOut付属パラメータ
①WEB
②微信IDE③携帯電話微信
3,settimeOutはパラメータを持たない
①WEB②WeChat IDE③携帯電話WeChat
三:結論
携帯電話の微信端は間違った穴で、settimeOutにパラメータを持たないように注意してください.次のように~~this.timeout_id = setTimeout(this.onTimeOutHasParams_2_bring.bind(this),2000,"Aonaufly",18); egret , egret setTimeOut (egret.setTimeOut) . LayaBox Cocos Creator .
転載先:https://blog.51cto.com/aonaufly/2360953
Ⅰ,試験環境は以下の通り(TSコードを使用)Ⅱ,コード1,試験思想はそれぞれパラメータ(settimeOut付帯伝参とsettimeOut不付帯)を与え,無パラメータはWeb(edge),微信IDE,携帯電話微信でそれぞれの結果(印刷データ)2,コード①,三つのケースの列挙コード
export enum TY_SETTIMEOUT {
/**setTimeOut */
___HAS_PARAMS_UNBRING4ALONG___ = 1,
/** */
___NO_PARAMS___ = 2,
/**setTimeOut */
___HAS_PARAMS_BRING4ALONG___ = 3
}
②,コアテストコード
private _myName : string = null;
private _myAge : number = null;
/**
*
*/
private testSetTimeOutInWeChat( $ty : TY_SETTIMEOUT ) : void{
switch ($ty) {
case TY_SETTIMEOUT.___NO_PARAMS___:
this._timeout_id = setTimeout(
this.onTimeOutNoParams.bind(this),
2000
);
break;
case TY_SETTIMEOUT.___HAS_PARAMS_UNBRING4ALONG___:
this._myName = "Aonaufly";
this._myAge = 18;
this._timeout_id = setTimeout(
this.onTimeOutHasParams_2_unbring.bind(this),
2000
);
break;
case TY_SETTIMEOUT.___HAS_PARAMS_BRING4ALONG___:
this._timeout_id = setTimeout(
this.onTimeOutHasParams_2_bring.bind(this),
2000,
"Aonaufly",
18
);
break;
}
}
private onTimeOutNoParams() : void {
console.log( ` no params timeout ------` );
}
private onTimeOutHasParams_2_bring( $name : string , $age : number ) : void{
console.log(`has params timeout ------ , name : ${$name} , age : ${$age}`);
}
private onTimeOutHasParams_2_unbring() : void{
console.log(`has params timeout ------ , name : ${this._myName} , age : ${this._myAge}`);
}
Ⅲ,テスト
1、パラメータを持たない.
①WEB端末②WeChat IDE③携帯電話WeChat
2,settimeOut付属パラメータ
①WEB
②微信IDE③携帯電話微信
3,settimeOutはパラメータを持たない
①WEB②WeChat IDE③携帯電話WeChat
三:結論
携帯電話の微信端は間違った穴で、settimeOutにパラメータを持たないように注意してください.次のように~~this.timeout_id = setTimeout(this.onTimeOutHasParams_2_bring.bind(this),2000,"Aonaufly",18); egret , egret setTimeOut (egret.setTimeOut) . LayaBox Cocos Creator .
転載先:https://blog.51cto.com/aonaufly/2360953
egret , egret setTimeOut (egret.setTimeOut) . LayaBox Cocos Creator .