Added GetChildren and ChildAdded on Extend

This commit is contained in:
Qwreey 2023-02-23 19:41:16 +09:00
parent e4dbdede9b
commit dd980aab3b
21 changed files with 772 additions and 213 deletions

View file

@ -2,7 +2,7 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url> <url>
<loc>https://quad.qwreey.kr/en/</loc> <loc>https://quad.qwreey.kr/en/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
</urlset> </urlset>

Binary file not shown.

View file

@ -421,6 +421,13 @@
</label> </label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix> <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#225" class="md-nav__link">
2.25
</a>
</li>
<li class="md-nav__item"> <li class="md-nav__item">
<a href="#224" class="md-nav__link"> <a href="#224" class="md-nav__link">
2.24 2.24
@ -1209,6 +1216,8 @@
<h1 id="_1">버전 번경사항<a class="headerlink" href="#_1" title="Permanent link">&para;</a></h1> <h1 id="_1">버전 번경사항<a class="headerlink" href="#_1" title="Permanent link">&para;</a></h1>
<h2 id="225">2.25<a class="headerlink" href="#225" title="Permanent link">&para;</a></h2>
<p>실험적 API 로써 GetChildren() 과 ChildAdded::Bindable 이 추가되었습니다.</p>
<h2 id="224">2.24<a class="headerlink" href="#224" title="Permanent link">&para;</a></h2> <h2 id="224">2.24<a class="headerlink" href="#224" title="Permanent link">&para;</a></h2>
<p>모든 문서가 정리되었습니다.</p> <p>모든 문서가 정리되었습니다.</p>
<h2 id="223">2.23<a class="headerlink" href="#223" title="Permanent link">&para;</a></h2> <h2 id="223">2.23<a class="headerlink" href="#223" title="Permanent link">&para;</a></h2>

View file

