聊天相关fix
This commit is contained in:
@@ -15,6 +15,7 @@ import { DataId, DataManager } from "../../data/DataManager";
|
||||
import { NavigationManager } from "../../manager/NavigationManager";
|
||||
import ResManager from "../../../Main/Manager/ResManager";
|
||||
import { EnvData } from "../../data/EnvData";
|
||||
import Utils from "../../../Main/Common/Utils";
|
||||
const { ccclass, property } = _decorator;
|
||||
|
||||
@ccclass("DialogBubble")
|
||||
@@ -54,6 +55,24 @@ export class DialogBubble extends Component {
|
||||
|
||||
this.content.overflow = Overflow.NONE;
|
||||
|
||||
//设置头像
|
||||
if (isPlayer) {
|
||||
//获取玩家头像,等接入luffa
|
||||
} else {
|
||||
const girlData = DataManager.I.getDataById<GirlData>(DataId.Girl);
|
||||
const path = girlData.getGrilAvatar(
|
||||
NavigationManager.Instance.getSelectedCategoryId().toString(),
|
||||
NavigationManager.Instance.getSelectedGirlId()
|
||||
);
|
||||
|
||||
// 加载远程资源
|
||||
const envData = DataManager.I.getDataById<EnvData>(DataId.Env);
|
||||
let newPath = envData.cdn + "/" + "Girls/" + path + ".png";
|
||||
ResManager.I.changeRemoteSpriteFrame(this.avatar, newPath, () => {
|
||||
this.scaleToFillItem(this.avatar, new Size(90, 90));
|
||||
});
|
||||
}
|
||||
|
||||
// 如果是加载状态,使用固定的"..."
|
||||
if (isLoading) {
|
||||
this.content.string = "...";
|
||||
@@ -121,23 +140,46 @@ export class DialogBubble extends Component {
|
||||
// 返回预估的背景高度(用于同步计算)
|
||||
const estimatedHeight = Math.max(lines.length * 35 + 20, 60); // 最小高度60
|
||||
|
||||
//设置头像
|
||||
if (isPlayer) {
|
||||
//获取玩家头像,等接入luffa
|
||||
} else {
|
||||
const girlData = DataManager.I.getDataById<GirlData>(DataId.Girl);
|
||||
const path = girlData.getGrilAvatar(
|
||||
NavigationManager.Instance.getSelectedCategoryId().toString(),
|
||||
NavigationManager.Instance.getSelectedGirlId()
|
||||
);
|
||||
return estimatedHeight;
|
||||
}
|
||||
|
||||
// 加载远程资源
|
||||
const envData = DataManager.I.getDataById<EnvData>(DataId.Env);
|
||||
let newPath = envData.cdn + "/" + "Girls/" + path + ".png";
|
||||
ResManager.I.changeRemoteSpriteFrame(this.avatar, newPath, () => {});
|
||||
scaleToFillItem(img: Sprite, size: Size) {
|
||||
if (!img || !img.spriteFrame) return;
|
||||
|
||||
// 延迟一帧确保UI布局完成
|
||||
this.doScaleToFill(img, size);
|
||||
}
|
||||
|
||||
doScaleToFill(img: Sprite, size: Size) {
|
||||
if (!img || !img.spriteFrame) return;
|
||||
|
||||
const itemSize = size;
|
||||
const imageSize = img.spriteFrame.originalSize;
|
||||
|
||||
if (
|
||||
itemSize.width === 0 ||
|
||||
itemSize.height === 0 ||
|
||||
imageSize.width === 0 ||
|
||||
imageSize.height === 0
|
||||
) {
|
||||
return;
|
||||
}
|
||||
|
||||
return estimatedHeight;
|
||||
const scaleX = itemSize.width / imageSize.width;
|
||||
const scaleY = itemSize.height / imageSize.height;
|
||||
const scale = Math.max(scaleX, scaleY);
|
||||
|
||||
// 设置Sprite的sizeMode为CUSTOM,允许自定义大小
|
||||
img.sizeMode = Sprite.SizeMode.CUSTOM;
|
||||
|
||||
// 获取图片节点的UITransform并设置大小
|
||||
const imgTransform = img.node.getComponent(UITransform);
|
||||
if (imgTransform) {
|
||||
imgTransform.setContentSize(
|
||||
imageSize.width * scale,
|
||||
imageSize.height * scale
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
private stopLoadingAnimation() {
|
||||
|
||||
Reference in New Issue
Block a user