Quantcast
Channel: Cocos中文社区 - 最新主题
Viewing all articles
Browse latest Browse all 90534

求教,怎么能让一个typescript能访问别的typescript里的变量?

$
0
0
  • Creator 版本: 3.4.2
    我的目的是实现在第一个scene的ToggleGroup选中一个Toggle后能将我的选择传给第二个scene,于是我想的是让第二个scene的typescript访问第一个scene中的typescript存储的变量。
    用的方法如下:

sendWuJiangScript.ts

import { _decorator, Component, Node,ToggleContainer,Event,EventHandler, ToggleContainerComponent, Toggle,Label, SpriteFrame, Sprite } from 'cc';
const { ccclass, property } = _decorator;
// export declare var chooseNum:any;
export declare var wuJiangName:string;

@ccclass('sendWuJiangScript')
export class sendWuJiangScript extends Component {

   private t1:Toggle;
   private t2:Toggle;
   private t3:Toggle;
   private t4:Toggle;
   private t5:Toggle;
   private t6:Toggle;
   private t7:Toggle;
   private t8:Toggle;
   private t9:Toggle;
   private t10:Toggle;
   public chooseNum = 1;
   // public wuJiangName:string;
   

   onLoad(){
       
   }

   start () {
       this.t1 = this.node.getChildByName("Toggle1").getComponent(Toggle);
       this.t2 = this.node.getChildByName("Toggle2").getComponent(Toggle);
       this.t3 = this.node.getChildByName("Toggle3").getComponent(Toggle);
       this.t4 = this.node.getChildByName("Toggle4").getComponent(Toggle);
       this.t5 = this.node.getChildByName("Toggle5").getComponent(Toggle);
       this.t6 = this.node.getChildByName("Toggle6").getComponent(Toggle);
       this.t7 = this.node.getChildByName("Toggle7").getComponent(Toggle);
       this.t8 = this.node.getChildByName("Toggle8").getComponent(Toggle);
       this.t9 = this.node.getChildByName("Toggle9").getComponent(Toggle);
       this.t10 = this.node.getChildByName("Toggle10").getComponent(Toggle);
   }

   update(dt){
       // this.getChoose();
       wuJiangName = "caonima";
       console.log(wuJiangName);
   }

   getChoose(){
       var self = this;
       if(this.t1.isChecked){
           this.chooseNum = 1;
           wuJiangName = self.node.getChildByName("Toggle1").getComponent(Sprite).spriteFrame.name;
       }
       else if(this.t2.isChecked){
           this.chooseNum = 2;
           wuJiangName = self.node.getChildByName("Toggle2").getComponent(Sprite).spriteFrame.name;
       }
       else if(this.t3.isChecked){
           this.chooseNum = 3;
       }
       else if(this.t4.isChecked){
           this.chooseNum = 4;
       }
       else if(this.t5.isChecked){
           this.chooseNum = 5;
       }
       else if(this.t6.isChecked){
           this.chooseNum = 6;
       }
       else if(this.t7.isChecked){
           this.chooseNum = 7;
       }
       else if(this.t8.isChecked){
           this.chooseNum = 8;
       }
       else if(this.t9.isChecked){
           this.chooseNum = 9;
       }
       else if(this.t10.isChecked){
           this.chooseNum = 10;
       }
   }

}

loadWuJiangScript.ts:

import { _decorator, Component, Node, Sprite, SpriteFrame, assetManager } from 'cc';
const { ccclass, property } = _decorator;

@ccclass('loadWuJiangScript')
export class loadWuJiangScript extends Component {

   start () {
       let self = this;
       // assetManager.loadAny("./resources/img/general_card_caoren",SpriteFrame,function(err,sp){
       //     console.log(sp);
       //     self.node.getComponent(Sprite).spriteFrame = sp;
       // })
       assetManager.loadAny<SpriteFrame>("eec0a9d7-0106-4812-8b5a-05d3cb4c7580@f9941", (err, data) => {
           console.log(err)
           console.log(data)
           self.node.getComponent(Sprite).spriteFrame = data;
           // this.Sprite.spriteFrame = data
       })
   }
}

主要想用这个:export declare var wuJiangName:string;来实现外部变量,但我用console.log打印出来是undefined。

1 个帖 - 1 位参与者

阅读整个主题


Viewing all articles
Browse latest Browse all 90534

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>