關於scratch-www
scratch-www,scratch網頁標準客戶端(Standalone web client for Scratch),用來搭建scratch網站。scratch-www通過在網頁中引入scratch-gui來實現scratch的功能。scratch-www的下載地址(https://github.com/LLK/scratch-www)。
scratch-www引入scratch-gui的代碼文件路徑是 scratch-www-develop\src\views\project-view.jsx
scratch-www引入scratch-gui
const GUI = require('scratch-gui'); //引入gui
const IntlGUI = injectIntl(GUI.default); //語言國際化
scratch-www中gui的props屬性設置
gui設置的props如下:
<IntlGUI
assetHost={this.props.assetHost}
authorId={this.props.authorId}
authorThumbnailUrl={this.props.authorThumbnailUrl}
authorUsername={this.props.authorUsername}
backpackHost={this.props.backpackHost}
backpackVisible={this.props.canUseBackpack}
basePath="/"
canCreateCopy={this.props.canCreateCopy}
canCreateNew={this.props.canCreateNew}
canEditTitle={this.props.canEditTitleInEditor}
canRemix={this.props.canRemix}
canSave={this.props.canSave}
canShare={this.props.canShare}
className="gui"
cloudHost={this.props.cloudHost}
enableCommunity={this.props.enableCommunity}
hasCloudPermission={this.props.isScratcher}
isShared={this.props.isShared}
projectHost={this.props.projectHost}
projectId={this.state.projectId}
projectTitle={this.props.projectInfo.title}
renderLogin={this.renderLogin}
onClickLogo={this.handleClickLogo}
onGreenFlag={this.handleGreenFlag}
onLogOut={this.props.handleLogOut}
onOpenRegistration={this.props.handleOpenRegistration}
onProjectLoaded={this.handleProjectLoaded}
onRemixing={this.handleIsRemixing}
onSetLanguage={this.handleSetLanguage}
onShare={this.handleShare}
onToggleLoginOpen={this.props.handleToggleLoginOpen}
onUpdateProjectData={this.handleUpdateProjectData}
onUpdateProjectId={this.handleUpdateProjectId}
onUpdateProjectThumbnail={this.props.handleUpdateProjectThumbnail}
onUpdateProjectTitle={this.handleUpdateProjectTitle}
/>
props屬性解讀
assetHost
解釋:存儲、獲取圖片,聲音等資源的主機域名
默認值:https://assets.scratch.mit.edu
作用:
- storage通過assetHost獲取圖片、聲音等資源信息;
- 把在本地創建的圖片、聲音等資源上傳到assetHost;
- 在角色庫、背景庫、聲音庫中通過assetHost加載圖片和聲音;
authorId
解釋:項目project的作者 id
默認值:false
作用:
給scratch-gui/src/components/menu-bar/menu-bar.jsx 代碼中的AuthorInfo組件的userId屬性傳遞值,用於顯示作者信息
authorThumbnailUrl
解釋:獲取作者頭像的網址
作用:
給scratch-gui/src/components/menu-bar/menu-bar.jsx 代碼中的AuthorInfo組件的imageUrl屬性傳遞值,用於顯示作者頭像
authorUsername
解釋:作者的用戶名
作用:
給scratch-gui/src/components/menu-bar/menu-bar.jsx 代碼中的AuthorInfo組件的username屬性傳遞值,用於顯示作者用戶名
當作者和用戶不同時,顯示project的作者信息
backpackHost
解釋:存儲、獲取書包資源的主機域名
默認值:https://backpack.scratch.mit.edu
backpackVisible
解釋:是否顯示gui中書包的區域
默認值:false,登陸後爲 true
basePath
解釋:設置基本路徑
默認值:/
作用:網頁用來獲取gui裏static文件夾裏的圖片、聲音等資源
canCreateCopy
解釋:是否顯示保存副本的按鈕
默認值:false
作用:保存當前project,新建project,內容和當前project一樣,可以說是複製了當前的project
canCreateNew
解釋:是否可以新建作品
默認值:false,登陸後爲true
作用:當爲false時,用戶不能新建project,爲true時可以新建project;
canEditTitle
解釋:是否可以編輯標題 title
默認值:false
作用:顯示標題編輯框,false時不顯示,true時顯示。
canRemix
解釋:是否顯示改編按鈕
默認值:false
作用:改編別人的project。
canSave
解釋:是否顯示立即保存按鈕,當用戶已登陸,且project的作者和用戶是同一個時,顯示
默認值:false
作用:保存當前的project
canShare
解釋:是否顯示立即分享按鈕
默認值:false
作用:分享發佈當前的project
cloudHost
解釋:雲主機地址
enableCommunity
解釋:是否顯示 查看作品按鈕
默認值:false
作用:打開作品(play.html)頁面,在作品頁面可以編輯標題,描述,操作說明等
hasCloudPermission
解釋:是否擁有云權限
isShared
解釋:是否顯示已分享按鈕(作品分享後顯示)
默認值:false
projectHost
解釋:project主機域名
默認值:https://projects.scratch.mit.edu
projectId
解釋:project的id
projectTitle
解釋:project的title
renderLogin
解釋:渲染登陸框,添加登陸框組件
onClickLogo
解釋:函數,返回點擊logo時的跳轉地址
默認值:首頁
onGreenFlag
解釋:點擊綠旗時要觸發的函數
onLogOut
解釋:點擊退出登陸觸發的函數
onOpenRegistration
解釋:點擊“加入scratch” 觸發的方法
作用:彈出註冊框
onProjectLoaded
解釋:project加載完後觸發的方法
作用:設置project是否加載完
onRemixing
解釋:當點擊改編按鈕時,正在改編狀態時觸發的方法
onSetLanguage
解釋:設置語言的方法
onShare
解釋:設置分享的方法
onToggleLoginOpen
解釋:顯示或關閉登陸框的方法
onUpdateProjectData
解釋:更新項目數據的方法
onUpdateProjectId
解釋:當project項目的id改變時觸發的方法
作用:改變當前瀏覽器project 地址的id。
onUpdateProjectThumbnail
解釋:更新project縮略圖的方法
onUpdateProjectTitle
解釋:更新project的標題觸發的方法