iOS—js版圖形化編曲01

????注:?1.閱讀此篇文章之前开仰,請(qǐng)先觀看下方視頻(記得開啟聲音)

? ? ? ? ? ? ?2.由于該功能大多都是邏輯拟枚,我只說流程,具體我就不多說了众弓,有興趣請(qǐng)看代碼截圖恩溅。

????最近公司在做少兒編程,也就是圖形化編程谓娃,樣例如下


小星星
圖形化編程

???????對(duì)于這個(gè)音樂編程是我們前端大佬在谷歌的blockly的基礎(chǔ)上修改得到的脚乡。

? ? ? ? 我們先來簡(jiǎn)單說說一下這個(gè)音樂編程的使用,用戶可以從左側(cè)的初始模塊拖拽模塊到右側(cè)部分(最右側(cè)的xml可以通過最右側(cè)的按鈕收回去),拖拽后變成自己的曲子奶稠,點(diǎn)擊上方按鈕執(zhí)行即可(右上方按鈕1:播放與暫停俯艰,按鈕2:停止當(dāng)前曲子,按鈕3:(曲子存儲(chǔ)))

????????現(xiàn)在我們要開始實(shí)現(xiàn)這個(gè)音樂編程了锌订,首先我們用wkwebview加載本地網(wǎng)頁,代碼與效果圖下圖

網(wǎng)頁加載

????????上面一切準(zhǔn)備就緒竹握,我們就要開始拖拽自己的曲子(由于簡(jiǎn)書限制gif最大5兆,所以只能盡量簡(jiǎn)單操作)

用戶編曲

? ? ? ? 一切準(zhǔn)備完畢辆飘,現(xiàn)在開始解析曲子并播放了啦辐。如上圖右側(cè),那是根據(jù)用戶編寫的曲子生成的xml代碼蜈项,也是我們的解析代碼芹关。

? ? ? ? 我們先調(diào)用前端大佬為我們寫的函數(shù)來獲取xml代碼

獲取xml

? ? ? ? 下一步開始解析xml代碼

xml解析


dataArray數(shù)據(jù)

?????????現(xiàn)在我們要開始解析xml傳給我們的數(shù)據(jù),我們左側(cè)一共有8個(gè)模塊紧卒,key(Number)對(duì)應(yīng)的是模塊序號(hào)侥衬,name(暫時(shí)用不上)對(duì)應(yīng)的是模塊名字,param是我們需要的參數(shù)

????????模塊2: 小提琴跑芳,大提琴轴总,薩克斯,鋼琴聋亡,小號(hào)肘习,長(zhǎng)笛6鐘樂器,前端大佬返還我們param1參數(shù)為1-6

????????模塊3:音符分為18種坡倔,param1參數(shù)1-18漂佩,parma2:節(jié)拍數(shù),節(jié)拍為0.25 - 4(每次添加0.25罪塔,一秒對(duì)應(yīng)2節(jié)拍)

? ? ? ? 模塊4:軍鼓投蝉,底鼓,桶鼓征堪,強(qiáng)音镲瘩缆,踩镲,音樹佃蚜,雪橇鈴庸娱,盒棒,param1:1-8谐算,parma2:節(jié)拍數(shù)

? ? ? ? 模塊5: 休息功能(相當(dāng)于靜音) ?param1:節(jié)拍數(shù)

????????模塊6:循環(huán)功能 ?param1:循環(huán)次數(shù)熟尉,param2:內(nèi)部循環(huán)模塊條數(shù)

????????模塊7:設(shè)置一個(gè)函數(shù) param1:函數(shù)名,param2:內(nèi)部包裹模塊條數(shù)

????????模塊8:調(diào)用一個(gè)函數(shù) param1:函數(shù)名


模塊圖

????? ? 首先我們創(chuàng)建一個(gè)類用于解析xml給我們的數(shù)據(jù)洲脂,我們要把它轉(zhuǎn)換成能直接告訴我們執(zhí)行的音效與時(shí)間

xml數(shù)據(jù)解析

????????由于函數(shù)模塊和音樂執(zhí)行體是一個(gè)xml返還給我們的斤儿,首先我們要分離執(zhí)行體與函數(shù)

函數(shù)圖

????分離方法如下


函數(shù)與執(zhí)行體分離_02
函數(shù)與執(zhí)行體分離_02

