É muito conveniente desenvolver jogos WeChat com LayaAir. No entanto, para evitar que os desenvolvedores coletem informações de amigos do jogador, o WeChat criou um domínio de dados aberto OpenDataContext para fornecer funções limitadas de amigos. O domínio de dados abertos do WeChat pode ser entendido como um ambiente de programa castrado.No domínio, os desenvolvedores não podem chamar as funções do sistema de arquivos e não há função de rede. Os dados do amigo só podem ser obtidos por meio da API relevante fornecida pelo WeChat e, em seguida, desenhados em um shardeCanvas. O domínio principal exibe as informações do amigo do jogador por meio dessa tela compartilhada.
Introdução à cadeia de relacionamento com amigos do WeChat: https://developers.weixin.qq.com/minigame/dev/tutorial/open-ability/open-data.html
Como LayaAir desenvolve cadeias de amigos: https://ask.layabox.com/question/15086
Ao usar o LayaAir para desenvolver amigos e funções de placar, existem muitas armadilhas que precisam de atenção.
1. O subdomínio não pode exibir os recursos do atlas no domínio principal.
Tanto o domínio principal quanto o subdomínio precisam carregar o atlas para exibi-lo corretamente. Ouça a mensagem do domínio principal. Quando o domínio principal carregar o atlas, ele enviará uma mensagem message.isLoad='filedata', apenas execute MiniFileMgr.ziyuFileData[message.url] = message.data; esta linha de código, o subdomínio para exibir a imagem corretamente. (Ao escrever o código de monitoramento, certifique-se de escrevê-lo corretamente. Os dados do arquivo estão todos em minúsculas. Não fiz julgamento porque coloquei uma letra maiúscula. A imagem não pode ser exibida por muito tempo)
if(MiniAdpter.isZiYu && MiniAdpter.isPosMsgYu)
{
__JS__('wx').onMessage(function(message:Object):void{
trace(message);
if(message['isLoad'] == "filedata")
{
MiniFileMgr.ziyuFileData[message.url] = message.data;//文本数据
}
2. Ao usar a função de rolagem do componente List no subdomínio, um erro será relatado. Definimos o vScrollBarSkin ou hScrollBarSkin da lista como ''" para tornar a lista rolável, mas um erro será relatado no subdomínio. É porque meu mecanismo LayaAir é relativamente antigo (versão 1.17) e precisa estar no Classe de imagem do subdomínio, altere o código:
public function set skin( value:String):void
{
if( value=="''" || value == '""')
{
this.source = null;
return;
}
3. O erro relatado pelo subdomínio bitmap._addReference() também ocorre porque a versão é muito antiga e precisa ser atualizada para o mecanismo mais recente. Ou adicione manualmente um julgamento para julgar se o bitmap._addReference é nulo
4. A resposta do mouse no subdomínio é deslocada e o botão não pode ser clicado. Geralmente exibimos o subdomínio em um contêiner sprite, mas o sistema de coordenadas do subdomínio também é calculado no canto superior esquerdo da tela. É necessário renovar uma Matrix e redefinir o Laya.stage._canvasTransform do subdomínio