@ -1453,7 +1453,7 @@
<span class="kd">local</span> <span class="n">Mount</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Mount</span> <span class="kd">local</span> <span class="n">Mount</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Mount</span>
<span class="kd">local</span> <span class="n">Evnet</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Event</span> <span class="kd">local</span> <span class="n">Evnet</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Event</span>
<span class="kd">local</span> <span class="n">TextBox</span> <span class="o">=</span> <span class="n">Class</span> <span class="s2">&quot;TextButton&quot;</span> <span class="kd">local</span> <span class="n">TextButton</span> <span class="o">=</span> <span class="n">Class</span> <span class="s2">&quot;TextButton&quot;</span>
<span class="kd">local</span> <span class="n">myClass</span> <span class="o">=</span> <span class="n">Class</span><span class="p">.</span><span class="n">Extend</span><span class="p">()</span> <span class="kd">local</span> <span class="n">myClass</span> <span class="o">=</span> <span class="n">Class</span><span class="p">.</span><span class="n">Extend</span><span class="p">()</span>
<span class="kr">function</span> <span class="nc">myClass</span><span class="p">:</span><span class="nf">Render</span><span class="p">(</span><span class="n">props</span><span class="p">)</span> <span class="kr">function</span> <span class="nc">myClass</span><span class="p">:</span><span class="nf">Render</span><span class="p">(</span><span class="n">props</span><span class="p">)</span>
@ -1481,6 +1481,128 @@
<span class="n">Mount</span><span class="p">(</span><span class="n">ScreenGUI</span><span class="p">,</span> <span class="n">myButton</span><span class="p">)</span> <span class="n">Mount</span><span class="p">(</span><span class="n">ScreenGUI</span><span class="p">,</span> <span class="n">myButton</span><span class="p">)</span>
</code></pre></div></td></tr></table></div></p> </code></pre></div></td></tr></table></div></p>
</blockquote> </blockquote>
<hr />
<p><mark>Event</mark> <code class="highlight"><span class="nx">.ChildAdded</span><span class="o">:</span><span class="kt">Connect</span><span class="p">((</span><span class="nx">child</span><span class="p">)</span><span class="o">-&gt;</span><span class="p">())</span><span class="o">-&gt;</span><span class="nx">Connection</span></code> </p>
<blockquote>
<p>자식 오브젝트가 추가될 때 발생하는 이벤트입니다. <code class="highlight"><span class="o">:</span><span class="nx">Init</span></code> 에서 사용하면 옵션으로 넣은 자식 오브젝트가 이 이벤트를 통해 얻어질 수 있으며, <code class="highlight"><span class="o">:</span><span class="nx">AfterRender</span></code> 에서는 추후 <code>Mount</code> 를 통해 추가되는 자식 오브젝트만 이 이벤트로 얻어질 수 있습니다.<br />
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
<span class="normal"> 2</span>
<span class="normal"> 3</span>
<span class="normal"> 4</span>
<span class="normal"> 5</span>
<span class="normal"> 6</span>
<span class="normal"> 7</span>
<span class="normal"> 8</span>
<span class="normal"> 9</span>
<span class="normal">10</span>
<span class="normal">11</span>
<span class="normal">12</span>
<span class="normal">13</span>
<span class="normal">14</span>
<span class="normal">15</span>
<span class="normal">16</span>
<span class="normal">17</span>
<span class="normal">18</span>
<span class="normal">19</span>
<span class="normal">20</span>
<span class="normal">21</span>
<span class="normal">22</span>
<span class="normal">23</span>
<span class="normal">24</span>
<span class="normal">25</span>
<span class="normal">26</span>
<span class="normal">27</span>
<span class="normal">28</span>
<span class="normal">29</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">local</span> <span class="n">Quad</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="n">path</span><span class="p">.</span><span class="n">to</span><span class="p">.</span><span class="n">module</span><span class="p">).</span><span class="n">Init</span><span class="p">()</span>
<span class="kd">local</span> <span class="n">Class</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Class</span>
<span class="kd">local</span> <span class="n">Mount</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Mount</span>
<span class="kd">local</span> <span class="n">Evnet</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Event</span>
<span class="kd">local</span> <span class="n">TextButton</span> <span class="o">=</span> <span class="n">Class</span> <span class="s2">&quot;TextButton&quot;</span>
<span class="kd">local</span> <span class="n">myClass</span> <span class="o">=</span> <span class="n">Class</span><span class="p">.</span><span class="n">Extend</span><span class="p">()</span>
<span class="kr">function</span> <span class="nc">myClass</span><span class="p">:</span><span class="nf">Render</span><span class="p">(</span><span class="n">props</span><span class="p">)</span>
<span class="kr">return</span> <span class="n">TextButton</span> <span class="p">{</span>
<span class="n">self</span> <span class="s2">&quot;_holder&quot;</span><span class="p">;</span>
<span class="p">}</span>
<span class="kr">end</span>
<span class="kr">function</span> <span class="nc">myClass</span><span class="p">:</span><span class="nf">AfterRender</span><span class="p">()</span>
<span class="n">self</span><span class="p">.</span><span class="n">ChildAdded</span><span class="p">:</span><span class="n">Connect</span><span class="p">(</span><span class="kr">function</span><span class="p">(</span><span class="n">child</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">child</span><span class="p">.</span><span class="n">Name</span><span class="p">)</span>
<span class="kr">end</span><span class="p">)</span>
<span class="kr">end</span>
<span class="kd">local</span> <span class="n">myImported</span> <span class="o">=</span> <span class="n">Class</span><span class="p">(</span><span class="n">myClass</span><span class="p">)</span>
<span class="kd">local</span> <span class="n">myButton</span> <span class="o">=</span> <span class="n">myImported</span><span class="p">{</span>
<span class="c1">-- Init 에 ChildAdded 를 넣은것이 아니기 때문에 출력되지 않습니다.</span>
<span class="c1">-- 그러나 AfterRender 에 :GetChildren 을 넣어 이 오브젝트를</span>
<span class="c1">-- 얻어올 수 있습니다.</span>
<span class="n">TextButton</span> <span class="p">{</span> <span class="n">Name</span> <span class="o">=</span> <span class="s2">&quot;Hello &quot;</span><span class="p">};</span>
<span class="p">}</span>
<span class="n">Mount</span><span class="p">(</span><span class="n">myButton</span><span class="p">,</span> <span class="n">TextButton</span><span class="p">{</span> <span class="n">Name</span> <span class="o">=</span> <span class="s2">&quot;Hello&quot;</span> <span class="p">})</span>
<span class="n">Mount</span><span class="p">(</span><span class="n">myButton</span><span class="p">,</span> <span class="n">TextButton</span><span class="p">{</span> <span class="n">Name</span> <span class="o">=</span> <span class="s2">&quot;World&quot;</span> <span class="p">})</span>
</code></pre></div></td></tr></table></div></p>
</blockquote>
<hr />
<p><code class="highlight"><span class="o">:</span><span class="nx">GetChildren</span><span class="p">()</span></code> </p>
<blockquote>
<p>자식 오브젝트들을 가져오는 함수입니다. <code>:Init()</code> 에서는 빈 테이블을 반환하고, <code>AfterRender</code> 에서는 옵션에 들어간 자식 오브젝트들이 담긴 테이블을 반환합니다. 자식의 순서는 일정하지 않습니다.
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
<span class="normal"> 2</span>
<span class="normal"> 3</span>
<span class="normal"> 4</span>
<span class="normal"> 5</span>
<span class="normal"> 6</span>
<span class="normal"> 7</span>
<span class="normal"> 8</span>
<span class="normal"> 9</span>
<span class="normal">10</span>
<span class="normal">11</span>
<span class="normal">12</span>
<span class="normal">13</span>
<span class="normal">14</span>
<span class="normal">15</span>
<span class="normal">16</span>
<span class="normal">17</span>
<span class="normal">18</span>
<span class="normal">19</span>
<span class="normal">20</span>
<span class="normal">21</span>
<span class="normal">22</span>
<span class="normal">23</span>
<span class="normal">24</span>
<span class="normal">25</span>
<span class="normal">26</span>
<span class="normal">27</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">local</span> <span class="n">Quad</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="n">path</span><span class="p">.</span><span class="n">to</span><span class="p">.</span><span class="n">module</span><span class="p">).</span><span class="n">Init</span><span class="p">()</span>
<span class="kd">local</span> <span class="n">Class</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Class</span>
<span class="kd">local</span> <span class="n">Mount</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Mount</span>
<span class="kd">local</span> <span class="n">Evnet</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Event</span>
<span class="kd">local</span> <span class="n">TextButton</span> <span class="o">=</span> <span class="n">Class</span> <span class="s2">&quot;TextButton&quot;</span>
<span class="kd">local</span> <span class="n">myClass</span> <span class="o">=</span> <span class="n">Class</span><span class="p">.</span><span class="n">Extend</span><span class="p">()</span>
<span class="kr">function</span> <span class="nc">myClass</span><span class="p">:</span><span class="nf">Render</span><span class="p">(</span><span class="n">props</span><span class="p">)</span>
<span class="kr">return</span> <span class="n">TextButton</span> <span class="p">{</span>
<span class="n">self</span> <span class="s2">&quot;_holder&quot;</span><span class="p">;</span>
<span class="p">}</span>
<span class="kr">end</span>
<span class="kr">function</span> <span class="nc">myClass</span><span class="p">:</span><span class="nf">AfterRender</span><span class="p">()</span>
<span class="kr">for</span> <span class="n">i</span><span class="p">,</span><span class="n">v</span> <span class="kr">in</span> <span class="nb">ipairs</span><span class="p">(</span><span class="n">self</span><span class="p">:</span><span class="n">GetChildren</span><span class="p">())</span> <span class="kr">do</span>
<span class="nb">print</span><span class="p">(</span><span class="n">v</span><span class="p">.</span><span class="n">Name</span><span class="p">)</span>
<span class="kr">end</span>
<span class="kr">end</span>
<span class="kd">local</span> <span class="n">myImported</span> <span class="o">=</span> <span class="n">Class</span><span class="p">(</span><span class="n">myClass</span><span class="p">)</span>
<span class="kd">local</span> <span class="n">myButton</span> <span class="o">=</span> <span class="n">myImported</span><span class="p">{</span>
<span class="n">TextButton</span> <span class="p">{</span> <span class="n">Name</span> <span class="o">=</span> <span class="s2">&quot;Hello World&quot;</span><span class="p">};</span>
<span class="p">}</span>
<span class="c1">-- 나중에 추가하는 오브젝트는 출력되지 않습니다.</span>
<span class="n">Mount</span><span class="p">(</span><span class="n">myButton</span><span class="p">,</span> <span class="n">TextButton</span><span class="p">{</span> <span class="n">Name</span> <span class="o">=</span> <span class="s2">&quot;Hello&quot;</span> <span class="p">})</span>
<span class="n">Mount</span><span class="p">(</span><span class="n">myButton</span><span class="p">,</span> <span class="n">TextButton</span><span class="p">{</span> <span class="n">Name</span> <span class="o">=</span> <span class="s2">&quot;World&quot;</span> <span class="p">})</span>
</code></pre></div></td></tr></table></div></p>
</blockquote>

View file

@ -1038,52 +1038,52 @@
<h1>Locales</h1> <h1>Locales</h1>
<p><strong>Default</strong> (default)<br /> <p><strong>Default</strong> (default)<br />
<strong>English</strong> (en_us)<br /> <strong>English</strong> (en-us)<br />
<strong>Spanish</strong> (es_es)<br /> <strong>Spanish</strong> (es-es)<br />
<strong>French</strong> (fr_fr)<br /> <strong>French</strong> (fr-fr)<br />
<strong>Indonesian</strong> (id_id)<br /> <strong>Indonesian</strong> (id-id)<br />
<strong>Italian</strong> (it_it)<br /> <strong>Italian</strong> (it-it)<br />
<strong>Japanese</strong> (ja_jp)<br /> <strong>Japanese</strong> (ja-jp)<br />
<strong>Korean</strong> (ko_kr)<br /> <strong>Korean</strong> (ko-kr)<br />
<strong>Russian</strong> (ru_ru)<br /> <strong>Russian</strong> (ru-ru)<br />
<strong>Thai</strong> (th_th)<br /> <strong>Thai</strong> (th-th)<br />
<strong>Turkish</strong> (tr_tr)<br /> <strong>Turkish</strong> (tr-tr)<br />
<strong>Vietnamese</strong> (vi_vn)<br /> <strong>Vietnamese</strong> (vi-vn)<br />
<strong>Portuguese</strong> (pt_br)<br /> <strong>Portuguese</strong> (pt-br)<br />
<strong>German</strong> (de_de)<br /> <strong>German</strong> (de-de)<br />
<strong>ChineseSimplified</strong> (zh_cn)<br /> <strong>ChineseSimplified</strong> (zh-cn)<br />
<strong>ChineseTraditional</strong> (zh_tw)<br /> <strong>ChineseTraditional</strong> (zh-tw)<br />
<strong>Bulgarian</strong> (bg_bg)<br /> <strong>Bulgarian</strong> (bg-bg)<br />
<strong>Bengali</strong> (bn_bd)<br /> <strong>Bengali</strong> (bn-bd)<br />
<strong>Czech</strong> (cs_cz)<br /> <strong>Czech</strong> (cs-cz)<br />
<strong>Danish</strong> (da_dk)<br /> <strong>Danish</strong> (da-dk)<br />
<strong>Greek</strong> (el_gr)<br /> <strong>Greek</strong> (el-gr)<br />
<strong>Estonian</strong> (et_ee)<br /> <strong>Estonian</strong> (et-ee)<br />
<strong>Finnish</strong> (fi_fi)<br /> <strong>Finnish</strong> (fi-fi)<br />
<strong>Hindi</strong> (hi_in)<br /> <strong>Hindi</strong> (hi-in)<br />
<strong>Croatian</strong> (hr_hr)<br /> <strong>Croatian</strong> (hr-hr)<br />
<strong>Hungarian</strong> (hu_hu)<br /> <strong>Hungarian</strong> (hu-hu)<br />
<strong>Georgian</strong> (ka_ge)<br /> <strong>Georgian</strong> (ka-ge)<br />
<strong>Kazakh</strong> (kk_kz)<br /> <strong>Kazakh</strong> (kk-kz)<br />
<strong>Khmer</strong> (km_kh)<br /> <strong>Khmer</strong> (km-kh)<br />
<strong>Lithuanian</strong> (lt_lt)<br /> <strong>Lithuanian</strong> (lt-lt)<br />
<strong>Latvian</strong> (lv_lv)<br /> <strong>Latvian</strong> (lv-lv)<br />
<strong>Malay</strong> (ms_my)<br /> <strong>Malay</strong> (ms-my)<br />
<strong>Burmese</strong> (my_mm)<br /> <strong>Burmese</strong> (my-mm)<br />
<strong>Bokmal</strong> (nb_no)<br /> <strong>Bokmal</strong> (nb-no)<br />
<strong>Dutch</strong> (nl_nl)<br /> <strong>Dutch</strong> (nl-nl)<br />
<strong>Filipino</strong> (fil_ph)<br /> <strong>Filipino</strong> (fil-ph)<br />
<strong>Polish</strong> (pl_pl)<br /> <strong>Polish</strong> (pl-pl)<br />
<strong>Romanian</strong> (ro_ro)<br /> <strong>Romanian</strong> (ro-ro)<br />
<strong>Ukrainian</strong> (uk_ua)<br /> <strong>Ukrainian</strong> (uk-ua)<br />
<strong>Sinhala</strong> (si_lk)<br /> <strong>Sinhala</strong> (si-lk)<br />
<strong>Slovak</strong> (sk_sk)<br /> <strong>Slovak</strong> (sk-sk)<br />
<strong>Slovenian</strong> (sl_sl)<br /> <strong>Slovenian</strong> (sl-sl)<br />
<strong>Albanian</strong> (sq_al)<br /> <strong>Albanian</strong> (sq-al)<br />
<strong>Bosnian</strong> (bs_ba)<br /> <strong>Bosnian</strong> (bs-ba)<br />
<strong>Serbian</strong> (sr_rs)<br /> <strong>Serbian</strong> (sr-rs)<br />
<strong>Swedish</strong> (sv_se)<br /> <strong>Swedish</strong> (sv-se)<br />
<strong>Arabic</strong> (ar_001) </p> <strong>Arabic</strong> (ar-001) </p>

View file

@ -1475,7 +1475,7 @@
<span class="kd">local</span> <span class="n">Mount</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Mount</span> <span class="kd">local</span> <span class="n">Mount</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Mount</span>
<span class="kd">local</span> <span class="n">Evnet</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Event</span> <span class="kd">local</span> <span class="n">Evnet</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Event</span>
<span class="kd">local</span> <span class="n">TextBox</span> <span class="o">=</span> <span class="n">Class</span> <span class="s2">&quot;TextButton&quot;</span> <span class="kd">local</span> <span class="n">TextButton</span> <span class="o">=</span> <span class="n">Class</span> <span class="s2">&quot;TextButton&quot;</span>
<span class="kd">local</span> <span class="n">myClass</span> <span class="o">=</span> <span class="n">Class</span><span class="p">.</span><span class="n">Extend</span><span class="p">()</span> <span class="kd">local</span> <span class="n">myClass</span> <span class="o">=</span> <span class="n">Class</span><span class="p">.</span><span class="n">Extend</span><span class="p">()</span>
<span class="kr">function</span> <span class="nc">myClass</span><span class="p">:</span><span class="nf">Render</span><span class="p">(</span><span class="n">props</span><span class="p">)</span> <span class="kr">function</span> <span class="nc">myClass</span><span class="p">:</span><span class="nf">Render</span><span class="p">(</span><span class="n">props</span><span class="p">)</span>
@ -1503,6 +1503,128 @@
<span class="n">Mount</span><span class="p">(</span><span class="n">ScreenGUI</span><span class="p">,</span> <span class="n">myButton</span><span class="p">)</span> <span class="n">Mount</span><span class="p">(</span><span class="n">ScreenGUI</span><span class="p">,</span> <span class="n">myButton</span><span class="p">)</span>
</code></pre></div></td></tr></table></div></p> </code></pre></div></td></tr></table></div></p>
</blockquote> </blockquote>
<hr />
<p><mark>Event</mark> <code class="highlight"><span class="nx">.ChildAdded</span><span class="o">:</span><span class="kt">Connect</span><span class="p">((</span><span class="nx">child</span><span class="p">)</span><span class="o">-&gt;</span><span class="p">())</span><span class="o">-&gt;</span><span class="nx">Connection</span></code> </p>
<blockquote>
<p>자식 오브젝트가 추가될 때 발생하는 이벤트입니다. <code class="highlight"><span class="o">:</span><span class="nx">Init</span></code> 에서 사용하면 옵션으로 넣은 자식 오브젝트가 이 이벤트를 통해 얻어질 수 있으며, <code class="highlight"><span class="o">:</span><span class="nx">AfterRender</span></code> 에서는 추후 <code>Mount</code> 를 통해 추가되는 자식 오브젝트만 이 이벤트로 얻어질 수 있습니다.<br />
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
<span class="normal"> 2</span>
<span class="normal"> 3</span>
<span class="normal"> 4</span>
<span class="normal"> 5</span>
<span class="normal"> 6</span>
<span class="normal"> 7</span>
<span class="normal"> 8</span>
<span class="normal"> 9</span>
<span class="normal">10</span>
<span class="normal">11</span>
<span class="normal">12</span>
<span class="normal">13</span>
<span class="normal">14</span>
<span class="normal">15</span>
<span class="normal">16</span>
<span class="normal">17</span>
<span class="normal">18</span>
<span class="normal">19</span>
<span class="normal">20</span>
<span class="normal">21</span>
<span class="normal">22</span>
<span class="normal">23</span>
<span class="normal">24</span>
<span class="normal">25</span>
<span class="normal">26</span>
<span class="normal">27</span>
<span class="normal">28</span>
<span class="normal">29</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">local</span> <span class="n">Quad</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="n">path</span><span class="p">.</span><span class="n">to</span><span class="p">.</span><span class="n">module</span><span class="p">).</span><span class="n">Init</span><span class="p">()</span>
<span class="kd">local</span> <span class="n">Class</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Class</span>
<span class="kd">local</span> <span class="n">Mount</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Mount</span>
<span class="kd">local</span> <span class="n">Evnet</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Event</span>
<span class="kd">local</span> <span class="n">TextButton</span> <span class="o">=</span> <span class="n">Class</span> <span class="s2">&quot;TextButton&quot;</span>
<span class="kd">local</span> <span class="n">myClass</span> <span class="o">=</span> <span class="n">Class</span><span class="p">.</span><span class="n">Extend</span><span class="p">()</span>
<span class="kr">function</span> <span class="nc">myClass</span><span class="p">:</span><span class="nf">Render</span><span class="p">(</span><span class="n">props</span><span class="p">)</span>
<span class="kr">return</span> <span class="n">TextButton</span> <span class="p">{</span>
<span class="n">self</span> <span class="s2">&quot;_holder&quot;</span><span class="p">;</span>
<span class="p">}</span>
<span class="kr">end</span>
<span class="kr">function</span> <span class="nc">myClass</span><span class="p">:</span><span class="nf">AfterRender</span><span class="p">()</span>
<span class="n">self</span><span class="p">.</span><span class="n">ChildAdded</span><span class="p">:</span><span class="n">Connect</span><span class="p">(</span><span class="kr">function</span><span class="p">(</span><span class="n">child</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">child</span><span class="p">.</span><span class="n">Name</span><span class="p">)</span>
<span class="kr">end</span><span class="p">)</span>
<span class="kr">end</span>
<span class="kd">local</span> <span class="n">myImported</span> <span class="o">=</span> <span class="n">Class</span><span class="p">(</span><span class="n">myClass</span><span class="p">)</span>
<span class="kd">local</span> <span class="n">myButton</span> <span class="o">=</span> <span class="n">myImported</span><span class="p">{</span>
<span class="c1">-- Init 에 ChildAdded 를 넣은것이 아니기 때문에 출력되지 않습니다.</span>
<span class="c1">-- 그러나 AfterRender 에 :GetChildren 을 넣어 이 오브젝트를</span>
<span class="c1">-- 얻어올 수 있습니다.</span>
<span class="n">TextButton</span> <span class="p">{</span> <span class="n">Name</span> <span class="o">=</span> <span class="s2">&quot;Hello &quot;</span><span class="p">};</span>
<span class="p">}</span>
<span class="n">Mount</span><span class="p">(</span><span class="n">myButton</span><span class="p">,</span> <span class="n">TextButton</span><span class="p">{</span> <span class="n">Name</span> <span class="o">=</span> <span class="s2">&quot;Hello&quot;</span> <span class="p">})</span>
<span class="n">Mount</span><span class="p">(</span><span class="n">myButton</span><span class="p">,</span> <span class="n">TextButton</span><span class="p">{</span> <span class="n">Name</span> <span class="o">=</span> <span class="s2">&quot;World&quot;</span> <span class="p">})</span>
</code></pre></div></td></tr></table></div></p>
</blockquote>
<hr />
<p><code class="highlight"><span class="o">:</span><span class="nx">GetChildren</span><span class="p">()</span></code> </p>
<blockquote>
<p>자식 오브젝트들을 가져오는 함수입니다. <code>:Init()</code> 에서는 빈 테이블을 반환하고, <code>AfterRender</code> 에서는 옵션에 들어간 자식 오브젝트들이 담긴 테이블을 반환합니다. 자식의 순서는 일정하지 않습니다.
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
<span class="normal"> 2</span>
<span class="normal"> 3</span>
<span class="normal"> 4</span>
<span class="normal"> 5</span>
<span class="normal"> 6</span>
<span class="normal"> 7</span>
<span class="normal"> 8</span>
<span class="normal"> 9</span>
<span class="normal">10</span>
<span class="normal">11</span>
<span class="normal">12</span>
<span class="normal">13</span>
<span class="normal">14</span>
<span class="normal">15</span>
<span class="normal">16</span>
<span class="normal">17</span>
<span class="normal">18</span>
<span class="normal">19</span>
<span class="normal">20</span>
<span class="normal">21</span>
<span class="normal">22</span>
<span class="normal">23</span>
<span class="normal">24</span>
<span class="normal">25</span>
<span class="normal">26</span>
<span class="normal">27</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">local</span> <span class="n">Quad</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="n">path</span><span class="p">.</span><span class="n">to</span><span class="p">.</span><span class="n">module</span><span class="p">).</span><span class="n">Init</span><span class="p">()</span>
<span class="kd">local</span> <span class="n">Class</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Class</span>
<span class="kd">local</span> <span class="n">Mount</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Mount</span>
<span class="kd">local</span> <span class="n">Evnet</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Event</span>
<span class="kd">local</span> <span class="n">TextButton</span> <span class="o">=</span> <span class="n">Class</span> <span class="s2">&quot;TextButton&quot;</span>
<span class="kd">local</span> <span class="n">myClass</span> <span class="o">=</span> <span class="n">Class</span><span class="p">.</span><span class="n">Extend</span><span class="p">()</span>
<span class="kr">function</span> <span class="nc">myClass</span><span class="p">:</span><span class="nf">Render</span><span class="p">(</span><span class="n">props</span><span class="p">)</span>
<span class="kr">return</span> <span class="n">TextButton</span> <span class="p">{</span>
<span class="n">self</span> <span class="s2">&quot;_holder&quot;</span><span class="p">;</span>
<span class="p">}</span>
<span class="kr">end</span>
<span class="kr">function</span> <span class="nc">myClass</span><span class="p">:</span><span class="nf">AfterRender</span><span class="p">()</span>
<span class="kr">for</span> <span class="n">i</span><span class="p">,</span><span class="n">v</span> <span class="kr">in</span> <span class="nb">ipairs</span><span class="p">(</span><span class="n">self</span><span class="p">:</span><span class="n">GetChildren</span><span class="p">())</span> <span class="kr">do</span>
<span class="nb">print</span><span class="p">(</span><span class="n">v</span><span class="p">.</span><span class="n">Name</span><span class="p">)</span>
<span class="kr">end</span>
<span class="kr">end</span>
<span class="kd">local</span> <span class="n">myImported</span> <span class="o">=</span> <span class="n">Class</span><span class="p">(</span><span class="n">myClass</span><span class="p">)</span>
<span class="kd">local</span> <span class="n">myButton</span> <span class="o">=</span> <span class="n">myImported</span><span class="p">{</span>
<span class="n">TextButton</span> <span class="p">{</span> <span class="n">Name</span> <span class="o">=</span> <span class="s2">&quot;Hello World&quot;</span><span class="p">};</span>
<span class="p">}</span>
<span class="c1">-- 나중에 추가하는 오브젝트는 출력되지 않습니다.</span>
<span class="n">Mount</span><span class="p">(</span><span class="n">myButton</span><span class="p">,</span> <span class="n">TextButton</span><span class="p">{</span> <span class="n">Name</span> <span class="o">=</span> <span class="s2">&quot;Hello&quot;</span> <span class="p">})</span>
<span class="n">Mount</span><span class="p">(</span><span class="n">myButton</span><span class="p">,</span> <span class="n">TextButton</span><span class="p">{</span> <span class="n">Name</span> <span class="o">=</span> <span class="s2">&quot;World&quot;</span> <span class="p">})</span>
</code></pre></div></td></tr></table></div></p>
</blockquote>

View file

@ -1104,52 +1104,52 @@ Lang.Locales 안의 값을 사용합니다.</p>
<hr /> <hr />
<h2 id="langlocales">Lang.Locales<a class="headerlink" href="#langlocales" title="Permanent link">&para;</a></h2> <h2 id="langlocales">Lang.Locales<a class="headerlink" href="#langlocales" title="Permanent link">&para;</a></h2>
<p><strong>Default</strong> (default)<br /> <p><strong>Default</strong> (default)<br />
<strong>English</strong> (en_us)<br /> <strong>English</strong> (en-us)<br />
<strong>Spanish</strong> (es_es)<br /> <strong>Spanish</strong> (es-es)<br />
<strong>French</strong> (fr_fr)<br /> <strong>French</strong> (fr-fr)<br />
<strong>Indonesian</strong> (id_id)<br /> <strong>Indonesian</strong> (id-id)<br />
<strong>Italian</strong> (it_it)<br /> <strong>Italian</strong> (it-it)<br />
<strong>Japanese</strong> (ja_jp)<br /> <strong>Japanese</strong> (ja-jp)<br />
<strong>Korean</strong> (ko_kr)<br /> <strong>Korean</strong> (ko-kr)<br />
<strong>Russian</strong> (ru_ru)<br /> <strong>Russian</strong> (ru-ru)<br />
<strong>Thai</strong> (th_th)<br /> <strong>Thai</strong> (th-th)<br />
<strong>Turkish</strong> (tr_tr)<br /> <strong>Turkish</strong> (tr-tr)<br />
<strong>Vietnamese</strong> (vi_vn)<br /> <strong>Vietnamese</strong> (vi-vn)<br />
<strong>Portuguese</strong> (pt_br)<br /> <strong>Portuguese</strong> (pt-br)<br />
<strong>German</strong> (de_de)<br /> <strong>German</strong> (de-de)<br />
<strong>ChineseSimplified</strong> (zh_cn)<br /> <strong>ChineseSimplified</strong> (zh-cn)<br />
<strong>ChineseTraditional</strong> (zh_tw)<br /> <strong>ChineseTraditional</strong> (zh-tw)<br />
<strong>Bulgarian</strong> (bg_bg)<br /> <strong>Bulgarian</strong> (bg-bg)<br />
<strong>Bengali</strong> (bn_bd)<br /> <strong>Bengali</strong> (bn-bd)<br />
<strong>Czech</strong> (cs_cz)<br /> <strong>Czech</strong> (cs-cz)<br />
<strong>Danish</strong> (da_dk)<br /> <strong>Danish</strong> (da-dk)<br />
<strong>Greek</strong> (el_gr)<br /> <strong>Greek</strong> (el-gr)<br />
<strong>Estonian</strong> (et_ee)<br /> <strong>Estonian</strong> (et-ee)<br />
<strong>Finnish</strong> (fi_fi)<br /> <strong>Finnish</strong> (fi-fi)<br />
<strong>Hindi</strong> (hi_in)<br /> <strong>Hindi</strong> (hi-in)<br />
<strong>Croatian</strong> (hr_hr)<br /> <strong>Croatian</strong> (hr-hr)<br />
<strong>Hungarian</strong> (hu_hu)<br /> <strong>Hungarian</strong> (hu-hu)<br />
<strong>Georgian</strong> (ka_ge)<br /> <strong>Georgian</strong> (ka-ge)<br />
<strong>Kazakh</strong> (kk_kz)<br /> <strong>Kazakh</strong> (kk-kz)<br />
<strong>Khmer</strong> (km_kh)<br /> <strong>Khmer</strong> (km-kh)<br />
<strong>Lithuanian</strong> (lt_lt)<br /> <strong>Lithuanian</strong> (lt-lt)<br />
<strong>Latvian</strong> (lv_lv)<br /> <strong>Latvian</strong> (lv-lv)<br />
<strong>Malay</strong> (ms_my)<br /> <strong>Malay</strong> (ms-my)<br />
<strong>Burmese</strong> (my_mm)<br /> <strong>Burmese</strong> (my-mm)<br />
<strong>Bokmal</strong> (nb_no)<br /> <strong>Bokmal</strong> (nb-no)<br />
<strong>Dutch</strong> (nl_nl)<br /> <strong>Dutch</strong> (nl-nl)<br />
<strong>Filipino</strong> (fil_ph)<br /> <strong>Filipino</strong> (fil-ph)<br />
<strong>Polish</strong> (pl_pl)<br /> <strong>Polish</strong> (pl-pl)<br />
<strong>Romanian</strong> (ro_ro)<br /> <strong>Romanian</strong> (ro-ro)<br />
<strong>Ukrainian</strong> (uk_ua)<br /> <strong>Ukrainian</strong> (uk-ua)<br />
<strong>Sinhala</strong> (si_lk)<br /> <strong>Sinhala</strong> (si-lk)<br />
<strong>Slovak</strong> (sk_sk)<br /> <strong>Slovak</strong> (sk-sk)<br />
<strong>Slovenian</strong> (sl_sl)<br /> <strong>Slovenian</strong> (sl-sl)<br />
<strong>Albanian</strong> (sq_al)<br /> <strong>Albanian</strong> (sq-al)<br />
<strong>Bosnian</strong> (bs_ba)<br /> <strong>Bosnian</strong> (bs-ba)<br />
<strong>Serbian</strong> (sr_rs)<br /> <strong>Serbian</strong> (sr-rs)<br />
<strong>Swedish</strong> (sv_se)<br /> <strong>Swedish</strong> (sv-se)<br />
<strong>Arabic</strong> (ar_001)</p> <strong>Arabic</strong> (ar-001)</p>

File diff suppressed because one or more lines are too long

View file

@ -2,247 +2,247 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url> <url>
<loc>https://quad.qwreey.kr/kr/</loc> <loc>https://quad.qwreey.kr/kr/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/changelogs/</loc> <loc>https://quad.qwreey.kr/kr/changelogs/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/gallery/</loc> <loc>https://quad.qwreey.kr/kr/gallery/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/license/</loc> <loc>https://quad.qwreey.kr/kr/license/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/todo/</loc> <loc>https://quad.qwreey.kr/kr/todo/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/include/bindable/</loc> <loc>https://quad.qwreey.kr/kr/include/bindable/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/include/connection/</loc> <loc>https://quad.qwreey.kr/kr/include/connection/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/include/directions/</loc> <loc>https://quad.qwreey.kr/kr/include/directions/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/include/disconnecter/</loc> <loc>https://quad.qwreey.kr/kr/include/disconnecter/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/include/easings/</loc> <loc>https://quad.qwreey.kr/kr/include/easings/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/include/events/</loc> <loc>https://quad.qwreey.kr/kr/include/events/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/include/extend/</loc> <loc>https://quad.qwreey.kr/kr/include/extend/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/include/locales/</loc> <loc>https://quad.qwreey.kr/kr/include/locales/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/include/mounts/</loc> <loc>https://quad.qwreey.kr/kr/include/mounts/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/include/objectList/</loc> <loc>https://quad.qwreey.kr/kr/include/objectList/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/include/quad/</loc> <loc>https://quad.qwreey.kr/kr/include/quad/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/include/quadProperty/</loc> <loc>https://quad.qwreey.kr/kr/include/quadProperty/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/include/register/</loc> <loc>https://quad.qwreey.kr/kr/include/register/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/include/tween/</loc> <loc>https://quad.qwreey.kr/kr/include/tween/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/include/tweenOptions/</loc> <loc>https://quad.qwreey.kr/kr/include/tweenOptions/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/include/typeDirections/</loc> <loc>https://quad.qwreey.kr/kr/include/typeDirections/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/include/typeEasings/</loc> <loc>https://quad.qwreey.kr/kr/include/typeEasings/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/reference/</loc> <loc>https://quad.qwreey.kr/kr/reference/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/reference/event/</loc> <loc>https://quad.qwreey.kr/kr/reference/event/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/reference/extend/</loc> <loc>https://quad.qwreey.kr/kr/reference/extend/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/reference/lang/</loc> <loc>https://quad.qwreey.kr/kr/reference/lang/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/reference/mounts/</loc> <loc>https://quad.qwreey.kr/kr/reference/mounts/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/reference/quadProperty/</loc> <loc>https://quad.qwreey.kr/kr/reference/quadProperty/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/reference/signal/</loc> <loc>https://quad.qwreey.kr/kr/reference/signal/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/reference/signal/bindable/</loc> <loc>https://quad.qwreey.kr/kr/reference/signal/bindable/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/reference/signal/disconnecter/</loc> <loc>https://quad.qwreey.kr/kr/reference/signal/disconnecter/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/reference/store/</loc> <loc>https://quad.qwreey.kr/kr/reference/store/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/reference/store/objectList/</loc> <loc>https://quad.qwreey.kr/kr/reference/store/objectList/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/reference/tween/</loc> <loc>https://quad.qwreey.kr/kr/reference/tween/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/reference/tween/directions/</loc> <loc>https://quad.qwreey.kr/kr/reference/tween/directions/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/reference/tween/easings/</loc> <loc>https://quad.qwreey.kr/kr/reference/tween/easings/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/reference/tween/tweenOptions/</loc> <loc>https://quad.qwreey.kr/kr/reference/tween/tweenOptions/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/tutorial/</loc> <loc>https://quad.qwreey.kr/kr/tutorial/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/tutorial/10_signal/</loc> <loc>https://quad.qwreey.kr/kr/tutorial/10_signal/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/tutorial/11_extend/</loc> <loc>https://quad.qwreey.kr/kr/tutorial/11_extend/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/tutorial/1_import/</loc> <loc>https://quad.qwreey.kr/kr/tutorial/1_import/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/tutorial/2_mount/</loc> <loc>https://quad.qwreey.kr/kr/tutorial/2_mount/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/tutorial/3_getObject/</loc> <loc>https://quad.qwreey.kr/kr/tutorial/3_getObject/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/tutorial/4_style/</loc> <loc>https://quad.qwreey.kr/kr/tutorial/4_style/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/tutorial/5_event/</loc> <loc>https://quad.qwreey.kr/kr/tutorial/5_event/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/tutorial/6_tween/</loc> <loc>https://quad.qwreey.kr/kr/tutorial/6_tween/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/tutorial/7_quadProperty/</loc> <loc>https://quad.qwreey.kr/kr/tutorial/7_quadProperty/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/tutorial/8_register/</loc> <loc>https://quad.qwreey.kr/kr/tutorial/8_register/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/tutorial/9_lang/</loc> <loc>https://quad.qwreey.kr/kr/tutorial/9_lang/</loc>
<lastmod>2023-02-22</lastmod> <lastmod>2023-02-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
</urlset> </urlset>

Binary file not shown.

View file

@ -1182,7 +1182,9 @@
<span class="normal">40</span> <span class="normal">40</span>
<span class="normal">41</span> <span class="normal">41</span>
<span class="normal">42</span> <span class="normal">42</span>
<span class="normal">43</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">local</span> <span class="n">ScreenGUI</span> <span class="o">=</span> <span class="n">script</span><span class="p">.</span><span class="n">Parent</span> <span class="normal">43</span>
<span class="normal">44</span>
<span class="normal">45</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">local</span> <span class="n">ScreenGUI</span> <span class="o">=</span> <span class="n">script</span><span class="p">.</span><span class="n">Parent</span>
<span class="kd">local</span> <span class="n">Quad</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="n">path</span><span class="p">.</span><span class="n">to</span><span class="p">.</span><span class="n">module</span><span class="p">).</span><span class="n">Init</span><span class="p">()</span> <span class="kd">local</span> <span class="n">Quad</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="n">path</span><span class="p">.</span><span class="n">to</span><span class="p">.</span><span class="n">module</span><span class="p">).</span><span class="n">Init</span><span class="p">()</span>
<span class="kd">local</span> <span class="n">Mount</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Mount</span> <span class="kd">local</span> <span class="n">Mount</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Mount</span>
<span class="kd">local</span> <span class="n">Class</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Class</span> <span class="kd">local</span> <span class="n">Class</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Class</span>
@ -1199,6 +1201,8 @@
<span class="c1">-- 일반 오브젝트와 똑같이 id 를 넣고 GetObject 로</span> <span class="c1">-- 일반 오브젝트와 똑같이 id 를 넣고 GetObject 로</span>
<span class="c1">-- 가져올 수도 있습니다</span> <span class="c1">-- 가져올 수도 있습니다</span>
<span class="kd">local</span> <span class="n">main</span> <span class="o">=</span> <span class="n">myClass</span> <span class="s2">&quot;main&quot;</span> <span class="p">{</span> <span class="kd">local</span> <span class="n">main</span> <span class="o">=</span> <span class="n">myClass</span> <span class="s2">&quot;main&quot;</span> <span class="p">{</span>
<span class="c1">-- 이 테이블은 모듈의 :Init(props) 에 제공됩니다.</span>
<span class="c1">-- :Render(props) 에도 이 테이블이 제공됩니다.</span>
<span class="n">Testing</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">Testing</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
<span class="n">Text</span> <span class="o">=</span> <span class="s2">&quot;Test&quot;</span><span class="p">;</span> <span class="n">Text</span> <span class="o">=</span> <span class="s2">&quot;Test&quot;</span><span class="p">;</span>
<span class="c1">-- 레지스터 값을 넘겨줄 수도 있습니다.</span> <span class="c1">-- 레지스터 값을 넘겨줄 수도 있습니다.</span>
@ -1860,7 +1864,7 @@
<span class="kd">local</span> <span class="n">Mount</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Mount</span> <span class="kd">local</span> <span class="n">Mount</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Mount</span>
<span class="kd">local</span> <span class="n">Evnet</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Event</span> <span class="kd">local</span> <span class="n">Evnet</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Event</span>
<span class="kd">local</span> <span class="n">TextBox</span> <span class="o">=</span> <span class="n">Class</span> <span class="s2">&quot;TextButton&quot;</span> <span class="kd">local</span> <span class="n">TextButton</span> <span class="o">=</span> <span class="n">Class</span> <span class="s2">&quot;TextButton&quot;</span>
<span class="kd">local</span> <span class="n">myClass</span> <span class="o">=</span> <span class="n">Class</span><span class="p">.</span><span class="n">Extend</span><span class="p">()</span> <span class="kd">local</span> <span class="n">myClass</span> <span class="o">=</span> <span class="n">Class</span><span class="p">.</span><span class="n">Extend</span><span class="p">()</span>
<span class="kr">function</span> <span class="nc">myClass</span><span class="p">:</span><span class="nf">Render</span><span class="p">(</span><span class="n">props</span><span class="p">)</span> <span class="kr">function</span> <span class="nc">myClass</span><span class="p">:</span><span class="nf">Render</span><span class="p">(</span><span class="n">props</span><span class="p">)</span>
@ -1888,6 +1892,128 @@
<span class="n">Mount</span><span class="p">(</span><span class="n">ScreenGUI</span><span class="p">,</span> <span class="n">myButton</span><span class="p">)</span> <span class="n">Mount</span><span class="p">(</span><span class="n">ScreenGUI</span><span class="p">,</span> <span class="n">myButton</span><span class="p">)</span>
</code></pre></div></td></tr></table></div></p> </code></pre></div></td></tr></table></div></p>
</blockquote> </blockquote>
<hr />
<p><mark>Event</mark> <code class="highlight"><span class="nx">.ChildAdded</span><span class="o">:</span><span class="kt">Connect</span><span class="p">((</span><span class="nx">child</span><span class="p">)</span><span class="o">-&gt;</span><span class="p">())</span><span class="o">-&gt;</span><span class="nx">Connection</span></code> </p>
<blockquote>
<p>자식 오브젝트가 추가될 때 발생하는 이벤트입니다. <code class="highlight"><span class="o">:</span><span class="nx">Init</span></code> 에서 사용하면 옵션으로 넣은 자식 오브젝트가 이 이벤트를 통해 얻어질 수 있으며, <code class="highlight"><span class="o">:</span><span class="nx">AfterRender</span></code> 에서는 추후 <code>Mount</code> 를 통해 추가되는 자식 오브젝트만 이 이벤트로 얻어질 수 있습니다.<br />
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
<span class="normal"> 2</span>
<span class="normal"> 3</span>
<span class="normal"> 4</span>
<span class="normal"> 5</span>
<span class="normal"> 6</span>
<span class="normal"> 7</span>
<span class="normal"> 8</span>
<span class="normal"> 9</span>
<span class="normal">10</span>
<span class="normal">11</span>
<span class="normal">12</span>
<span class="normal">13</span>
<span class="normal">14</span>
<span class="normal">15</span>
<span class="normal">16</span>
<span class="normal">17</span>
<span class="normal">18</span>
<span class="normal">19</span>
<span class="normal">20</span>
<span class="normal">21</span>
<span class="normal">22</span>
<span class="normal">23</span>
<span class="normal">24</span>
<span class="normal">25</span>
<span class="normal">26</span>
<span class="normal">27</span>
<span class="normal">28</span>
<span class="normal">29</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">local</span> <span class="n">Quad</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="n">path</span><span class="p">.</span><span class="n">to</span><span class="p">.</span><span class="n">module</span><span class="p">).</span><span class="n">Init</span><span class="p">()</span>
<span class="kd">local</span> <span class="n">Class</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Class</span>
<span class="kd">local</span> <span class="n">Mount</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Mount</span>
<span class="kd">local</span> <span class="n">Evnet</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Event</span>
<span class="kd">local</span> <span class="n">TextButton</span> <span class="o">=</span> <span class="n">Class</span> <span class="s2">&quot;TextButton&quot;</span>
<span class="kd">local</span> <span class="n">myClass</span> <span class="o">=</span> <span class="n">Class</span><span class="p">.</span><span class="n">Extend</span><span class="p">()</span>
<span class="kr">function</span> <span class="nc">myClass</span><span class="p">:</span><span class="nf">Render</span><span class="p">(</span><span class="n">props</span><span class="p">)</span>
<span class="kr">return</span> <span class="n">TextButton</span> <span class="p">{</span>
<span class="n">self</span> <span class="s2">&quot;_holder&quot;</span><span class="p">;</span>
<span class="p">}</span>
<span class="kr">end</span>
<span class="kr">function</span> <span class="nc">myClass</span><span class="p">:</span><span class="nf">AfterRender</span><span class="p">()</span>
<span class="n">self</span><span class="p">.</span><span class="n">ChildAdded</span><span class="p">:</span><span class="n">Connect</span><span class="p">(</span><span class="kr">function</span><span class="p">(</span><span class="n">child</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">child</span><span class="p">.</span><span class="n">Name</span><span class="p">)</span>
<span class="kr">end</span><span class="p">)</span>
<span class="kr">end</span>
<span class="kd">local</span> <span class="n">myImported</span> <span class="o">=</span> <span class="n">Class</span><span class="p">(</span><span class="n">myClass</span><span class="p">)</span>
<span class="kd">local</span> <span class="n">myButton</span> <span class="o">=</span> <span class="n">myImported</span><span class="p">{</span>
<span class="c1">-- Init 에 ChildAdded 를 넣은것이 아니기 때문에 출력되지 않습니다.</span>
<span class="c1">-- 그러나 AfterRender 에 :GetChildren 을 넣어 이 오브젝트를</span>
<span class="c1">-- 얻어올 수 있습니다.</span>
<span class="n">TextButton</span> <span class="p">{</span> <span class="n">Name</span> <span class="o">=</span> <span class="s2">&quot;Hello &quot;</span><span class="p">};</span>
<span class="p">}</span>
<span class="n">Mount</span><span class="p">(</span><span class="n">myButton</span><span class="p">,</span> <span class="n">TextButton</span><span class="p">{</span> <span class="n">Name</span> <span class="o">=</span> <span class="s2">&quot;Hello&quot;</span> <span class="p">})</span>
<span class="n">Mount</span><span class="p">(</span><span class="n">myButton</span><span class="p">,</span> <span class="n">TextButton</span><span class="p">{</span> <span class="n">Name</span> <span class="o">=</span> <span class="s2">&quot;World&quot;</span> <span class="p">})</span>
</code></pre></div></td></tr></table></div></p>
</blockquote>
<hr />
<p><code class="highlight"><span class="o">:</span><span class="nx">GetChildren</span><span class="p">()</span></code> </p>
<blockquote>
<p>자식 오브젝트들을 가져오는 함수입니다. <code>:Init()</code> 에서는 빈 테이블을 반환하고, <code>AfterRender</code> 에서는 옵션에 들어간 자식 오브젝트들이 담긴 테이블을 반환합니다. 자식의 순서는 일정하지 않습니다.
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
<span class="normal"> 2</span>
<span class="normal"> 3</span>
<span class="normal"> 4</span>
<span class="normal"> 5</span>
<span class="normal"> 6</span>
<span class="normal"> 7</span>
<span class="normal"> 8</span>
<span class="normal"> 9</span>
<span class="normal">10</span>
<span class="normal">11</span>
<span class="normal">12</span>
<span class="normal">13</span>
<span class="normal">14</span>
<span class="normal">15</span>
<span class="normal">16</span>
<span class="normal">17</span>
<span class="normal">18</span>
<span class="normal">19</span>
<span class="normal">20</span>
<span class="normal">21</span>
<span class="normal">22</span>
<span class="normal">23</span>
<span class="normal">24</span>
<span class="normal">25</span>
<span class="normal">26</span>
<span class="normal">27</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">local</span> <span class="n">Quad</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="n">path</span><span class="p">.</span><span class="n">to</span><span class="p">.</span><span class="n">module</span><span class="p">).</span><span class="n">Init</span><span class="p">()</span>
<span class="kd">local</span> <span class="n">Class</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Class</span>
<span class="kd">local</span> <span class="n">Mount</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Mount</span>
<span class="kd">local</span> <span class="n">Evnet</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Event</span>
<span class="kd">local</span> <span class="n">TextButton</span> <span class="o">=</span> <span class="n">Class</span> <span class="s2">&quot;TextButton&quot;</span>
<span class="kd">local</span> <span class="n">myClass</span> <span class="o">=</span> <span class="n">Class</span><span class="p">.</span><span class="n">Extend</span><span class="p">()</span>
<span class="kr">function</span> <span class="nc">myClass</span><span class="p">:</span><span class="nf">Render</span><span class="p">(</span><span class="n">props</span><span class="p">)</span>
<span class="kr">return</span> <span class="n">TextButton</span> <span class="p">{</span>
<span class="n">self</span> <span class="s2">&quot;_holder&quot;</span><span class="p">;</span>
<span class="p">}</span>
<span class="kr">end</span>
<span class="kr">function</span> <span class="nc">myClass</span><span class="p">:</span><span class="nf">AfterRender</span><span class="p">()</span>
<span class="kr">for</span> <span class="n">i</span><span class="p">,</span><span class="n">v</span> <span class="kr">in</span> <span class="nb">ipairs</span><span class="p">(</span><span class="n">self</span><span class="p">:</span><span class="n">GetChildren</span><span class="p">())</span> <span class="kr">do</span>
<span class="nb">print</span><span class="p">(</span><span class="n">v</span><span class="p">.</span><span class="n">Name</span><span class="p">)</span>
<span class="kr">end</span>
<span class="kr">end</span>
<span class="kd">local</span> <span class="n">myImported</span> <span class="o">=</span> <span class="n">Class</span><span class="p">(</span><span class="n">myClass</span><span class="p">)</span>
<span class="kd">local</span> <span class="n">myButton</span> <span class="o">=</span> <span class="n">myImported</span><span class="p">{</span>
<span class="n">TextButton</span> <span class="p">{</span> <span class="n">Name</span> <span class="o">=</span> <span class="s2">&quot;Hello World&quot;</span><span class="p">};</span>
<span class="p">}</span>
<span class="c1">-- 나중에 추가하는 오브젝트는 출력되지 않습니다.</span>
<span class="n">Mount</span><span class="p">(</span><span class="n">myButton</span><span class="p">,</span> <span class="n">TextButton</span><span class="p">{</span> <span class="n">Name</span> <span class="o">=</span> <span class="s2">&quot;Hello&quot;</span> <span class="p">})</span>
<span class="n">Mount</span><span class="p">(</span><span class="n">myButton</span><span class="p">,</span> <span class="n">TextButton</span><span class="p">{</span> <span class="n">Name</span> <span class="o">=</span> <span class="s2">&quot;World&quot;</span> <span class="p">})</span>
</code></pre></div></td></tr></table></div></p>
</blockquote>

View file

@ -1127,12 +1127,20 @@
</code></pre></div></td></tr></table></div> </code></pre></div></td></tr></table></div>
<details class="warning" open="open"> <details class="warning" open="open">
<summary>주의</summary> <summary>주의</summary>
<p>구현의 복잡성의 이유로 레지스터는 오브젝트 생성시에만 등록할 수 있습니다. <p>구현의 복잡성의 이유로 레지스터는 오브젝트 생성시에만 등록할 수 있습니다.</p>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span> <p><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
<span class="normal">2</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">local</span> <span class="n">myFrame</span> <span class="o">=</span> <span class="n">Frame</span><span class="p">{}</span> <span class="normal">2</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">local</span> <span class="n">myFrame</span> <span class="o">=</span> <span class="n">Frame</span><span class="p">{}</span>
<span class="n">Frame</span><span class="p">.</span><span class="n">BackgroundColor3</span> <span class="o">=</span> <span class="n">myStore</span> <span class="s2">&quot;color&quot;</span> <span class="n">Frame</span><span class="p">.</span><span class="n">BackgroundColor3</span> <span class="o">=</span> <span class="n">myStore</span> <span class="s2">&quot;color&quot;</span>
</code></pre></div></td></tr></table></div> </code></pre></div></td></tr></table></div>
위처럼 사용할 수 없습니다.</p> 위처럼 사용할 수 없습니다.</p>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">local</span> <span class="n">myFrame</span> <span class="o">=</span> <span class="n">Frame</span><span class="p">{}</span>
<span class="n">Apply</span> <span class="p">(</span><span class="n">myFrame</span><span class="p">)</span> <span class="p">{</span>
<span class="n">BackgroundColor3</span> <span class="o">=</span> <span class="n">myStore</span> <span class="s2">&quot;color&quot;</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></td></tr></table></div>
</details> </details>
<blockquote> <blockquote>
<ol> <ol>

View file

@ -1106,7 +1106,8 @@
<h2 id="_1">언어관리<a class="headerlink" href="#_1" title="Permanent link">&para;</a></h2> <h2 id="_1">언어관리<a class="headerlink" href="#_1" title="Permanent link">&para;</a></h2>
<p>Quad 에는 귀찮은 언어관리를 자동으로 해주는 기능이 내장되어 있습니다. 이 기능은 register 와 연동해 적은 줄의 코드로 변하는 텍스트도 언어에 맞게 출력되도록 만들 수 있습니다. </p> <p>Quad 에는 귀찮은 언어관리를 자동으로 해주는 기능이 내장되어 있습니다. 이 기능은 register 와 연동해 적은 줄의 코드로 변하는 텍스트도 언어에 맞게 출력되도록 만들 수 있습니다. </p>
<p>번역 테이블은 <code class="highlight"><span class="nx">Lang</span><span class="p">.</span><span class="nx">New</span><span class="p">(</span><span class="nx">LangName</span><span class="o">:</span><span class="kt">string</span><span class="p">,{</span><span class="w"> </span><span class="p">[</span><span class="nx">Locale</span><span class="p">]</span><span class="o">:</span><span class="w"> </span><span class="kt">string</span><span class="o">|</span><span class="p">(</span><span class="nx">options</span><span class="p">)</span><span class="o">-&gt;</span><span class="kt">string</span><span class="w"> </span><span class="p">})</span></code> 다음을 이용해 만들 수 있으며.<br /> <p>번역 테이블은 <code class="highlight"><span class="nx">Lang</span><span class="p">.</span><span class="nx">New</span><span class="p">(</span><span class="nx">LangName</span><span class="o">:</span><span class="kt">string</span><span class="p">,{</span><span class="w"> </span><span class="p">[</span><span class="nx">Locale</span><span class="p">]</span><span class="o">:</span><span class="w"> </span><span class="kt">string</span><span class="o">|</span><span class="p">(</span><span class="nx">options</span><span class="p">)</span><span class="o">-&gt;</span><span class="kt">string</span><span class="w"> </span><span class="p">})</span></code> 다음을 이용해 만들 수 있으며.<br />
<code>Lang(LangName:string)(options)</code> 로 UI 에 적용시킬 수 있습니다. </p> <code class="highlight"><span class="nx">Lang</span><span class="p">(</span><span class="nx">LangName</span><span class="o">:</span><span class="kt">string</span><span class="p">)(</span><span class="nx">options</span><span class="p">)</span><span class="o">-&gt;</span><span class="nx">register</span></code> 로 UI 에 적용시킬 수 있습니다. </p>
<p><code class="highlight"><span class="nx">Lang</span><span class="p">.</span><span class="nx">Locales</span><span class="p">.</span><span class="nx">Default</span></code> 는 일치하는 언어가 없을때 보여줄 언어입니다. 일반적으로 영어를 추천합니다. </p>
<div class="tabbed-set tabbed-alternate" data-tabs="1:2"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><input id="__tabbed_1_2" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="__tabbed_1_1">용법</label><label for="__tabbed_1_2">예제 - 다중언어 카운터</label></div> <div class="tabbed-set tabbed-alternate" data-tabs="1:2"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><input id="__tabbed_1_2" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="__tabbed_1_1">용법</label><label for="__tabbed_1_2">예제 - 다중언어 카운터</label></div>
<div class="tabbed-content"> <div class="tabbed-content">
<div class="tabbed-block"> <div class="tabbed-block">
@ -1223,57 +1224,79 @@
</div> </div>
</div> </div>
</div> </div>
<details class="warning" open="open">
<summary>주의</summary>
<p>구현의 복잡성의 이유로 Lang 은 레지스터와 같은 제약을 가집니다 (오브젝트 생성시에만 등록할 수 있습니다)</p>
<p><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">local</span> <span class="n">myLabel</span> <span class="o">=</span> <span class="n">TextLabel</span><span class="p">{}</span>
<span class="n">Lang</span><span class="p">.</span><span class="n">new</span><span class="p">(</span><span class="s2">&quot;Test&quot;</span><span class="p">,{</span> <span class="p">[</span><span class="n">Lang</span><span class="p">.</span><span class="n">Locales</span><span class="p">.</span><span class="n">Default</span><span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;{lang}&quot;</span> <span class="p">})</span>
<span class="n">myLabel</span><span class="p">.</span><span class="n">Text</span> <span class="o">=</span> <span class="n">Lang</span> <span class="s2">&quot;Test&quot;</span> <span class="p">{</span> <span class="n">lang</span> <span class="o">=</span> <span class="mi">1</span> <span class="p">}</span>
</code></pre></div></td></tr></table></div>
위처럼 사용할 수 없습니다.</p>
<p>대신에 <code class="highlight"><span class="o">:</span><span class="nx">Register</span></code> 문법을 사용하여 등록할 수 있습니다.</p>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">local</span> <span class="n">myLabel</span> <span class="o">=</span> <span class="n">TextLabel</span><span class="p">{}</span>
<span class="n">Lang</span><span class="p">.</span><span class="n">new</span><span class="p">(</span><span class="s2">&quot;Test&quot;</span><span class="p">,{</span> <span class="p">[</span><span class="n">Lang</span><span class="p">.</span><span class="n">Locales</span><span class="p">.</span><span class="n">Default</span><span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;{lang}&quot;</span> <span class="p">})</span>
<span class="n">Apply</span> <span class="p">(</span><span class="n">myLabel</span><span class="p">)</span> <span class="p">{</span>
<span class="n">Text</span> <span class="o">=</span> <span class="n">Lang</span> <span class="s2">&quot;Test&quot;</span> <span class="p">{</span> <span class="n">lang</span> <span class="o">=</span> <span class="mi">1</span> <span class="p">};</span>
<span class="p">}</span>
</code></pre></div></td></tr></table></div>
</details>
<hr /> <hr />
<h2 id="locale">Locale 목록<a class="headerlink" href="#locale" title="Permanent link">&para;</a></h2> <h2 id="locale">Locale 목록<a class="headerlink" href="#locale" title="Permanent link">&para;</a></h2>
<p>로케일 값들은 <code class="highlight"><span class="nx">Lang</span><span class="p">.</span><span class="nx">Locales</span></code>에서 가져올 수 있으며, 사용가능한 로케일 목록은 다음과 같습니다. </p> <p>로케일 값들은 <code class="highlight"><span class="nx">Lang</span><span class="p">.</span><span class="nx">Locales</span></code>에서 가져올 수 있으며, 사용가능한 로케일 목록은 다음과 같습니다. </p>
<blockquote> <blockquote>
<p><strong>Default</strong> (default)<br /> <p><strong>Default</strong> (default)<br />
<strong>English</strong> (en_us)<br /> <strong>English</strong> (en-us)<br />
<strong>Spanish</strong> (es_es)<br /> <strong>Spanish</strong> (es-es)<br />
<strong>French</strong> (fr_fr)<br /> <strong>French</strong> (fr-fr)<br />
<strong>Indonesian</strong> (id_id)<br /> <strong>Indonesian</strong> (id-id)<br />
<strong>Italian</strong> (it_it)<br /> <strong>Italian</strong> (it-it)<br />
<strong>Japanese</strong> (ja_jp)<br /> <strong>Japanese</strong> (ja-jp)<br />
<strong>Korean</strong> (ko_kr)<br /> <strong>Korean</strong> (ko-kr)<br />
<strong>Russian</strong> (ru_ru)<br /> <strong>Russian</strong> (ru-ru)<br />
<strong>Thai</strong> (th_th)<br /> <strong>Thai</strong> (th-th)<br />
<strong>Turkish</strong> (tr_tr)<br /> <strong>Turkish</strong> (tr-tr)<br />
<strong>Vietnamese</strong> (vi_vn)<br /> <strong>Vietnamese</strong> (vi-vn)<br />
<strong>Portuguese</strong> (pt_br)<br /> <strong>Portuguese</strong> (pt-br)<br />
<strong>German</strong> (de_de)<br /> <strong>German</strong> (de-de)<br />
<strong>ChineseSimplified</strong> (zh_cn)<br /> <strong>ChineseSimplified</strong> (zh-cn)<br />
<strong>ChineseTraditional</strong> (zh_tw)<br /> <strong>ChineseTraditional</strong> (zh-tw)<br />
<strong>Bulgarian</strong> (bg_bg)<br /> <strong>Bulgarian</strong> (bg-bg)<br />
<strong>Bengali</strong> (bn_bd)<br /> <strong>Bengali</strong> (bn-bd)<br />
<strong>Czech</strong> (cs_cz)<br /> <strong>Czech</strong> (cs-cz)<br />
<strong>Danish</strong> (da_dk)<br /> <strong>Danish</strong> (da-dk)<br />
<strong>Greek</strong> (el_gr)<br /> <strong>Greek</strong> (el-gr)<br />
<strong>Estonian</strong> (et_ee)<br /> <strong>Estonian</strong> (et-ee)<br />
<strong>Finnish</strong> (fi_fi)<br /> <strong>Finnish</strong> (fi-fi)<br />
<strong>Hindi</strong> (hi_in)<br /> <strong>Hindi</strong> (hi-in)<br />
<strong>Croatian</strong> (hr_hr)<br /> <strong>Croatian</strong> (hr-hr)<br />
<strong>Hungarian</strong> (hu_hu)<br /> <strong>Hungarian</strong> (hu-hu)<br />
<strong>Georgian</strong> (ka_ge)<br /> <strong>Georgian</strong> (ka-ge)<br />
<strong>Kazakh</strong> (kk_kz)<br /> <strong>Kazakh</strong> (kk-kz)<br />
<strong>Khmer</strong> (km_kh)<br /> <strong>Khmer</strong> (km-kh)<br />
<strong>Lithuanian</strong> (lt_lt)<br /> <strong>Lithuanian</strong> (lt-lt)<br />
<strong>Latvian</strong> (lv_lv)<br /> <strong>Latvian</strong> (lv-lv)<br />
<strong>Malay</strong> (ms_my)<br /> <strong>Malay</strong> (ms-my)<br />
<strong>Burmese</strong> (my_mm)<br /> <strong>Burmese</strong> (my-mm)<br />
<strong>Bokmal</strong> (nb_no)<br /> <strong>Bokmal</strong> (nb-no)<br />
<strong>Dutch</strong> (nl_nl)<br /> <strong>Dutch</strong> (nl-nl)<br />
<strong>Filipino</strong> (fil_ph)<br /> <strong>Filipino</strong> (fil-ph)<br />
<strong>Polish</strong> (pl_pl)<br /> <strong>Polish</strong> (pl-pl)<br />
<strong>Romanian</strong> (ro_ro)<br /> <strong>Romanian</strong> (ro-ro)<br />
<strong>Ukrainian</strong> (uk_ua)<br /> <strong>Ukrainian</strong> (uk-ua)<br />
<strong>Sinhala</strong> (si_lk)<br /> <strong>Sinhala</strong> (si-lk)<br />
<strong>Slovak</strong> (sk_sk)<br /> <strong>Slovak</strong> (sk-sk)<br />
<strong>Slovenian</strong> (sl_sl)<br /> <strong>Slovenian</strong> (sl-sl)<br />
<strong>Albanian</strong> (sq_al)<br /> <strong>Albanian</strong> (sq-al)<br />
<strong>Bosnian</strong> (bs_ba)<br /> <strong>Bosnian</strong> (bs-ba)<br />
<strong>Serbian</strong> (sr_rs)<br /> <strong>Serbian</strong> (sr-rs)<br />
<strong>Swedish</strong> (sv_se)<br /> <strong>Swedish</strong> (sv-se)<br />
<strong>Arabic</strong> (ar_001)</p> <strong>Arabic</strong> (ar-001)</p>
</blockquote> </blockquote>

View file

@ -1,6 +1,9 @@
# 버전 번경사항 # 버전 번경사항
## 2.25
실험적 API 로써 GetChildren() 과 ChildAdded::Bindable 이 추가되었습니다.
## 2.24 ## 2.24
모든 문서가 정리되었습니다. 모든 문서가 정리되었습니다.

View file

@ -263,7 +263,7 @@ local Class = Quad.Class
local Mount = Quad.Mount local Mount = Quad.Mount
local Evnet = Quad.Event local Evnet = Quad.Event
local TextBox = Class "TextButton" local TextButton = Class "TextButton"
local myClass = Class.Extend() local myClass = Class.Extend()
function myClass:Render(props) function myClass:Render(props)
@ -291,3 +291,80 @@ end)
Mount(ScreenGUI, myButton) Mount(ScreenGUI, myButton)
``` ```
</blockquote> </blockquote>
---
==Event== `#!ts .ChildAdded:Connect((child)->())->Connection`
<blockquote markdown>
자식 오브젝트가 추가될 때 발생하는 이벤트입니다. `#!ts :Init` 에서 사용하면 옵션으로 넣은 자식 오브젝트가 이 이벤트를 통해 얻어질 수 있으며, `#!ts :AfterRender` 에서는 추후 `Mount` 를 통해 추가되는 자식 오브젝트만 이 이벤트로 얻어질 수 있습니다.
```lua
local Quad = require(path.to.module).Init()
local Class = Quad.Class
local Mount = Quad.Mount
local Evnet = Quad.Event
local TextButton = Class "TextButton"
local myClass = Class.Extend()
function myClass:Render(props)
return TextButton {
self "_holder";
}
end
function myClass:AfterRender()
self.ChildAdded:Connect(function(child)
print(child.Name)
end)
end
local myImported = Class(myClass)
local myButton = myImported{
-- Init 에 ChildAdded 를 넣은것이 아니기 때문에 출력되지 않습니다.
-- 그러나 AfterRender 에 :GetChildren 을 넣어 이 오브젝트를
-- 얻어올 수 있습니다.
TextButton { Name = "Hello "};
}
Mount(myButton, TextButton{ Name = "Hello" })
Mount(myButton, TextButton{ Name = "World" })
```
</blockquote>
---
`#!ts :GetChildren()`
<blockquote markdown>
자식 오브젝트들을 가져오는 함수입니다. `:Init()` 에서는 빈 테이블을 반환하고, `AfterRender` 에서는 옵션에 들어간 자식 오브젝트들이 담긴 테이블을 반환합니다. 자식의 순서는 일정하지 않습니다.
```lua
local Quad = require(path.to.module).Init()
local Class = Quad.Class
local Mount = Quad.Mount
local Evnet = Quad.Event
local TextButton = Class "TextButton"
local myClass = Class.Extend()
function myClass:Render(props)
return TextButton {
self "_holder";
}
end
function myClass:AfterRender()
for i,v in ipairs(self:GetChildren()) do
print(v.Name)
end
end
local myImported = Class(myClass)
local myButton = myImported{
TextButton { Name = "Hello World"};
}
-- 나중에 추가하는 오브젝트는 출력되지 않습니다.
Mount(myButton, TextButton{ Name = "Hello" })
Mount(myButton, TextButton{ Name = "World" })
```
</blockquote>

View file

@ -356,6 +356,7 @@ function module.init(shared)
__prop = prop; __prop = prop;
__parent = parent; __parent = parent;
__propertyChangedSignals = {}; __propertyChangedSignals = {};
ChildAdded = signal.Bindable.New();
} }
local init = this.Init local init = this.Init
if init then if init then
@ -407,6 +408,18 @@ function module.init(shared)
thisSignal:Fire(value) thisSignal:Fire(value)
end end
function this:GetChildren()
local children = rawget(self,"__child")
if not children then
return {}
end
local newChildren = {}
for _,v in pairs(children) do
insert(newChildren,v)
end
return newChildren
end
--- re-render object (if some props chaged, call this to render again) --- re-render object (if some props chaged, call this to render again)
function this:Update() -- swap object function this:Update() -- swap object
local object = rawget(self,"__object") -- get last instance local object = rawget(self,"__object") -- get last instance
@ -541,8 +554,43 @@ function module.init(shared)
return this return this
end end
local function ApplyNewProps(Item,Props) local function ApplyNewProps(Item,NewProps)
local quadType = PcallGetProperty(Item, "__type")
if quadType == "quad_extend" then
local prop = Item.__prop
local propKeep = prop.__keep
local propTweens = prop.__tweens
local propValues = prop.__self
for index,value in pairs(NewProps) do
-- if new value is register
if PcallGetProperty(value,"__type") == "quad_register" then
-- remove old register
for keepIndex,keepValue in pairs(propKeep) do
if type(keepValue) == "table" and PcallGetProperty(keepValue,"key") == index then
keepValue.register:Unregister(keepValue.func)
propKeep[keepIndex] = nil
end
end
-- calc value
do
local setValue,tween = value:CalcWithDefault(Item)
propValues[index] = setValue
propTweens[index] = tween
end
-- make event connection
local function regFn(_,newValue,eventKey)
-- !HOLD IT SELF TO PREVENT THIS REGISTER BEGIN REMOVED FROM MEMORY
local setValue = value:CalcWithNewValue(Item,newValue,eventKey)
prop[index] = setValue
end
value:Register(regFn)
insert(propKeep,{func=regFn,register=value,key=index})
end
end
end
end end
local function Apply(Item) local function Apply(Item)
return function (Props) return function (Props)

View file

@ -21,7 +21,7 @@ local round = require "libs.round"
local customWarn = require "libs.customWarn" local customWarn = require "libs.customWarn"
local IS_TEST = false local IS_TEST = false
local VER = "2.24" .. (IS_TEST and "B" or "") local VER = "2.25" .. (IS_TEST and "B" or "")
if IS_TEST then if IS_TEST then
warn("You are using BETA version of quad now. Many features may change in the future and unstable. AS USING BETA VERSION OF QUAD, YOU SHOULD KNOW IT WILL BUGGY SOMETIME. still on development - you can ignore this message if have no issue. if you have issue on using quad, please report issue on github. VERSION: "..VER) warn("You are using BETA version of quad now. Many features may change in the future and unstable. AS USING BETA VERSION OF QUAD, YOU SHOULD KNOW IT WILL BUGGY SOMETIME. still on development - you can ignore this message if have no issue. if you have issue on using quad, please report issue on github. VERSION: "..VER)
end end

View file

@ -5,7 +5,7 @@ local pack = table.pack
---@param shared quad_export ---@param shared quad_export
---@return quad_module_mount ---@return quad_module_mount
function module.init(shared) function module.init(shared)
local warn = shared.warn local PcallGetProperty = shared.Store.PcallGetProperty
---@class quad_module_mount ---@class quad_module_mount
local new = {__type = "quad_module_mount"} local new = {__type = "quad_module_mount"}
@ -75,6 +75,12 @@ function module.init(shared)
rawset(to,"__child",child) rawset(to,"__child",child)
end end
insert(child,this) insert(child,this)
-- ChildAdded call
local childAdded = rawget(to,"ChildAdded")
if childAdded and PcallGetProperty(childAdded,"__type") == "quad_bindable" then
childAdded:Fire(this)
end
end end
if noReturn then return end if noReturn then return end
return setmetatable({to = to,this = this},mountClass) return setmetatable({to = to,this = this},mountClass)

View file

@ -52,7 +52,7 @@ function module.init(shared)
end end
new.Disconnecter = disconnecterClass new.Disconnecter = disconnecterClass
local connection = {} local connection = {__type = "quad_connection"}
connection.__index = connection connection.__index = connection
function connection.New(signal,func) function connection.New(signal,func)
return setmetatable({signal = signal,func = func},connection) return setmetatable({signal = signal,func = func},connection)
@ -85,7 +85,7 @@ function module.init(shared)
new.Connection = connection new.Connection = connection
local signals = {} local signals = {}
local signal = {} local signal = {__type = "quad_bindable"}
signal.__index = signal signal.__index = signal
function signal:Fire(...) function signal:Fire(...)
local waitting = self.waitting local waitting = self.waitting

View file

@ -191,6 +191,21 @@ function module.init(shared)
local registerClass = { local registerClass = {
__type = "quad_register"; __type = "quad_register";
Unregister = function(s,efunc)
local self = s.store
local events = self.__evt
for key in gmatch(s.key,"[^,]+") do
key = gsub(gsub(key,"^ +","")," +$","")
local event = events[key]
if event then
for i,v in pairs(event) do
if efunc == v then
event[i] = nil
end
end
end
end
end;
Register = function (s,efunc) Register = function (s,efunc)
local self = s.store local self = s.store
local events = self.__evt local events = self.__evt
@ -348,14 +363,14 @@ function module.init(shared)
for key,item in pairs(selfValues) do for key,item in pairs(selfValues) do
if type(item) == "table" and item.__type == "quad_register" then if type(item) == "table" and item.__type == "quad_register" then
-- fetch data from origin -- fetch data from origin
do -- do
local tstore = item.store -- local tstore = item.store
for tkey in item.key:gmatch("^[,]") do -- for tkey in item.key:gmatch("^[,]") do
if not selfValues[tkey] then -- if not selfValues[tkey] then
selfValues[tkey] = tstore[tkey] -- selfValues[tkey] = tstore[tkey]
end -- end
end -- end
end -- end
-- calc value -- calc value
do do
@ -391,7 +406,7 @@ function module.init(shared)
end end
if func then if func then
register.Register(func) register:Register(func)
end end
return register return register
end end

View file

@ -100,7 +100,7 @@ export type ObjectIdList = string
export type module_store = { export type module_store = {
GetObjects: (ids:ObjectIdList)->objectList; GetObjects: (ids:ObjectIdList)->objectList;
GetObject: (id:string)->DOM?; GetObject: (id:string)->DOM?;
AddObject: (ids:ObjectIdList)->(); AddObject: (ids:ObjectIdList,item:Dom|any)->();
GetStore: (id:string?)->valueStore; GetStore: (id:string?)->valueStore;
} & (id:string?)->valueStore } & (id:string?)->valueStore