mirror of
https://github.com/smallmain/cocos-enhance-kit.git
synced 2025-12-08 18:18:44 +00:00
[adapters] 增加小游戏适配部分源码
This commit is contained in:
92
adapters/platforms/taobao/wrapper/engine/Editbox.js
Normal file
92
adapters/platforms/taobao/wrapper/engine/Editbox.js
Normal file
@@ -0,0 +1,92 @@
|
||||
(function () {
|
||||
if (!(cc && cc.EditBox)) {
|
||||
return;
|
||||
}
|
||||
|
||||
const EditBox = cc.EditBox;
|
||||
const js = cc.js;
|
||||
const KeyboardReturnType = EditBox.KeyboardReturnType;
|
||||
const MAX_VALUE = 65535;
|
||||
|
||||
function getKeyboardReturnType (type) {
|
||||
switch (type) {
|
||||
case KeyboardReturnType.DEFAULT:
|
||||
case KeyboardReturnType.DONE:
|
||||
return 'done';
|
||||
case KeyboardReturnType.SEND:
|
||||
return 'send';
|
||||
case KeyboardReturnType.SEARCH:
|
||||
return 'search';
|
||||
case KeyboardReturnType.GO:
|
||||
return 'go';
|
||||
case KeyboardReturnType.NEXT:
|
||||
return 'next';
|
||||
}
|
||||
return 'done';
|
||||
}
|
||||
|
||||
const BaseClass = EditBox._ImplClass;
|
||||
function MiniGameEditBoxImpl () {
|
||||
BaseClass.call(this);
|
||||
}
|
||||
|
||||
js.extend(MiniGameEditBoxImpl, BaseClass);
|
||||
EditBox._ImplClass = MiniGameEditBoxImpl;
|
||||
|
||||
Object.assign(MiniGameEditBoxImpl.prototype, {
|
||||
init (delegate) {
|
||||
if (!delegate) {
|
||||
cc.error('EditBox init failed');
|
||||
return;
|
||||
}
|
||||
this._delegate = delegate;
|
||||
},
|
||||
|
||||
beginEditing () {
|
||||
// In case multiply register events
|
||||
if (this._editing) {
|
||||
return;
|
||||
}
|
||||
let delegate = this._delegate;
|
||||
this._showPrompt();
|
||||
this._editing = true;
|
||||
delegate.editBoxEditingDidBegan();
|
||||
},
|
||||
|
||||
endEditing () {
|
||||
cc.warn(`Can't support to end editing.`);
|
||||
},
|
||||
|
||||
_showPrompt () {
|
||||
let self = this;
|
||||
let delegate = this._delegate;
|
||||
let multiline = (delegate.inputMode === EditBox.InputMode.ANY);
|
||||
let maxLength = (delegate.maxLength < 0 ? MAX_VALUE : delegate.maxLength);
|
||||
|
||||
if (multiline) {
|
||||
cc.warn(`Multiline editing is not supported`);
|
||||
}
|
||||
|
||||
my.prompt({
|
||||
title: '',
|
||||
message: delegate.placeholder,
|
||||
// placeholder: delegate.placeholder,
|
||||
okButtonText: getKeyboardReturnType(delegate.returnType),
|
||||
cancelButtonText: 'cancel',
|
||||
success: (result) => {
|
||||
if (result.ok) {
|
||||
let inputValue = result.inputValue;
|
||||
inputValue = (maxLength <= inputValue.length) ? inputValue.substring(0, maxLength) : inputValue;
|
||||
if (delegate._string !== inputValue) {
|
||||
delegate.editBoxTextChanged(inputValue);
|
||||
}
|
||||
delegate.editBoxEditingReturn();
|
||||
}
|
||||
self._editing = false;
|
||||
delegate.editBoxEditingDidEnded();
|
||||
},
|
||||
});
|
||||
},
|
||||
});
|
||||
})();
|
||||
|
||||
Reference in New Issue
Block a user