????????由于右邊的代碼是按照上面圖形從上往下解析的,不過我們知道,如果著是個(gè)函數(shù)體往果,那么它的number一定是7疆液,param2則是內(nèi)部包裹條數(shù)。通過這個(gè)參數(shù)param2陕贮,我們逐條取出函數(shù)的指令堕油,唯一要注意的是,如果包含了循環(huán)體肮之,記得重新添加循環(huán)體條數(shù)馍迄,而對(duì)于執(zhí)行體,由于不確定條數(shù)局骤,我們只能間接通過函數(shù)體來得到執(zhí)行體,此處執(zhí)行體我們存放在musicArray中暴凑,函數(shù)存于funsXmlDic中峦甩。

? ? 由于篇幅過長(zhǎng),我們換下一章~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末现喳,一起剝皮案震驚了整個(gè)濱河市凯傲,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌嗦篱,老刑警劉巖冰单,帶你破解...
    沈念sama閱讀 218,546評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異灸促,居然都是意外死亡诫欠,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門浴栽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來荒叼,“玉大人,你說我怎么就攤上這事典鸡”焕” “怎么了?”我有些...
    開封第一講書人閱讀 164,911評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵萝玷,是天一觀的道長(zhǎng)嫁乘。 經(jīng)常有香客問我,道長(zhǎng)球碉,這世上最難降的妖魔是什么蜓斧? 我笑而不...
    開封第一講書人閱讀 58,737評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮汁尺,結(jié)果婚禮上法精,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好搂蜓,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評(píng)論 6 392
  • 文/花漫 我一把揭開白布狼荞。 她就那樣靜靜地躺著,像睡著了一般帮碰。 火紅的嫁衣襯著肌膚如雪相味。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,598評(píng)論 1 305
  • 那天殉挽,我揣著相機(jī)與錄音丰涉,去河邊找鬼。 笑死斯碌,一個(gè)胖子當(dāng)著我的面吹牛一死,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播傻唾,決...
    沈念sama閱讀 40,338評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼投慈,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了冠骄?” 一聲冷哼從身側(cè)響起伪煤,我...
    開封第一講書人閱讀 39,249評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎凛辣,沒想到半個(gè)月后抱既,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,696評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡扁誓,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評(píng)論 3 336
  • 正文 我和宋清朗相戀三年防泵,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片跋理。...
    茶點(diǎn)故事閱讀 40,013評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡择克,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出前普,到底是詐尸還是另有隱情肚邢,我是刑警寧澤,帶...
    沈念sama閱讀 35,731評(píng)論 5 346
  • 正文 年R本政府宣布拭卿,位于F島的核電站骡湖,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏峻厚。R本人自食惡果不足惜响蕴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望惠桃。 院中可真熱鬧浦夷,春花似錦辖试、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至肥缔,卻和暖如春莲兢,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背续膳。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工改艇, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人坟岔。 一個(gè)月前我還...
    沈念sama閱讀 48,203評(píng)論 3 370
  • 正文 我出身青樓谒兄,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親社付。 傳聞我的和親對(duì)象是個(gè)殘疾皇子舵变,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件瘦穆、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,104評(píng)論 4 62
  • 我們首先對(duì)領(lǐng)導(dǎo)力的5個(gè)層次有一視覺直觀認(rèn)識(shí),再對(duì)每一層次做一簡(jiǎn)要解讀赊豌。 第一層次——職位 職位型是領(lǐng)導(dǎo)力中最初級(jí)的...
    鴨梨山大哎閱讀 2,962評(píng)論 2 4
  • 喧囂 寂靜 無助 自責(zé) 愛天空 愛草地 我緊握稻草 被泥土掩埋 女性的豐乳 驕傲的雙臀 施虐于我 不求而不得 這可...
    三聞魚r閱讀 178評(píng)論 0 4
  • 我一直以為我可以忘了當(dāng)初那個(gè)人扛或、那件事,其實(shí)我錯(cuò)了碘饼,我沒忘記過熙兔,而且還記的很深,深到骨髓艾恼。如果那天我不是年少輕狂的...
    2c22e15c35ad閱讀 194評(píng)論 0 0
  • 春去秋來住涉,最美莫過人間四月天,四月的龍山钠绍,正是木棉花紅時(shí)舆声。在遠(yuǎn)離她的這里,我悠悠遙望柳爽,喃喃自念:龍山的木棉花又開了...
    c老靈魂閱讀 652評(píng)論 0 2