From b883695bc592d4d84be1f273a80fad386d247e90 Mon Sep 17 00:00:00 2001 From: Carlos Ballesteros Velasco Date: Thu, 20 Apr 2017 02:05:47 +0200 Subject: [PATCH] Added flash swf views --- korge-tic-tac-toe/build.gradle | 1 + korge-tic-tac-toe/resources/main.fla | Bin 0 -> 8439 bytes korge-tic-tac-toe/resources/main.swf | Bin 0 -> 916 bytes .../src/com.soywiz.korge.tictactoe/Board.kt | 13 ++++ .../com.soywiz.korge.tictactoe/TicTacToe.kt | 57 +++++++++++++++++- 5 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 korge-tic-tac-toe/resources/main.fla create mode 100644 korge-tic-tac-toe/resources/main.swf create mode 100644 korge-tic-tac-toe/src/com.soywiz.korge.tictactoe/Board.kt diff --git a/korge-tic-tac-toe/build.gradle b/korge-tic-tac-toe/build.gradle index 5206d1b..00ae0b9 100644 --- a/korge-tic-tac-toe/build.gradle +++ b/korge-tic-tac-toe/build.gradle @@ -4,4 +4,5 @@ apply plugin: 'kotlin' dependencies { compile "com.soywiz:korge:$korVersion" + compile "com.soywiz:korge-ext-swf:$korVersion" } diff --git a/korge-tic-tac-toe/resources/main.fla b/korge-tic-tac-toe/resources/main.fla new file mode 100644 index 0000000000000000000000000000000000000000..6feb69c4297301ed6d52502c816657525bf46a63 GIT binary patch literal 8439 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ÐoyBPrsluACO5}}a z`sz-yb-c4=9a*$GZ6%rt4W|&9 zMC#P}u;xr}{motwEUWcPX(pji>G%vPx?;+S=H>|x9__F zt%^BT>Yq;rb;zhkaU_RtL^s)M4wF&O347{AE9Tr{ShW%?zbi=}hjaR-apo#RR+J@q zcXW&}{p9jCsEJn&cmy1L78>t{zNknx-!Ua`HC;5Dx_Ecs-$qD%StaTP4S#F*LvvKx z66BZ6@H6-~GiSM0pAA7Bsvp#$;{C&+{*DQMc-0}h1vbnU{4YY4d%W43g&#t^* zl1pNoWNAr0*AXv7lt!p}^If$)TWA{ix!=hq>8X>unVVE|X!>j0PiVA-QrW8oqXYliLs;M>e!=O9 zcyZ!ujM(=X)E+)sC{{RXIm;99S!z*Hk6)y`Oj4$_%!-oFXhByELB~|tu8b^F8X)>Q zOARSc2zzu3CyW%TPIsLI@nd23M8!8I084V&n{$P)O$De;4t+>n)xAqxmX5|C$bQ0N zRM=#v-U9@Z1nY%t!O0!ErS}k0<+fnoDSOo%M6QrK231*i?=d)c)1VLQe56U&J&)6S z!sYAz^zfS!8ulyPN;jOK;GL%#7e3xj_$)I|6eMjTo*7r0yvZDz++efARw{^3dsjB( zvg@cz;Z`NaV#2T28?4~wOlN_spx|VW8`2r}wD9x!_BMYGB;Dre+zQ211P( zuQ>Rjgg&cbA{e-UJGj~#9wQrvIr;TlUnRJ^K%DaP5NE#ohB4ggcKxEDk#q=lSvt6p ziF%X$>?7ixAeyg=a7K9rQb-Mx$N)-d0Jj_aO5>=fn@nPUH(v7e9LW)w$GtE_8+lzN zhN3EDMq$xFY?TQ8?*4Ll7=3Q7s( zrA|fJEg2*31UZ%(=)qm~&3(~5dhC}wi~lX$!5D^}#Nngb9skj7)RD-y9i~&lhIad9 z-izgRfmh60QfBPu7m->4Y5SogHT;+D^?MeMw!Jq;2;zIIqAn+kX|Jzf zf0%{;4_?4Lz=dX(KNbAh1%>kKALCa~RPNuXe~A1=#~*7<=!F$Je+GKW{{wa39Q`rw zQ5w+st0e!wVE0b>$GC@iL+5|APJf*BXC42~=IP&f=%oZY|7fNDy!Qj>pX|O#{970R zxbGYM9{bRI_}7vD-9`BK{r~JE{8m8@P3!-otMI?haG!zy9ug1#yW;TghxKR8;WyqD zivN!a#P0(j0sgB5@LK^bv>W~NY5y(={E7cF8T^gcgFeq+_@AlapYT8Ph~ID{XbI&f z{O_#dPw<}+-ES~1)DZpz|BCPag#YPwf5XcO{sI40n7KEj|J3nc#`m|5J;MLc@s}z7 nspIG0^iTW$TSpJHJ!Sj1H&B*?zpoSlFrhCTXrKT`a=-dNHxDxr literal 0 HcmV?d00001 diff --git a/korge-tic-tac-toe/resources/main.swf b/korge-tic-tac-toe/resources/main.swf new file mode 100644 index 0000000000000000000000000000000000000000..2426d5a172e54ea7d4a3e8666caeb375289c3874 GIT binary patch literal 916 zcmV;F18e+4S5qRe1pokeoQ;%UXdFcx$A2@sJF~l&yKF9(yCkU8Be4m}xtHLBLCi@~ zwUUxziinbC*UKEYa(|Y+<&w4tDbzpop&B0)9|}^jh|t%*UO;?^ob9zxDfPiV=z|rM zf*|7U%*IxR4HW28J z;Qm-BY%(UHu=&GS`&#?k)2Gkg+CoX*B{e1EP&ah~Pp2RzuT&?ml*Pt`vN3@S>7^y( z=K)3wG$t8<(c9j{msQ69X578^t{M=|-x zb2l$IP(UYT$43KQodvvCZ#3X-CJ}T}0LsaO1yObVQ;|>YBK91}-W09O;V?77@7JGv z)Nbd&06j)xu2**(Y~)O~C@PigOxDc4MS8H@gP;0dJ`m1_@I(mn9{lvjXW>A43hBUN zE0Ya(D7a_zgXFngaOORSA2nOCnQM0aaFl7dWU>EN#q& zSA*q5B|>BZ8j)o}bRb02rH=UmUJ8aWwPP-;iz;A@pdK?iX6Gm@Yh%zUNsAgqU81<> zaK{v2>82Gktv=I=n^wZK`b~@C=T&$(YGs1B{7(jDUk0`>=KErmV?4Us!5Hb3*ck1U q_@c&;(Eig4>3NY6pB;QG{8Qu5E0) = Korge(TicTacToeModule) @@ -11,7 +21,52 @@ object TicTacToeModule : Module() { override val mainScene: Class = TicTacToeMainScene::class.java } -class TicTacToeMainScene : Scene() { +var Board.Cell.view by Extra.Property { null } +val Board.Cell.onPress by Extra.Property { Signal() } + +fun Board.Cell.set(type: Board.Cell.Type) { + this.value = type + view.play(when (type) { + Board.Cell.Type.EMPTY -> "empty" + Board.Cell.Type.CIRCLE -> "circle" + Board.Cell.Type.CROSS -> "cross" + }) +} + +fun Board.Cell.init(view: View) { + this.view = view + set(this.value) + view["hit"].onClick { + onPress(Unit) + } +} + +class TicTacToeMainScene( + @Path("main.swf") val mainLibrary: AnLibrary +) : Scene() { + val board = Board() + suspend override fun sceneInit(sceneView: Container) { + sceneView += mainLibrary.createMainTimeLine() + + for ((rowView, row) in sceneView.descendantsWithPropInt("row")) { + for ((cellView, cell) in rowView.descendantsWithPropInt("cell")) { + board.cells[row, cell].init(cellView) + //println("$rowId, $cellId") + } + } + + var turn = true + for (cell in board.cells) { + cell.onPress { + if (turn) { + cell.set(Board.Cell.Type.CIRCLE) + } else { + cell.set(Board.Cell.Type.CROSS) + } + turn = !turn + + } + } } } \ No newline at end of file