一些问题, 希望谷主看看, 谢谢了

引擎: Cocos Creator
版本: 2.1.0
 
 1.自定义制作的按钮: 按下效果设置[变暗], 发布到引擎中, 触发时触发如下警告信息
Should not set alpha via 'color', set 'opacity' please.
40.cc.warnID @ CCDebug.js:249
set @ CCNode.js:963
set @ fairygui.js:4290
GButton.setState @ fairygui.js:3205
GButton.constructExtension @ fairygui.js:3278
GComponent.constructFromResource2 @ fairygui.js:2920
GComponent.constructFromResource @ fairygui.js:2767
GComponent.constructFromResource2 @ fairygui.js:2855
GComponent.constructFromResource @ fairygui.js:2767
UIPackage.internalCreateObject @ fairygui.js:13163
UIPackage.createObject @ fairygui.js:13144
UIPackage.createObject @ fairygui.js:12912
Dialog.onInit @ dialog.ts:50
Window._init @ fairygui.js:13603
Window.init @ fairygui.js:13577
Window.onEnable @ fairygui.js:13618
GObjectPartner.onEnable @ fairygui.js:1881
invokeOnEnable @ component-scheduler.js:307
invoke @ component-scheduler.js:154
activateNode @ node-activator.js:228
_onHierarchyChanged @ base-node.js:136
_onHierarchyChanged @ CCNode.js:1264
setParent @ base-node.js:136
GComponent.onChildAdd @ fairygui.js:2197
GComponent.addChildAt @ fairygui.js:1980
GComponent.addChild @ fairygui.js:1953
GRoot.showWindow @ fairygui.js:8177
Window.show @ fairygui.js:13467
Dialog.show @ dialog.ts:25
Engine.onKeyUp @ engine.ts:120
190.CallbacksInvoker.invoke @ callbacks-invoker.js:255
115.proto.dispatchEvent @ event-target.js:227
onKeyReleased @ system-event.js:131
_callback @ CCEventListener.js:496
_onListenerCallback @ CCEventManager.js:1067
_dispatchEventToListeners @ CCEventManager.js:642
dispatchEvent @ CCEventManager.js:1058
(anonymous) @ CCInputExtension.js:104
 

2.文本透明度动效: 新建一个文本标签, 并新建一个动画效果, 0秒时设置透明度为0, 0.75秒时设置透明度为1, 停顿0.25秒, 1秒时设置透明度为0;
编辑器中运行时效果没有问题, 导入到引擎中, 首次创建出来播放效果没有问题, 但是当我回收利用后, 再次调用transition.play()时, 发现
透明度由0到1没有效果(透明度保持到1运行完此段动画), 停顿0.25秒后, 透明度由1到0效果正常消失. 代码如下:
// 继承的窗口类型
export default class Tips extends fgui.Window {
}
// 静态方法显示
public static show(text: string): void {
if (this.cachePools.length > 0) {
let cache = this.cachePools.shift();
this.displayPools.push(cache);
cache.transmit(text).show();
} else {
let display = new Tips(text);
this.displayPools.push(display);
display.show();
}
}
// 重写动画
protected doShowAnimation(): void {
this.center();
this._message.text = this._text;
this._transition.play(this.onAnimationFinished.bind(this));
}
// 完成后关闭
private onAnimationFinished(): void {
this.hide();
}
// 关闭后缓存
protected onHide(): void {
Tips.displayPools.splice(Tips.displayPools.indexOf(this), 1);
Tips.cachePools.push(this);
}
补充说明: 第二个问题不使用缓存, 每次创建播放动画是没有任何问题的.


 
已邀请:

谷主

赞同来自:

1、我使用demo测试,没有发现你说的问题。2.0.5 引擎 和2.10引擎都没发现。
2、光这样看看不出什么东西,发一个测试工程给我看看。

chens_hi

赞同来自:

cocos creator 2.1.0并在浏览器中运行.
 运行helloworld.fire场景, 等待加载完成后:
  1. 按下Q键: 无缓存弹提示文本
  2. 按下W键:有缓存弹提示文本, 按下后注意弹出的一瞬间, 文本标签的alpha等于1, 然后再被重置为0开始播放, 后续效果正常
  3. 按下A|S键:弹出对话框, 鼠标点击按钮或者移动到按钮上出现警告:Should not set alpha via 'color', set 'opacity' please.

 
我工程Demo上传了, 帮忙看下哇, 谢谢!
 
FairyGUIDemo

谷主

赞同来自:

1. 原来你是完全不跟进仓库更新的,浪费我时间了。麻烦关注仓库更新,你的代码是旧的。
2. 没给UI工程,看不出什么。我估计你是第一帧就没有设置alpha值。

chens_hi

赞同来自:

附件我包含了UI工程了, 还请谷主麻烦看下, 谢谢...
 FairyGUIDemo

谷主

赞同来自:

第二个问题和fairygui无关,你可以自己测试一下,测试代码很简单,随便给一个文本挂上这样的脚本,都可以看到问题。
 
test() {
this.node.opacity = 100;
},

start () {
this.node.opacity = 0;
this.scheduleOnce(this.test, 2);
},

 

要回复问题请先登录注册