docs: 한국어 문서 튜토리얼 완성시킴

This commit is contained in:
Qwreey 2023-02-22 00:07:21 +09:00
parent 667c438d8a
commit 16cf39d644
31 changed files with 4210 additions and 136 deletions

View file

@ -0,0 +1,788 @@
<!doctype html>
<html lang="ko" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="description" content="Description for Quad. (Korean)">
<meta name="author" content="Qwreey and more">
<link rel="canonical" href="https://quad.qwreey.kr/kr/include/bindable/">
<link rel="icon" href="../../assets/LUAICON_TP.png">
<meta name="generator" content="mkdocs-1.4.2, mkdocs-material-9.0.13">
<title>Bindable - Quad 한국어 문서</title>
<link rel="stylesheet" href="../../assets/stylesheets/main.ffa9267a.min.css">
<link rel="stylesheet" href="../../assets/stylesheets/palette.a0c5b2b5.min.css">
<link rel="stylesheet" href="../../assets/extra.css">
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head>
<body dir="ltr" data-md-color-scheme="custom" data-md-color-primary="" data-md-color-accent="">
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
</div>
<div data-md-component="announce">
</div>
<header class="md-header" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="../.." title="Quad 한국어 문서" class="md-header__button md-logo" aria-label="Quad 한국어 문서" data-md-component="logo">
<img src="../../assets/LUAICON_DARK.png" alt="logo">
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
Quad 한국어 문서
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
Bindable
</span>
</div>
</div>
</div>
<div class="md-header__option">
<div class="md-select">
<button class="md-header__button md-icon" aria-label="언어설정">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m12.87 15.07-2.54-2.51.03-.03A17.52 17.52 0 0 0 14.07 6H17V4h-7V2H8v2H1v2h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04M18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12m-2.62 7 1.62-4.33L19.12 17h-3.24Z"/></svg>
</button>
<div class="md-select__inner">
<ul class="md-select__list">
<li class="md-select__item">
<a href="/kr/" hreflang="ko" class="md-select__link">
한국어
</a>
</li>
<li class="md-select__item">
<a href="/en/" hreflang="en" class="md-select__link">
English
</a>
</li>
</ul>
</div>
</div>
</div>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="검색" placeholder="검색" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
</label>
<nav class="md-search__options" aria-label="검색">
<button type="reset" class="md-search__icon md-icon" title="지우기" aria-label="지우기" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
</button>
</nav>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
검색 초기화
</div>
<ol class="md-search-result__list" role="presentation"></ol>
</div>
</div>
</div>
</div>
</div>
<div class="md-header__source">
<a href="https://github.com/qwreey75/Quad" title="저장소로 이동" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
</div>
<div class="md-source__repository">
Quad
</div>
</a>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
<div class="md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href="../.." class="md-tabs__link">
</a>
</li>
<li class="md-tabs__item">
<a href="../../tutorial/" class="md-tabs__link">
튜토리얼
</a>
</li>
<li class="md-tabs__item">
<a href="../../reference/" class="md-tabs__link">
레퍼런스
</a>
</li>
</ul>
</div>
</nav>
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../.." title="Quad 한국어 문서" class="md-nav__button md-logo" aria-label="Quad 한국어 문서" data-md-component="logo">
<img src="../../assets/LUAICON_DARK.png" alt="logo">
</a>
Quad 한국어 문서
</label>
<div class="md-nav__source">
<a href="https://github.com/qwreey75/Quad" title="저장소로 이동" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
</div>
<div class="md-source__repository">
Quad
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_1" >
<div class="md-nav__link md-nav__link--index ">
<a href="../.."></a>
<label for="__nav_1">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_1_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_1">
<span class="md-nav__icon md-icon"></span>
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../license/" class="md-nav__link">
라이선스
</a>
</li>
<li class="md-nav__item">
<a href="../../changelogs/" class="md-nav__link">
변경사항
</a>
</li>
<li class="md-nav__item">
<a href="../../gallery/" class="md-nav__link">
갤러리
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
<div class="md-nav__link md-nav__link--index ">
<a href="../../tutorial/">튜토리얼</a>
<label for="__nav_2">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2">
<span class="md-nav__icon md-icon"></span>
튜토리얼
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../tutorial/1_import/" class="md-nav__link">
Import
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/2_mount/" class="md-nav__link">
Mount
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/3_getObject/" class="md-nav__link">
GetObject
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/4_style/" class="md-nav__link">
Style
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/5_event/" class="md-nav__link">
Event
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/6_tween/" class="md-nav__link">
Tween
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/7_quadProperty/" class="md-nav__link">
QuadProperty
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/8_register/" class="md-nav__link">
Register
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/9_lang/" class="md-nav__link">
Lang
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/10_signal/" class="md-nav__link">
Signal
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/11_extend/" class="md-nav__link">
Extend
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
<div class="md-nav__link md-nav__link--index ">
<a href="../../reference/">레퍼런스</a>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3">
<span class="md-nav__icon md-icon"></span>
레퍼런스
</label>
<ul class="md-nav__list" data-md-scrollfix>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<h1>Bindable</h1>
<p><code class="highlight"><span class="o">:</span><span class="nx">Fire</span><span class="p">(...</span><span class="nx">any</span><span class="p">)</span></code> </p>
<blockquote>
<p>등록된 연결들을 실행하고, <code>Wait</code> 을 풀어줍니다. </p>
</blockquote>
<hr />
<p><code class="highlight"><span class="o">:</span><span class="nx">Wait</span><span class="p">()</span><span class="o">-&gt;</span><span class="p">(...</span><span class="nx">any</span><span class="p">)</span></code> </p>
<blockquote>
<p><code>Fire</code> 가 호출될 때 까지 기다립니다. <code>Fire</code> 에 사용된 값이 반환됩니다. </p>
</blockquote>
<hr />
<p><code class="highlight"><span class="o">:</span><span class="nx">Connect</span><span class="p">((...</span><span class="nx">any</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>Fire</code> 가 호출 될 때 함수가 실행되도록 만듭니다. <code>Fire</code> 에 사용된 값이 호출 인자로 사용됩니다. 연결을 끊을 수 있도록 <code>Connection</code> 이 제공됩니다. </p>
</blockquote>
<hr />
<p><code class="highlight"><span class="o">:</span><span class="nx">Once</span><span class="p">((...</span><span class="nx">any</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>Connect</code> 와 유사하지만, <code>Fire</code> 가 한번 호출된 뒤 연결이 끊어집니다/ </p>
</blockquote>
<hr />
<p><code class="highlight"><span class="o">:</span><span class="nx">CheckConnected</span><span class="p">(</span><span class="nx">func</span><span class="p">)</span><span class="o">-&gt;</span><span class="kt">boolean</span></code> </p>
<blockquote>
<p>함수가 이미 등록되어 있는지 여부를 반환합니다. </p>
</blockquote>
<hr />
<p><code class="highlight"><span class="o">:</span><span class="nx">DisconnectAll</span><span class="p">()</span></code> </p>
<blockquote>
<p>모든 연결을 끊습니다. <code>Wait</code> 으로 기다리고 있는 곳에는 <code>nil</code> 을 반환합니다. </p>
</blockquote>
<hr />
<p><code class="highlight"><span class="o">:</span><span class="nx">Destroy</span><span class="p">()</span></code> </p>
<blockquote>
<p><code class="highlight"><span class="o">:</span><span class="nx">DisconnectAll</span><span class="p">()</span></code> 를 수행한 후, 객체를 더이상 사용할 수 없도록 만듭니다.<br />
<code>id</code> 가 등록되어 있는경우 저장소에서 파기하게 됩니다. </p>
</blockquote>
</article>
</div>
</div>
<a href="#" class="md-top md-icon" data-md-component="top" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12Z"/></svg>
맨위로
</a>
</main>
<footer class="md-footer">
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
<div class="md-copyright__highlight">
Copyright &copy; 2020 - 2023 Qwreey
</div>
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
</div>
<div class="md-social">
<a href="https://github.com/qwreey75" target="_blank" rel="noopener" title="github.com" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
</a>
<a href="https://stella.place/@qwreey" target="_blank" rel="noopener me" title="stella.place" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.54 102.54 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z"/></svg>
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.indexes", "navigation.footer", "navigation.tabs", "navigation.top", "toc.integrate", "content.code.copy"], "search": "../../assets/javascripts/workers/search.208ed371.min.js", "translations": {"clipboard.copied": "\ud074\ub9bd\ubcf4\ub4dc\uc5d0 \ubcf5\uc0ac\ub428", "clipboard.copy": "\ud074\ub9bd\ubcf4\ub4dc\ub85c \ubcf5\uc0ac", "search.result.more.one": "\uc774 \ubb38\uc11c\uc5d0\uc11c 1\uac1c\uc758 \uac80\uc0c9 \uacb0\uacfc \ub354 \ubcf4\uae30", "search.result.more.other": "\uc774 \ubb38\uc11c\uc5d0\uc11c #\uac1c\uc758 \uac80\uc0c9 \uacb0\uacfc \ub354 \ubcf4\uae30", "search.result.none": "\uac80\uc0c9\uc5b4\uc640 \uc77c\uce58\ud558\ub294 \ubb38\uc11c\uac00 \uc5c6\uc2b5\ub2c8\ub2e4", "search.result.one": "1\uac1c\uc758 \uc77c\uce58\ud558\ub294 \ubb38\uc11c", "search.result.other": "#\uac1c\uc758 \uc77c\uce58\ud558\ub294 \ubb38\uc11c", "search.result.placeholder": "\uac80\uc0c9\uc5b4\ub97c \uc785\ub825\ud558\uc138\uc694", "search.result.term.missing": "\ud3ec\ud568\ub418\uc9c0 \uc54a\uc740 \uac80\uc0c9\uc5b4", "select.version": "\ubc84\uc804 \uc120\ud0dd"}}</script>
<script src="../../assets/javascripts/bundle.2a6f1dda.min.js"></script>
</body>
</html>

View file

@ -0,0 +1,762 @@
<!doctype html>
<html lang="ko" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="description" content="Description for Quad. (Korean)">
<meta name="author" content="Qwreey and more">
<link rel="canonical" href="https://quad.qwreey.kr/kr/include/connection/">
<link rel="icon" href="../../assets/LUAICON_TP.png">
<meta name="generator" content="mkdocs-1.4.2, mkdocs-material-9.0.13">
<title>Connection - Quad 한국어 문서</title>
<link rel="stylesheet" href="../../assets/stylesheets/main.ffa9267a.min.css">
<link rel="stylesheet" href="../../assets/stylesheets/palette.a0c5b2b5.min.css">
<link rel="stylesheet" href="../../assets/extra.css">
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head>
<body dir="ltr" data-md-color-scheme="custom" data-md-color-primary="" data-md-color-accent="">
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
</div>
<div data-md-component="announce">
</div>
<header class="md-header" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="../.." title="Quad 한국어 문서" class="md-header__button md-logo" aria-label="Quad 한국어 문서" data-md-component="logo">
<img src="../../assets/LUAICON_DARK.png" alt="logo">
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
Quad 한국어 문서
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
Connection
</span>
</div>
</div>
</div>
<div class="md-header__option">
<div class="md-select">
<button class="md-header__button md-icon" aria-label="언어설정">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m12.87 15.07-2.54-2.51.03-.03A17.52 17.52 0 0 0 14.07 6H17V4h-7V2H8v2H1v2h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04M18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12m-2.62 7 1.62-4.33L19.12 17h-3.24Z"/></svg>
</button>
<div class="md-select__inner">
<ul class="md-select__list">
<li class="md-select__item">
<a href="/kr/" hreflang="ko" class="md-select__link">
한국어
</a>
</li>
<li class="md-select__item">
<a href="/en/" hreflang="en" class="md-select__link">
English
</a>
</li>
</ul>
</div>
</div>
</div>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="검색" placeholder="검색" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
</label>
<nav class="md-search__options" aria-label="검색">
<button type="reset" class="md-search__icon md-icon" title="지우기" aria-label="지우기" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
</button>
</nav>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
검색 초기화
</div>
<ol class="md-search-result__list" role="presentation"></ol>
</div>
</div>
</div>
</div>
</div>
<div class="md-header__source">
<a href="https://github.com/qwreey75/Quad" title="저장소로 이동" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
</div>
<div class="md-source__repository">
Quad
</div>
</a>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
<div class="md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href="../.." class="md-tabs__link">
</a>
</li>
<li class="md-tabs__item">
<a href="../../tutorial/" class="md-tabs__link">
튜토리얼
</a>
</li>
<li class="md-tabs__item">
<a href="../../reference/" class="md-tabs__link">
레퍼런스
</a>
</li>
</ul>
</div>
</nav>
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../.." title="Quad 한국어 문서" class="md-nav__button md-logo" aria-label="Quad 한국어 문서" data-md-component="logo">
<img src="../../assets/LUAICON_DARK.png" alt="logo">
</a>
Quad 한국어 문서
</label>
<div class="md-nav__source">
<a href="https://github.com/qwreey75/Quad" title="저장소로 이동" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
</div>
<div class="md-source__repository">
Quad
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_1" >
<div class="md-nav__link md-nav__link--index ">
<a href="../.."></a>
<label for="__nav_1">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_1_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_1">
<span class="md-nav__icon md-icon"></span>
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../license/" class="md-nav__link">
라이선스
</a>
</li>
<li class="md-nav__item">
<a href="../../changelogs/" class="md-nav__link">
변경사항
</a>
</li>
<li class="md-nav__item">
<a href="../../gallery/" class="md-nav__link">
갤러리
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
<div class="md-nav__link md-nav__link--index ">
<a href="../../tutorial/">튜토리얼</a>
<label for="__nav_2">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2">
<span class="md-nav__icon md-icon"></span>
튜토리얼
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../tutorial/1_import/" class="md-nav__link">
Import
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/2_mount/" class="md-nav__link">
Mount
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/3_getObject/" class="md-nav__link">
GetObject
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/4_style/" class="md-nav__link">
Style
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/5_event/" class="md-nav__link">
Event
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/6_tween/" class="md-nav__link">
Tween
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/7_quadProperty/" class="md-nav__link">
QuadProperty
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/8_register/" class="md-nav__link">
Register
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/9_lang/" class="md-nav__link">
Lang
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/10_signal/" class="md-nav__link">
Signal
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/11_extend/" class="md-nav__link">
Extend
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
<div class="md-nav__link md-nav__link--index ">
<a href="../../reference/">레퍼런스</a>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3">
<span class="md-nav__icon md-icon"></span>
레퍼런스
</label>
<ul class="md-nav__list" data-md-scrollfix>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<h1>Connection</h1>
<p><code class="highlight"><span class="o">:</span><span class="nx">Disconnect</span><span class="p">()</span></code> </p>
<blockquote>
<p>연결을 끊습니다. <code>Fire</code> 가 호출되더라도 <code>Connect</code> 혹은 <code>Once</code> 에 사용된 함수가 실행되지 않습니다. </p>
</blockquote>
<hr />
<p><code class="highlight"><span class="o">:</span><span class="nx">Destroy</span><span class="p">()</span></code> </p>
<blockquote>
<p><code class="highlight"><span class="o">:</span><span class="nx">Disconnect</span><span class="p">()</span></code> 의 별칭입니다. </p>
</blockquote>
</article>
</div>
</div>
<a href="#" class="md-top md-icon" data-md-component="top" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12Z"/></svg>
맨위로
</a>
</main>
<footer class="md-footer">
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
<div class="md-copyright__highlight">
Copyright &copy; 2020 - 2023 Qwreey
</div>
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
</div>
<div class="md-social">
<a href="https://github.com/qwreey75" target="_blank" rel="noopener" title="github.com" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
</a>
<a href="https://stella.place/@qwreey" target="_blank" rel="noopener me" title="stella.place" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.54 102.54 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z"/></svg>
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.indexes", "navigation.footer", "navigation.tabs", "navigation.top", "toc.integrate", "content.code.copy"], "search": "../../assets/javascripts/workers/search.208ed371.min.js", "translations": {"clipboard.copied": "\ud074\ub9bd\ubcf4\ub4dc\uc5d0 \ubcf5\uc0ac\ub428", "clipboard.copy": "\ud074\ub9bd\ubcf4\ub4dc\ub85c \ubcf5\uc0ac", "search.result.more.one": "\uc774 \ubb38\uc11c\uc5d0\uc11c 1\uac1c\uc758 \uac80\uc0c9 \uacb0\uacfc \ub354 \ubcf4\uae30", "search.result.more.other": "\uc774 \ubb38\uc11c\uc5d0\uc11c #\uac1c\uc758 \uac80\uc0c9 \uacb0\uacfc \ub354 \ubcf4\uae30", "search.result.none": "\uac80\uc0c9\uc5b4\uc640 \uc77c\uce58\ud558\ub294 \ubb38\uc11c\uac00 \uc5c6\uc2b5\ub2c8\ub2e4", "search.result.one": "1\uac1c\uc758 \uc77c\uce58\ud558\ub294 \ubb38\uc11c", "search.result.other": "#\uac1c\uc758 \uc77c\uce58\ud558\ub294 \ubb38\uc11c", "search.result.placeholder": "\uac80\uc0c9\uc5b4\ub97c \uc785\ub825\ud558\uc138\uc694", "search.result.term.missing": "\ud3ec\ud568\ub418\uc9c0 \uc54a\uc740 \uac80\uc0c9\uc5b4", "select.version": "\ubc84\uc804 \uc120\ud0dd"}}</script>
<script src="../../assets/javascripts/bundle.2a6f1dda.min.js"></script>
</body>
</html>

View file

@ -0,0 +1,769 @@
<!doctype html>
<html lang="ko" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="description" content="Description for Quad. (Korean)">
<meta name="author" content="Qwreey and more">
<link rel="canonical" href="https://quad.qwreey.kr/kr/include/disconnecter/">
<link rel="icon" href="../../assets/LUAICON_TP.png">
<meta name="generator" content="mkdocs-1.4.2, mkdocs-material-9.0.13">
<title>Disconnecter - Quad 한국어 문서</title>
<link rel="stylesheet" href="../../assets/stylesheets/main.ffa9267a.min.css">
<link rel="stylesheet" href="../../assets/stylesheets/palette.a0c5b2b5.min.css">
<link rel="stylesheet" href="../../assets/extra.css">
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head>
<body dir="ltr" data-md-color-scheme="custom" data-md-color-primary="" data-md-color-accent="">
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
</div>
<div data-md-component="announce">
</div>
<header class="md-header" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="../.." title="Quad 한국어 문서" class="md-header__button md-logo" aria-label="Quad 한국어 문서" data-md-component="logo">
<img src="../../assets/LUAICON_DARK.png" alt="logo">
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
Quad 한국어 문서
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
Disconnecter
</span>
</div>
</div>
</div>
<div class="md-header__option">
<div class="md-select">
<button class="md-header__button md-icon" aria-label="언어설정">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m12.87 15.07-2.54-2.51.03-.03A17.52 17.52 0 0 0 14.07 6H17V4h-7V2H8v2H1v2h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04M18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12m-2.62 7 1.62-4.33L19.12 17h-3.24Z"/></svg>
</button>
<div class="md-select__inner">
<ul class="md-select__list">
<li class="md-select__item">
<a href="/kr/" hreflang="ko" class="md-select__link">
한국어
</a>
</li>
<li class="md-select__item">
<a href="/en/" hreflang="en" class="md-select__link">
English
</a>
</li>
</ul>
</div>
</div>
</div>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="검색" placeholder="검색" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
</label>
<nav class="md-search__options" aria-label="검색">
<button type="reset" class="md-search__icon md-icon" title="지우기" aria-label="지우기" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
</button>
</nav>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
검색 초기화
</div>
<ol class="md-search-result__list" role="presentation"></ol>
</div>
</div>
</div>
</div>
</div>
<div class="md-header__source">
<a href="https://github.com/qwreey75/Quad" title="저장소로 이동" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
</div>
<div class="md-source__repository">
Quad
</div>
</a>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
<div class="md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href="../.." class="md-tabs__link">
</a>
</li>
<li class="md-tabs__item">
<a href="../../tutorial/" class="md-tabs__link">
튜토리얼
</a>
</li>
<li class="md-tabs__item">
<a href="../../reference/" class="md-tabs__link">
레퍼런스
</a>
</li>
</ul>
</div>
</nav>
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../.." title="Quad 한국어 문서" class="md-nav__button md-logo" aria-label="Quad 한국어 문서" data-md-component="logo">
<img src="../../assets/LUAICON_DARK.png" alt="logo">
</a>
Quad 한국어 문서
</label>
<div class="md-nav__source">
<a href="https://github.com/qwreey75/Quad" title="저장소로 이동" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
</div>
<div class="md-source__repository">
Quad
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_1" >
<div class="md-nav__link md-nav__link--index ">
<a href="../.."></a>
<label for="__nav_1">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_1_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_1">
<span class="md-nav__icon md-icon"></span>
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../license/" class="md-nav__link">
라이선스
</a>
</li>
<li class="md-nav__item">
<a href="../../changelogs/" class="md-nav__link">
변경사항
</a>
</li>
<li class="md-nav__item">
<a href="../../gallery/" class="md-nav__link">
갤러리
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
<div class="md-nav__link md-nav__link--index ">
<a href="../../tutorial/">튜토리얼</a>
<label for="__nav_2">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2">
<span class="md-nav__icon md-icon"></span>
튜토리얼
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../tutorial/1_import/" class="md-nav__link">
Import
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/2_mount/" class="md-nav__link">
Mount
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/3_getObject/" class="md-nav__link">
GetObject
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/4_style/" class="md-nav__link">
Style
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/5_event/" class="md-nav__link">
Event
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/6_tween/" class="md-nav__link">
Tween
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/7_quadProperty/" class="md-nav__link">
QuadProperty
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/8_register/" class="md-nav__link">
Register
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/9_lang/" class="md-nav__link">
Lang
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/10_signal/" class="md-nav__link">
Signal
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/11_extend/" class="md-nav__link">
Extend
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
<div class="md-nav__link md-nav__link--index ">
<a href="../../reference/">레퍼런스</a>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3">
<span class="md-nav__icon md-icon"></span>
레퍼런스
</label>
<ul class="md-nav__list" data-md-scrollfix>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<h1>Disconnecter</h1>
<p><code class="highlight"><span class="o">:</span><span class="nx">Add</span><span class="p">(</span><span class="nx">connection</span><span class="o">:</span><span class="kt">Connection</span><span class="o">|</span><span class="nx">RBXScriptConnection</span><span class="p">)</span></code> </p>
<blockquote>
<p><code>connection</code>을 리스트에 추가합니다. 나중에 <code>:Disconnect</code>를 호출하면 추가된 연결이 파기됩니다. </p>
</blockquote>
<hr />
<p><code class="highlight"><span class="o">:</span><span class="nx">Disconnect</span><span class="p">()</span></code> </p>
<blockquote>
<p>추가된 모든 연결에 <code>Disconnect()</code> 를 수행합니다. 이 호출 후에 추가된 연결은 모두 사라지며. 이 요청 후에도 다시 <code>:Add</code> 를 사용할 수 있습니다<br />
Disconnecter 를 완전히 사용하지 못하도록 하려면 <code>:Destroy</code> 를 호출하세요 </p>
</blockquote>
<hr />
<p><code class="highlight"><span class="o">:</span><span class="nx">Destroy</span><span class="p">()</span></code> </p>
<blockquote>
<p><code class="highlight"><span class="o">:</span><span class="nx">Disconnect</span><span class="p">()</span></code> 를 수행한 후, 객체를 더이상 사용할 수 없도록 만듭니다.<br />
<code>id</code> 가 등록되어 있는경우 저장소에서 파기하게 됩니다. </p>
</blockquote>
</article>
</div>
</div>
<a href="#" class="md-top md-icon" data-md-component="top" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12Z"/></svg>
맨위로
</a>
</main>
<footer class="md-footer">
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
<div class="md-copyright__highlight">
Copyright &copy; 2020 - 2023 Qwreey
</div>
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
</div>
<div class="md-social">
<a href="https://github.com/qwreey75" target="_blank" rel="noopener" title="github.com" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
</a>
<a href="https://stella.place/@qwreey" target="_blank" rel="noopener me" title="stella.place" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.54 102.54 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z"/></svg>
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.indexes", "navigation.footer", "navigation.tabs", "navigation.top", "toc.integrate", "content.code.copy"], "search": "../../assets/javascripts/workers/search.208ed371.min.js", "translations": {"clipboard.copied": "\ud074\ub9bd\ubcf4\ub4dc\uc5d0 \ubcf5\uc0ac\ub428", "clipboard.copy": "\ud074\ub9bd\ubcf4\ub4dc\ub85c \ubcf5\uc0ac", "search.result.more.one": "\uc774 \ubb38\uc11c\uc5d0\uc11c 1\uac1c\uc758 \uac80\uc0c9 \uacb0\uacfc \ub354 \ubcf4\uae30", "search.result.more.other": "\uc774 \ubb38\uc11c\uc5d0\uc11c #\uac1c\uc758 \uac80\uc0c9 \uacb0\uacfc \ub354 \ubcf4\uae30", "search.result.none": "\uac80\uc0c9\uc5b4\uc640 \uc77c\uce58\ud558\ub294 \ubb38\uc11c\uac00 \uc5c6\uc2b5\ub2c8\ub2e4", "search.result.one": "1\uac1c\uc758 \uc77c\uce58\ud558\ub294 \ubb38\uc11c", "search.result.other": "#\uac1c\uc758 \uc77c\uce58\ud558\ub294 \ubb38\uc11c", "search.result.placeholder": "\uac80\uc0c9\uc5b4\ub97c \uc785\ub825\ud558\uc138\uc694", "search.result.term.missing": "\ud3ec\ud568\ub418\uc9c0 \uc54a\uc740 \uac80\uc0c9\uc5b4", "select.version": "\ubc84\uc804 \uc120\ud0dd"}}</script>
<script src="../../assets/javascripts/bundle.2a6f1dda.min.js"></script>
</body>
</html>

View file

@ -0,0 +1,775 @@
<!doctype html>
<html lang="ko" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="description" content="Description for Quad. (Korean)">
<meta name="author" content="Qwreey and more">
<link rel="canonical" href="https://quad.qwreey.kr/kr/include/extend/">
<link rel="icon" href="../../assets/LUAICON_TP.png">
<meta name="generator" content="mkdocs-1.4.2, mkdocs-material-9.0.13">
<title>Extend - Quad 한국어 문서</title>
<link rel="stylesheet" href="../../assets/stylesheets/main.ffa9267a.min.css">
<link rel="stylesheet" href="../../assets/stylesheets/palette.a0c5b2b5.min.css">
<link rel="stylesheet" href="../../assets/extra.css">
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head>
<body dir="ltr" data-md-color-scheme="custom" data-md-color-primary="" data-md-color-accent="">
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
</div>
<div data-md-component="announce">
</div>
<header class="md-header" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="../.." title="Quad 한국어 문서" class="md-header__button md-logo" aria-label="Quad 한국어 문서" data-md-component="logo">
<img src="../../assets/LUAICON_DARK.png" alt="logo">
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
Quad 한국어 문서
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
Extend
</span>
</div>
</div>
</div>
<div class="md-header__option">
<div class="md-select">
<button class="md-header__button md-icon" aria-label="언어설정">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m12.87 15.07-2.54-2.51.03-.03A17.52 17.52 0 0 0 14.07 6H17V4h-7V2H8v2H1v2h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04M18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12m-2.62 7 1.62-4.33L19.12 17h-3.24Z"/></svg>
</button>
<div class="md-select__inner">
<ul class="md-select__list">
<li class="md-select__item">
<a href="/kr/" hreflang="ko" class="md-select__link">
한국어
</a>
</li>
<li class="md-select__item">
<a href="/en/" hreflang="en" class="md-select__link">
English
</a>
</li>
</ul>
</div>
</div>
</div>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="검색" placeholder="검색" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
</label>
<nav class="md-search__options" aria-label="검색">
<button type="reset" class="md-search__icon md-icon" title="지우기" aria-label="지우기" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
</button>
</nav>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
검색 초기화
</div>
<ol class="md-search-result__list" role="presentation"></ol>
</div>
</div>
</div>
</div>
</div>
<div class="md-header__source">
<a href="https://github.com/qwreey75/Quad" title="저장소로 이동" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
</div>
<div class="md-source__repository">
Quad
</div>
</a>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
<div class="md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href="../.." class="md-tabs__link">
</a>
</li>
<li class="md-tabs__item">
<a href="../../tutorial/" class="md-tabs__link">
튜토리얼
</a>
</li>
<li class="md-tabs__item">
<a href="../../reference/" class="md-tabs__link">
레퍼런스
</a>
</li>
</ul>
</div>
</nav>
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../.." title="Quad 한국어 문서" class="md-nav__button md-logo" aria-label="Quad 한국어 문서" data-md-component="logo">
<img src="../../assets/LUAICON_DARK.png" alt="logo">
</a>
Quad 한국어 문서
</label>
<div class="md-nav__source">
<a href="https://github.com/qwreey75/Quad" title="저장소로 이동" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
</div>
<div class="md-source__repository">
Quad
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_1" >
<div class="md-nav__link md-nav__link--index ">
<a href="../.."></a>
<label for="__nav_1">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_1_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_1">
<span class="md-nav__icon md-icon"></span>
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../license/" class="md-nav__link">
라이선스
</a>
</li>
<li class="md-nav__item">
<a href="../../changelogs/" class="md-nav__link">
변경사항
</a>
</li>
<li class="md-nav__item">
<a href="../../gallery/" class="md-nav__link">
갤러리
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
<div class="md-nav__link md-nav__link--index ">
<a href="../../tutorial/">튜토리얼</a>
<label for="__nav_2">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2">
<span class="md-nav__icon md-icon"></span>
튜토리얼
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../tutorial/1_import/" class="md-nav__link">
Import
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/2_mount/" class="md-nav__link">
Mount
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/3_getObject/" class="md-nav__link">
GetObject
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/4_style/" class="md-nav__link">
Style
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/5_event/" class="md-nav__link">
Event
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/6_tween/" class="md-nav__link">
Tween
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/7_quadProperty/" class="md-nav__link">
QuadProperty
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/8_register/" class="md-nav__link">
Register
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/9_lang/" class="md-nav__link">
Lang
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/10_signal/" class="md-nav__link">
Signal
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/11_extend/" class="md-nav__link">
Extend
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
<div class="md-nav__link md-nav__link--index ">
<a href="../../reference/">레퍼런스</a>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3">
<span class="md-nav__icon md-icon"></span>
레퍼런스
</label>
<ul class="md-nav__list" data-md-scrollfix>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<h1>Extend</h1>
<p><code>self(name:string)</code> </p>
<blockquote>
<p>Extend 메소드 전역에서 사용가능합니다. 링커를 만들며, <code>PropertyChangedSignal</code> 를 이어주거나, self 에 원하는 오브젝트를 넣는 용도로 사용됩니다. 자세한 정보는 Render 를 확인해주세요. </p>
</blockquote>
<hr />
<p><mark>REQUIRED</mark> <code>:Render(props:valueStore)</code> </p>
<blockquote>
<p>화면에 그려지는 UI 를 만들어지게 하는 함수입니다. <code>Extend</code> 가 그려지려면 무조건 있어야합니다.<br />
이 오브젝트를 그리는데 들어간 프로퍼티 목록을 첫번째 인자로 줍니다. 레지스터 문법이 사용될 수 있습니다. </p>
<p>=== 예제</p>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><code>
</code></pre></div></td></tr></table></div>
<p>```</p>
</blockquote>
<p><mark>OPTION</mark> AfterRender
Getter Setter
Update
GetPropertyChangedSignal
EmitPropertyChangedSignal
Unload
self()
UpdateTriggers</p>
</article>
</div>
</div>
<a href="#" class="md-top md-icon" data-md-component="top" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12Z"/></svg>
맨위로
</a>
</main>
<footer class="md-footer">
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
<div class="md-copyright__highlight">
Copyright &copy; 2020 - 2023 Qwreey
</div>
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
</div>
<div class="md-social">
<a href="https://github.com/qwreey75" target="_blank" rel="noopener" title="github.com" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
</a>
<a href="https://stella.place/@qwreey" target="_blank" rel="noopener me" title="stella.place" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.54 102.54 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z"/></svg>
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.indexes", "navigation.footer", "navigation.tabs", "navigation.top", "toc.integrate", "content.code.copy"], "search": "../../assets/javascripts/workers/search.208ed371.min.js", "translations": {"clipboard.copied": "\ud074\ub9bd\ubcf4\ub4dc\uc5d0 \ubcf5\uc0ac\ub428", "clipboard.copy": "\ud074\ub9bd\ubcf4\ub4dc\ub85c \ubcf5\uc0ac", "search.result.more.one": "\uc774 \ubb38\uc11c\uc5d0\uc11c 1\uac1c\uc758 \uac80\uc0c9 \uacb0\uacfc \ub354 \ubcf4\uae30", "search.result.more.other": "\uc774 \ubb38\uc11c\uc5d0\uc11c #\uac1c\uc758 \uac80\uc0c9 \uacb0\uacfc \ub354 \ubcf4\uae30", "search.result.none": "\uac80\uc0c9\uc5b4\uc640 \uc77c\uce58\ud558\ub294 \ubb38\uc11c\uac00 \uc5c6\uc2b5\ub2c8\ub2e4", "search.result.one": "1\uac1c\uc758 \uc77c\uce58\ud558\ub294 \ubb38\uc11c", "search.result.other": "#\uac1c\uc758 \uc77c\uce58\ud558\ub294 \ubb38\uc11c", "search.result.placeholder": "\uac80\uc0c9\uc5b4\ub97c \uc785\ub825\ud558\uc138\uc694", "search.result.term.missing": "\ud3ec\ud568\ub418\uc9c0 \uc54a\uc740 \uac80\uc0c9\uc5b4", "select.version": "\ubc84\uc804 \uc120\ud0dd"}}</script>
<script src="../../assets/javascripts/bundle.2a6f1dda.min.js"></script>
</body>
</html>

View file

@ -671,15 +671,18 @@
<blockquote> <blockquote>
<p>일반적인 반복입니다. for 를 사용하는것과 효과가 같으나 함수를 이용합니다 </p> <p>일반적인 반복입니다. for 를 사용하는것과 효과가 같으나 함수를 이용합니다 </p>
</blockquote> </blockquote>
<hr />
<p><code class="highlight"><span class="o">:</span><span class="nx">EachAsync</span><span class="p">((</span><span class="nx">item</span><span class="o">:</span><span class="kt">any</span><span class="p">,</span><span class="w"> </span><span class="nx">index</span><span class="o">:</span><span class="kt">number</span><span class="p">)</span><span class="o">-&gt;</span><span class="p">())</span></code> </p> <p><code class="highlight"><span class="o">:</span><span class="nx">EachAsync</span><span class="p">((</span><span class="nx">item</span><span class="o">:</span><span class="kt">any</span><span class="p">,</span><span class="w"> </span><span class="nx">index</span><span class="o">:</span><span class="kt">number</span><span class="p">)</span><span class="o">-&gt;</span><span class="p">())</span></code> </p>
<blockquote> <blockquote>
<p>반환을 기다리지 않고 바로바로 다음 아이템으로 넘어갑니다.<br /> <p>반환을 기다리지 않고 바로바로 다음 아이템으로 넘어갑니다.<br />
코루틴이 이용됩니다. <code>wrap()</code> 코루틴을 모르거나, 필요성이 없는경우 일반적으로 <code class="highlight"><span class="o">:</span><span class="nx">Each</span></code> 를 사용해도 됩니다 </p> 코루틴이 이용됩니다. <code>wrap()</code> 코루틴을 모르거나, 필요성이 없는경우 일반적으로 <code class="highlight"><span class="o">:</span><span class="nx">Each</span></code> 를 사용해도 됩니다 </p>
</blockquote> </blockquote>
<hr />
<p><code class="highlight"><span class="o">:</span><span class="nx">IsEmpty</span><span class="p">()</span></code> </p> <p><code class="highlight"><span class="o">:</span><span class="nx">IsEmpty</span><span class="p">()</span></code> </p>
<blockquote> <blockquote>
<p>이 ObjectList 가 비어있는지 여부를 반환합니다. </p> <p>이 ObjectList 가 비어있는지 여부를 반환합니다. </p>
</blockquote> </blockquote>
<hr />
<p><code class="highlight"><span class="o">:</span><span class="nx">Remove</span><span class="p">(</span><span class="nx">indexOrItem</span><span class="o">:</span><span class="kt">number</span><span class="o">|</span><span class="nx">any</span><span class="p">)</span></code> </p> <p><code class="highlight"><span class="o">:</span><span class="nx">Remove</span><span class="p">(</span><span class="nx">indexOrItem</span><span class="o">:</span><span class="kt">number</span><span class="o">|</span><span class="nx">any</span><span class="p">)</span></code> </p>
<blockquote> <blockquote>
<p>objectList 에서 해당하는 오브젝트를 제거합니다.<br /> <p>objectList 에서 해당하는 오브젝트를 제거합니다.<br />

View file

@ -672,7 +672,6 @@
<blockquote> <blockquote>
<p>값에 더하기를 취합니다. 음수형태가 제공되는 경우 빼기 처럼 작동합니다.<br /> <p>값에 더하기를 취합니다. 음수형태가 제공되는 경우 빼기 처럼 작동합니다.<br />
<code>number</code>, <code>Udim</code>, <code>UDim2</code>, <code>Color3</code>, <code>Vector2</code> 등 더할 수 있는 모든것을 사용할 수 있습니다<br /> <code>number</code>, <code>Udim</code>, <code>UDim2</code>, <code>Color3</code>, <code>Vector2</code> 등 더할 수 있는 모든것을 사용할 수 있습니다<br />
<em>주의 : 구조의 복잡성을 피하고자, 여러번 호출시 가장 마지막 호출된 것만 사용됩니다</em>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span> <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"> 2</span>
<span class="normal"> 3</span> <span class="normal"> 3</span>
@ -715,6 +714,10 @@
<span class="n">task</span><span class="p">.</span><span class="n">wait</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span> <span class="n">task</span><span class="p">.</span><span class="n">wait</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
<span class="kr">end</span> <span class="kr">end</span>
</code></pre></div></td></tr></table></div></p> </code></pre></div></td></tr></table></div></p>
<details class="warning" open="open">
<summary>주의</summary>
<p>구조의 복잡성을 피하고자, 여러번 호출시 가장 마지막 호출된 것만 사용됩니다</p>
</details>
</blockquote> </blockquote>
<hr /> <hr />
<p><code class="highlight"><span class="o">:</span><span class="nx">With</span><span class="p">((</span><span class="nx">store</span><span class="o">:</span><span class="kt">valueStore</span><span class="p">,</span><span class="w"> </span><span class="nx">newValue</span><span class="o">:</span><span class="kt">any</span><span class="p">,</span><span class="w"> </span><span class="nx">key</span><span class="o">:</span><span class="kt">string</span><span class="p">)</span><span class="o">-&gt;</span><span class="p">())</span><span class="o">-&gt;</span><span class="nx">register</span></code> </p> <p><code class="highlight"><span class="o">:</span><span class="nx">With</span><span class="p">((</span><span class="nx">store</span><span class="o">:</span><span class="kt">valueStore</span><span class="p">,</span><span class="w"> </span><span class="nx">newValue</span><span class="o">:</span><span class="kt">any</span><span class="p">,</span><span class="w"> </span><span class="nx">key</span><span class="o">:</span><span class="kt">string</span><span class="p">)</span><span class="o">-&gt;</span><span class="p">())</span><span class="o">-&gt;</span><span class="nx">register</span></code> </p>

File diff suppressed because one or more lines are too long

View file

@ -20,11 +20,26 @@
<lastmod>2023-02-21</lastmod> <lastmod>2023-02-21</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url>
<loc>https://quad.qwreey.kr/kr/include/bindable/</loc>
<lastmod>2023-02-21</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://quad.qwreey.kr/kr/include/connection/</loc>
<lastmod>2023-02-21</lastmod>
<changefreq>daily</changefreq>
</url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/include/direction/</loc> <loc>https://quad.qwreey.kr/kr/include/direction/</loc>
<lastmod>2023-02-21</lastmod> <lastmod>2023-02-21</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url>
<loc>https://quad.qwreey.kr/kr/include/disconnecter/</loc>
<lastmod>2023-02-21</lastmod>
<changefreq>daily</changefreq>
</url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/include/easings/</loc> <loc>https://quad.qwreey.kr/kr/include/easings/</loc>
<lastmod>2023-02-21</lastmod> <lastmod>2023-02-21</lastmod>
@ -35,6 +50,11 @@
<lastmod>2023-02-21</lastmod> <lastmod>2023-02-21</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url>
<loc>https://quad.qwreey.kr/kr/include/extend/</loc>
<lastmod>2023-02-21</lastmod>
<changefreq>daily</changefreq>
</url>
<url> <url>
<loc>https://quad.qwreey.kr/kr/include/locales/</loc> <loc>https://quad.qwreey.kr/kr/include/locales/</loc>
<lastmod>2023-02-21</lastmod> <lastmod>2023-02-21</lastmod>

Binary file not shown.

View file

@ -69,7 +69,7 @@
<div data-md-component="skip"> <div data-md-component="skip">
<a href="#signal" class="md-skip"> <a href="#signal-" class="md-skip">
콘텐츠로 이동 콘텐츠로 이동
</a> </a>
@ -596,10 +596,68 @@
<label class="md-nav__link md-nav__link--active" for="__toc">
Signal
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active"> <a href="./" class="md-nav__link md-nav__link--active">
Signal Signal
</a> </a>
<nav class="md-nav md-nav--secondary" aria-label="목차">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
목차
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#bindable" class="md-nav__link">
Bindable
</a>
<nav class="md-nav" aria-label="Bindable">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#bindable_1" class="md-nav__link">
Bindable 메소드
</a>
</li>
<li class="md-nav__item">
<a href="#connection" class="md-nav__link">
Connection 메소드
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#disconnecter" class="md-nav__link">
Disconnecter
</a>
</li>
</ul>
</nav>
</li> </li>
@ -688,8 +746,148 @@
<h1 id="signal">Signal<a class="headerlink" href="#signal" title="Permanent link">&para;</a></h1> <h1 id="signal-">Signal - 이벤트 생성과 연결<a class="headerlink" href="#signal-" title="Permanent link">&para;</a></h1>
<p>Quad 에는 편의상의 이유로 </p> <details class="info" open="open">
<summary>읽기 전...</summary>
<p>모듈 설정시 <code class="highlight"><span class="p">.</span><span class="nx">Init</span><span class="p">()</span></code> 처럼 QuadId 란을 비워두는 경우 <code>Bindable</code>, <code>Disconnecter</code> 기능이 코드를 넘어 공유되지 않습니다<br />
하지만 <code class="highlight"><span class="p">.</span><span class="nx">Init</span><span class="p">(</span><span class="s2">&quot;Project1&quot;</span><span class="p">)</span></code> 처럼 아이디를 부여하는 경우 <strong>다른 모듈, 로컬스크립트가 접근하더라도 같은 QuadId 를 가졌다면 <code>Bindable</code>, <code>Disconnecter</code> 는 공유됩니다</strong> </p>
</details>
<p>Quad 에는 편의상의 이유로 로블록스의 <code>RBXScriptSignal</code> 의 유사품과, 한번에 시그널을 끊어주는 <code>Disconnecter</code> 를 제공합니다.<br />
이는 내부적으로 <code>Extend</code><code>GetPropertyChangedSignal</code> 같은 곳에서 사용되기도 합니다. </p>
<h2 id="bindable">Bindable<a class="headerlink" href="#bindable" title="Permanent link">&para;</a></h2>
<p>Bindable 은 <code>RBXScriptSignal</code> 과 유사한 객체입니다. <code class="highlight"><span class="nx">Signal</span><span class="p">.</span><span class="nx">Bindable</span><span class="p">.</span><span class="nx">New</span><span class="p">(</span><span class="nx">id</span><span class="o">:</span><span class="kt">string?</span><span class="p">)</span></code> 으로 생성할 수 있습니다.<br />
로블록스의 기본 <code>BindableEvent</code> 와는 다르게 <code>:Fire</code> 가 한곳에 합쳐져 있습니다. </p>
<details class="note" open="open">
<summary>Note</summary>
<p>만약 <code>id</code> 를 지정한 경우, 같은 <code>id</code> 를 가진 <code>Bindable</code> 이 있으면 이전것을 반환합니다. </p>
</details>
<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></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">Signal</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Signal</span>
<span class="kd">local</span> <span class="n">mySignal</span> <span class="o">=</span> <span class="n">Signal</span><span class="p">.</span><span class="n">Bindable</span><span class="p">.</span><span class="n">New</span><span class="p">()</span>
<span class="kd">local</span> <span class="n">connection</span> <span class="o">=</span> <span class="n">mySignal</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">v</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">v</span><span class="p">)</span>
<span class="kr">end</span><span class="p">)</span>
<span class="n">mySignal</span><span class="p">:</span><span class="n">Fire</span><span class="p">(</span><span class="s2">&quot;이 메시지는 출력되어야 합니다.&quot;</span><span class="p">)</span>
<span class="n">connection</span><span class="p">:</span><span class="n">Disconnect</span><span class="p">()</span>
<span class="n">mySignal</span><span class="p">:</span><span class="n">Fire</span><span class="p">(</span><span class="s2">&quot;이 메시지는 출력되면 안됩니다.&quot;</span><span class="p">)</span>
<span class="n">task</span><span class="p">.</span><span class="n">spawn</span><span class="p">(</span><span class="kr">function</span><span class="p">()</span>
<span class="n">task</span><span class="p">.</span><span class="n">wait</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span>
<span class="n">mySignal</span><span class="p">:</span><span class="n">Fire</span><span class="p">(</span><span class="s2">&quot;이 메시지는 지연된 후 출력되어야 합니다.&quot;</span><span class="p">)</span>
<span class="kr">end</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">mySignal</span><span class="p">:</span><span class="n">Wait</span><span class="p">())</span>
<span class="n">mySignal</span><span class="p">:</span><span class="n">Once</span><span class="p">(</span><span class="kr">function</span><span class="p">(</span><span class="n">v</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">v</span><span class="p">)</span>
<span class="kr">end</span><span class="p">)</span>
<span class="n">mySignal</span><span class="p">:</span><span class="n">Fire</span><span class="p">(</span><span class="s2">&quot;이 메시지는 출력되어야 합니다.&quot;</span><span class="p">)</span>
<span class="n">mySignal</span><span class="p">:</span><span class="n">Fire</span><span class="p">(</span><span class="s2">&quot;이 메시지는 출력되면 안됩니다.&quot;</span><span class="p">)</span>
<span class="n">mySignal</span><span class="p">:</span><span class="n">Once</span><span class="p">(</span><span class="kr">function</span><span class="p">(</span><span class="n">v</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">v</span><span class="p">)</span>
<span class="kr">end</span><span class="p">):</span><span class="n">Disconnect</span><span class="p">()</span>
<span class="n">mySignal</span><span class="p">:</span><span class="n">Fire</span><span class="p">(</span><span class="s2">&quot;이 메시지는 출력되면 안됩니다.&quot;</span><span class="p">)</span>
</code></pre></div></td></tr></table></div>
<h3 id="bindable_1">Bindable 메소드<a class="headerlink" href="#bindable_1" title="Permanent link">&para;</a></h3>
<p><code>Bindable</code> 에는 다음과 같은 메소드들이 제공됩니다. </p>
<p><code class="highlight"><span class="o">:</span><span class="nx">Fire</span><span class="p">(...</span><span class="nx">any</span><span class="p">)</span></code> </p>
<blockquote>
<p>등록된 연결들을 실행하고, <code>Wait</code> 을 풀어줍니다. </p>
</blockquote>
<hr />
<p><code class="highlight"><span class="o">:</span><span class="nx">Wait</span><span class="p">()</span><span class="o">-&gt;</span><span class="p">(...</span><span class="nx">any</span><span class="p">)</span></code> </p>
<blockquote>
<p><code>Fire</code> 가 호출될 때 까지 기다립니다. <code>Fire</code> 에 사용된 값이 반환됩니다. </p>
</blockquote>
<hr />
<p><code class="highlight"><span class="o">:</span><span class="nx">Connect</span><span class="p">((...</span><span class="nx">any</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>Fire</code> 가 호출 될 때 함수가 실행되도록 만듭니다. <code>Fire</code> 에 사용된 값이 호출 인자로 사용됩니다. 연결을 끊을 수 있도록 <code>Connection</code> 이 제공됩니다. </p>
</blockquote>
<hr />
<p><code class="highlight"><span class="o">:</span><span class="nx">Once</span><span class="p">((...</span><span class="nx">any</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>Connect</code> 와 유사하지만, <code>Fire</code> 가 한번 호출된 뒤 연결이 끊어집니다/ </p>
</blockquote>
<hr />
<p><code class="highlight"><span class="o">:</span><span class="nx">CheckConnected</span><span class="p">(</span><span class="nx">func</span><span class="p">)</span><span class="o">-&gt;</span><span class="kt">boolean</span></code> </p>
<blockquote>
<p>함수가 이미 등록되어 있는지 여부를 반환합니다. </p>
</blockquote>
<hr />
<p><code class="highlight"><span class="o">:</span><span class="nx">DisconnectAll</span><span class="p">()</span></code> </p>
<blockquote>
<p>모든 연결을 끊습니다. <code>Wait</code> 으로 기다리고 있는 곳에는 <code>nil</code> 을 반환합니다. </p>
</blockquote>
<hr />
<p><code class="highlight"><span class="o">:</span><span class="nx">Destroy</span><span class="p">()</span></code> </p>
<blockquote>
<p><code class="highlight"><span class="o">:</span><span class="nx">DisconnectAll</span><span class="p">()</span></code> 를 수행한 후, 객체를 더이상 사용할 수 없도록 만듭니다.<br />
<code>id</code> 가 등록되어 있는경우 저장소에서 파기하게 됩니다.</p>
</blockquote>
<h3 id="connection">Connection 메소드<a class="headerlink" href="#connection" title="Permanent link">&para;</a></h3>
<p>Bindable:Connect 와 Bindable:Once 는 <code>Connection</code> 을 반환합니다. <code>Connection</code> 에는 다음과 같은 메소드들이 제공됩니다. </p>
<p><code class="highlight"><span class="o">:</span><span class="nx">Disconnect</span><span class="p">()</span></code> </p>
<blockquote>
<p>연결을 끊습니다. <code>Fire</code> 가 호출되더라도 <code>Connect</code> 혹은 <code>Once</code> 에 사용된 함수가 실행되지 않습니다. </p>
</blockquote>
<hr />
<p><code class="highlight"><span class="o">:</span><span class="nx">Destroy</span><span class="p">()</span></code> </p>
<blockquote>
<p><code class="highlight"><span class="o">:</span><span class="nx">Disconnect</span><span class="p">()</span></code> 의 별칭입니다.</p>
</blockquote>
<hr />
<h2 id="disconnecter">Disconnecter<a class="headerlink" href="#disconnecter" title="Permanent link">&para;</a></h2>
<p><code>Disconnecter</code> 는 일종의 <code>Maid</code> 모듈과 비슷한 객체입니다. 이 객체에는 <code>Connection</code> (로블록스, Quad 모두 호환) 을 추가할 수 있으며, 나중에 추가된 <code>Connection</code> 을 한꺼번에 <code>Disconnect</code> 할 수 있습니다. <code class="highlight"><span class="nx">Signal</span><span class="p">.</span><span class="nx">Disconnecter</span><span class="p">.</span><span class="nx">New</span><span class="p">(</span><span class="nx">id</span><span class="o">:</span><span class="kt">string?</span><span class="p">)</span></code> 으로 생성할 수 있습니다.</p>
<details class="note" open="open">
<summary>Note</summary>
<p>만약 <code>id</code> 를 지정한 경우, 같은 <code>id</code> 를 가진 <code>Bindable</code> 이 있으면 이전것을 반환합니다. </p>
</details>
<p><code class="highlight"><span class="o">:</span><span class="nx">Add</span><span class="p">(</span><span class="nx">connection</span><span class="o">:</span><span class="kt">Connection</span><span class="o">|</span><span class="nx">RBXScriptConnection</span><span class="p">)</span></code> </p>
<blockquote>
<p><code>connection</code>을 리스트에 추가합니다. 나중에 <code>:Disconnect</code>를 호출하면 추가된 연결이 파기됩니다. </p>
</blockquote>
<hr />
<p><code class="highlight"><span class="o">:</span><span class="nx">Disconnect</span><span class="p">()</span></code> </p>
<blockquote>
<p>추가된 모든 연결에 <code>Disconnect()</code> 를 수행합니다. 이 호출 후에 추가된 연결은 모두 사라지며. 이 요청 후에도 다시 <code>:Add</code> 를 사용할 수 있습니다<br />
Disconnecter 를 완전히 사용하지 못하도록 하려면 <code>:Destroy</code> 를 호출하세요 </p>
</blockquote>
<hr />
<p><code class="highlight"><span class="o">:</span><span class="nx">Destroy</span><span class="p">()</span></code> </p>
<blockquote>
<p><code class="highlight"><span class="o">:</span><span class="nx">Disconnect</span><span class="p">()</span></code> 를 수행한 후, 객체를 더이상 사용할 수 없도록 만듭니다.<br />
<code>id</code> 가 등록되어 있는경우 저장소에서 파기하게 됩니다.</p>
</blockquote>

View file

@ -68,6 +68,11 @@
<label class="md-overlay" for="__drawer"></label> <label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip"> <div data-md-component="skip">
<a href="#extend-" class="md-skip">
콘텐츠로 이동
</a>
</div> </div>
<div data-md-component="announce"> <div data-md-component="announce">
@ -603,10 +608,43 @@
<label class="md-nav__link md-nav__link--active" for="__toc">
Extend
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active"> <a href="./" class="md-nav__link md-nav__link--active">
Extend Extend
</a> </a>
<nav class="md-nav md-nav--secondary" aria-label="목차">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
목차
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#_1" class="md-nav__link">
나만의 클래스를 만들어보자
</a>
</li>
</ul>
</nav>
</li> </li>
@ -681,9 +719,283 @@
<h1>Extend</h1> <h1 id="extend-">Extend - 확장과 재사용<a class="headerlink" href="#extend-" title="Permanent link">&para;</a></h1>
<h2 id="_1">나만의 클래스를 만들어보자<a class="headerlink" href="#_1" title="Permanent link">&para;</a></h2>
<p>Quad 에서는 로블록스의 <code>Frame</code> 이나 <code>TextButton</code> 같은 기본 오브젝트만 만들 수 있는것이 아닙니다. Quad 는 자신만의 버튼, 혹은 여러 컴포넌트들을 추상적으로 만들고. 다시 활용할 수 있도록 <code>Extend</code> 를 지원합니다.</p>
<p><code>Extend</code><code>Register</code> 와 더불어 Quad 의 가장 중요한 기능으로써, 다음과 같은 장점을 지닙니다.</p>
<blockquote>
<ol>
<li>재사용 가능합니다. 나만의 버튼을 만들고, 고치고 싶은 마음이 생겨 고치면 자동으로 사용된 곳들이 업데이트됩니다. </li>
<li>긴 코드를 나누어 코드마다 확실한 목적을 부여해 더 명확한 코드 작성이 가능해집니다. </li>
<li>자신만의 프로퍼티를 만들거나 완전히 원하는대로 오브젝트를 커스터마이징 할 수 있습니다. </li>
<li>함수나 생성기를 직접 만드는 것 보다 일관된 방법을 제공합니다. </li>
</ol>
</blockquote>
<p><code>Extend</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></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="c1">-- extend 객체를 만듭니다</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>
</code></pre></div></td></tr></table></div>
일반적으로 Extend 는 한 모듈에 하나씩 넣습니다. </p>
<p>다음과 같은 코드 구조를 만들어보세요.<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></pre></div></td><td class="code"><div><pre><span></span><code> - ScreenGUI
|-- localscript
|-- myClass (ModuleScript)
</code></pre></div></td></tr></table></div></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">localscript</label><label for="__tabbed_1_2">localscript.myClass</label></div>
<div class="tabbed-content">
<div class="tabbed-block">
<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>
<span class="normal">30</span>
<span class="normal">31</span>
<span class="normal">32</span>
<span class="normal">33</span>
<span class="normal">34</span>
<span class="normal">35</span>
<span class="normal">36</span>
<span class="normal">37</span>
<span class="normal">38</span>
<span class="normal">39</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">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">Store</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Store</span>
<span class="kd">local</span> <span class="n">myStore</span> <span class="o">=</span> <span class="n">Store</span><span class="p">.</span><span class="n">GetStore</span><span class="p">(</span><span class="s2">&quot;myStore&quot;</span><span class="p">)</span>
<span class="n">myStore</span><span class="p">.</span><span class="n">bgColor</span> <span class="o">=</span> <span class="n">Color3</span><span class="p">.</span><span class="n">fromRGB</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
<span class="c1">-- Class(require(script.myClass)) 와 같습니다.</span>
<span class="c1">-- 줄여서 Class(script.myClass) 로 쓸 수도 있습니다.</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">script</span><span class="p">.</span><span class="n">myClass</span><span class="p">)</span>
<span class="c1">-- 프레임에 넣거나 하여도 무방합니다</span>
<span class="c1">-- 일반 오브젝트와 똑같이 id 를 넣고 GetObject 로</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="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="c1">-- 레지스터 값을 넘겨줄 수도 있습니다.</span>
<span class="c1">-- 받는쪽도 레지스터인 경우 값이 연동됩니다.</span>
<span class="n">BackgroundColor3</span> <span class="o">=</span> <span class="n">myStore</span> <span class="s2">&quot;bgColor&quot;</span><span class="p">;</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">main</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">Store</span><span class="p">.</span><span class="n">GetObject</span><span class="p">(</span><span class="s2">&quot;main&quot;</span><span class="p">)</span> <span class="o">==</span> <span class="n">main</span><span class="p">)</span> <span class="c1">-- true</span>
<span class="c1">-- 이 값을 바꾸면 연동된 BackgroundColor3 도 바뀔것입니다</span>
<span class="n">myStore</span><span class="p">.</span><span class="n">bgColor</span> <span class="o">=</span> <span class="n">Color3</span><span class="p">.</span><span class="n">fromRGB</span><span class="p">(</span><span class="mi">255</span><span class="p">,</span><span class="mi">255</span><span class="p">,</span><span class="mi">255</span><span class="p">)</span>
<span class="c1">-- 값 변경됨을 연결하기</span>
<span class="n">main</span>
<span class="p">:</span><span class="n">GetPropertyChangedSignal</span><span class="p">(</span><span class="s2">&quot;AbsolutePosition&quot;</span><span class="p">)</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="nb">print</span><span class="p">(</span><span class="s2">&quot;AbsolutePosition&quot;</span><span class="p">,</span><span class="n">main</span><span class="p">.</span><span class="n">AbsolutePosition</span><span class="p">)</span>
<span class="kr">end</span><span class="p">)</span>
<span class="c1">-- main:Update()</span>
<span class="c1">-- 강제로 다시 Render 를 실행하도록 만듭니다.</span>
</code></pre></div></td></tr></table></div>
</div>
<div class="tabbed-block">
<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>
<span class="normal">30</span>
<span class="normal">31</span>
<span class="normal">32</span>
<span class="normal">33</span>
<span class="normal">34</span>
<span class="normal">35</span>
<span class="normal">36</span>
<span class="normal">37</span>
<span class="normal">38</span>
<span class="normal">39</span>
<span class="normal">40</span>
<span class="normal">41</span>
<span class="normal">42</span>
<span class="normal">43</span>
<span class="normal">44</span>
<span class="normal">45</span>
<span class="normal">46</span>
<span class="normal">47</span>
<span class="normal">48</span>
<span class="normal">49</span>
<span class="normal">50</span>
<span class="normal">51</span>
<span class="normal">52</span>
<span class="normal">53</span>
<span class="normal">54</span>
<span class="normal">55</span>
<span class="normal">56</span>
<span class="normal">57</span>
<span class="normal">58</span>
<span class="normal">59</span>
<span class="normal">60</span>
<span class="normal">61</span>
<span class="normal">62</span>
<span class="normal">63</span>
<span class="normal">64</span>
<span class="normal">65</span>
<span class="normal">66</span>
<span class="normal">67</span>
<span class="normal">68</span>
<span class="normal">69</span>
<span class="normal">70</span>
<span class="normal">71</span>
<span class="normal">72</span>
<span class="normal">73</span>
<span class="normal">74</span>
<span class="normal">75</span>
<span class="normal">76</span>
<span class="normal">77</span>
<span class="normal">78</span>
<span class="normal">79</span>
<span class="normal">80</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">Event</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">TextLabel</span> <span class="o">=</span> <span class="n">Class</span> <span class="s2">&quot;TextLabel&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="c1">-- Init 에는 프로퍼티 리스트가 제공됩니다.</span>
<span class="c1">-- Init 는 없더라도 무방합니다.</span>
<span class="kr">function</span> <span class="nc">myClass</span><span class="p">:</span><span class="nf">Init</span><span class="p">(</span><span class="n">props</span><span class="p">)</span>
<span class="c1">-- 생성된 오브젝트에 프라이빗 값을 만듭니다.</span>
<span class="c1">-- 이름 앞에 _ 가 붇으면 외부에서 사용되는 목적이 아닌</span>
<span class="c1">-- 내부에서 사용되는 목적으로만 사용할 수 있습니다</span>
<span class="c1">-- 이 경우 안전성을 위해 register 를 사용할 수</span>
<span class="c1">-- 없습니다.</span>
<span class="n">self</span><span class="p">.</span><span class="n">_testValue</span> <span class="o">=</span> <span class="mi">2</span>
<span class="c1">-- 프로퍼티의 기본값을 정해줄 수 있습니다.</span>
<span class="c1">-- 생성 시 값이 누락된 경우 사용할 값을 정해줄 수 있습니다</span>
<span class="c1">-- 키, 값 으로 구성합니다</span>
<span class="n">props</span><span class="p">:</span><span class="n">Default</span><span class="p">(</span><span class="s2">&quot;Text&quot;</span><span class="p">,</span><span class="s2">&quot;Testing Label&quot;</span><span class="p">)</span>
<span class="kr">end</span>
<span class="c1">-- myClass 가 진짜 그려지는 부분입니다.</span>
<span class="c1">-- Render 도 Init 처럼 프로퍼티 리스트가 제공됩니다.</span>
<span class="kr">function</span> <span class="nc">myClass</span><span class="p">:</span><span class="nf">Init</span><span class="p">(</span><span class="n">props</span><span class="p">)</span>
<span class="kr">return</span> <span class="n">TextLabel</span> <span class="p">{</span>
<span class="c1">-- self 에 _label 로 이 TextLabel 을 넣습니다.</span>
<span class="c1">-- 자식 오브젝트에도 사용할 수 있는 문법입니다.</span>
<span class="n">self</span> <span class="s2">&quot;_label&quot;</span><span class="p">;</span>
<span class="c1">-- GetPropertyChangedSignal 가 작동할 수 있도록</span>
<span class="c1">-- 프로퍼티 변경 이벤트를 연결해줍니다</span>
<span class="c1">-- 이 또한 자식 오브젝트에도 사용할 수 있는 문법입니다.</span>
<span class="p">[</span><span class="n">Event</span><span class="p">.</span><span class="n">Prop</span> <span class="s2">&quot;AbsolutePosition&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">self</span> <span class="s2">&quot;AbsolutePosition&quot;</span><span class="p">;</span>
<span class="c1">-- 마우스 클릭같은 다른 이벤트를 GetPropertyChangedSignal 에</span>
<span class="c1">-- 연결하려면 :EmitPropertyChangedSignal() 를 호출해주면 됩니다.</span>
<span class="p">[</span><span class="n">Event</span> <span class="s2">&quot;MouseEnter&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="kr">function</span> <span class="p">(</span><span class="n">this</span><span class="p">,</span><span class="n">x</span><span class="p">,</span><span class="n">y</span><span class="p">)</span>
<span class="c1">-- 키, 값이 들어갑니다. 값이 없으면 self[key] 로 대신합니다.</span>
<span class="n">self</span><span class="p">:</span><span class="n">EmitPropertyChangedSignal</span><span class="p">(</span><span class="s2">&quot;Testing2&quot;</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span>
<span class="kr">end</span><span class="p">;</span>
<span class="c1">-- 받은 레지스터를 연동합니다.</span>
<span class="c1">-- 만약 props.BackgroundColor3 만 사용하면</span>
<span class="c1">-- 처음에만 레지스터에서 값을 읽어옵니다.</span>
<span class="c1">-- 따라서 값을 변경해도 변경사항이 적용되지 않습니다.</span>
<span class="n">BackgroundColor3</span> <span class="o">=</span> <span class="n">props</span> <span class="s2">&quot;BackgroundColor3&quot;</span><span class="p">;</span>
<span class="c1">-- 입력 값과 상관없이 레지스터를 쓸 수 있습니다.</span>
<span class="c1">-- 이 경우 main.Text = &quot;New&quot; 처럼 직접 변경하면</span>
<span class="c1">-- 그 변경이 적용됩니다.</span>
<span class="n">Text</span> <span class="o">=</span> <span class="n">props</span> <span class="s2">&quot;Text&quot;</span><span class="p">;</span>
<span class="c1">-- ... 자식을 넣어도 무방합니다.</span>
<span class="p">}</span>
<span class="kr">end</span>
<span class="c1">-- function myClass:Unload(object)</span>
<span class="c1">-- :Destroy 가 호출될 때 사용됩니다. 따로 선언하지 않아도</span>
<span class="c1">-- 연결을 모두 끊고 없에주지만 필요한 경우 직접 없에줄 수 있습니다</span>
<span class="c1">-- object 는 :Render 가 반환한 값입니다</span>
<span class="c1">-- AbsolutePosition 값을 반환할 수 있도록 만듭니다</span>
<span class="kr">function</span> <span class="nc">myClass</span><span class="p">.</span><span class="nc">Getter</span><span class="p">.</span><span class="nf">AbsolutePosition</span><span class="p">(</span><span class="n">self</span><span class="p">)</span>
<span class="kr">return</span> <span class="n">self</span><span class="p">.</span><span class="n">_label</span><span class="p">.</span><span class="n">AbsolutePosition</span>
<span class="kr">end</span>
<span class="c1">-- AbsolutePosition 값을 설정할 수 없도록 만듭니다</span>
<span class="kr">function</span> <span class="nc">myClass</span><span class="p">.</span><span class="nc">Setter</span><span class="p">.</span><span class="nf">AbsolutePosition</span><span class="p">(</span><span class="n">self</span><span class="p">,</span><span class="n">newValue</span><span class="p">)</span>
<span class="c1">-- 필요한 경우 값을 설정하도록 만들 수 있습니다</span>
<span class="nb">error</span><span class="p">(</span><span class="s2">&quot;AbsolutePosition 값은 설정할 수 없습니다&quot;</span><span class="p">)</span>
<span class="kr">end</span>
<span class="c1">-- main.Testing = 2 다음과 같이 값을 변경하면 오브젝트가</span>
<span class="c1">-- 완전히 다시 그려집니다. 즉 업데이트 트리거로 사용합니다.</span>
<span class="n">myClass</span><span class="p">.</span><span class="n">UpdateTriggers</span><span class="p">.</span><span class="n">Testing</span> <span class="o">=</span> <span class="kc">true</span>
<span class="c1">-- 만든 클래스를 반환해줍시다.</span>
<span class="kr">return</span> <span class="n">myClass</span>
</code></pre></div></td></tr></table></div>
</div>
</div>
</div>

View file

@ -728,7 +728,7 @@
<h1 id="mount-ui">Mount - 화면에 UI 표현<a class="headerlink" href="#mount-ui" title="Permanent link">&para;</a></h1> <h1 id="mount-ui">Mount - 화면에 UI 표현<a class="headerlink" href="#mount-ui" title="Permanent link">&para;</a></h1>
<h2 id="ui">화면에 UI 를 표시하기<a class="headerlink" href="#ui" title="Permanent link">&para;</a></h2> <h2 id="ui">화면에 UI 를 표시하기<a class="headerlink" href="#ui" title="Permanent link">&para;</a></h2>
<p>일반적으로 <em>Quad</em> 모듈에서 모든 Parent 처리는 <code class="highlight"><span class="nx">Mount</span></code> 를 이용합니다. <code class="highlight"><span class="nx">Mount</span><span class="p">(</span><span class="nx">to</span><span class="o">:</span><span class="kt">any</span><span class="p">,</span><span class="nx">...item</span><span class="o">:</span><span class="kt">any?</span><span class="p">)</span><span class="o">-&gt;</span><span class="nx">mounts</span></code> 함수를 이용하면 다루는 오브젝트가 로블록스 <code>Instance</code> 인지, 향후 소개될 Quad 확장 클래스인지 상관없이 알아서 Parent 가 처리됩니다.</p> <p><em>Quad</em> 모듈에서 모든 Parent 처리는 <code class="highlight"><span class="nx">Mount</span></code> 를 이용합니다. <code class="highlight"><span class="nx">Mount</span><span class="p">(</span><span class="nx">to</span><span class="o">:</span><span class="kt">any</span><span class="p">,</span><span class="nx">...item</span><span class="o">:</span><span class="kt">any?</span><span class="p">)</span><span class="o">-&gt;</span><span class="nx">mounts</span></code> 함수를 이용하면 다루는 오브젝트가 로블록스 <code>Instance</code> 인지, 향후 소개될 Quad 확장 클래스인지 상관없이 알아서 Parent 가 처리됩니다.</p>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span> <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"> 2</span>
<span class="normal"> 3</span> <span class="normal"> 3</span>

View file

@ -906,15 +906,18 @@
<blockquote> <blockquote>
<p>일반적인 반복입니다. for 를 사용하는것과 효과가 같으나 함수를 이용합니다 </p> <p>일반적인 반복입니다. for 를 사용하는것과 효과가 같으나 함수를 이용합니다 </p>
</blockquote> </blockquote>
<hr />
<p><code class="highlight"><span class="o">:</span><span class="nx">EachAsync</span><span class="p">((</span><span class="nx">item</span><span class="o">:</span><span class="kt">any</span><span class="p">,</span><span class="w"> </span><span class="nx">index</span><span class="o">:</span><span class="kt">number</span><span class="p">)</span><span class="o">-&gt;</span><span class="p">())</span></code> </p> <p><code class="highlight"><span class="o">:</span><span class="nx">EachAsync</span><span class="p">((</span><span class="nx">item</span><span class="o">:</span><span class="kt">any</span><span class="p">,</span><span class="w"> </span><span class="nx">index</span><span class="o">:</span><span class="kt">number</span><span class="p">)</span><span class="o">-&gt;</span><span class="p">())</span></code> </p>
<blockquote> <blockquote>
<p>반환을 기다리지 않고 바로바로 다음 아이템으로 넘어갑니다.<br /> <p>반환을 기다리지 않고 바로바로 다음 아이템으로 넘어갑니다.<br />
코루틴이 이용됩니다. <code>wrap()</code> 코루틴을 모르거나, 필요성이 없는경우 일반적으로 <code class="highlight"><span class="o">:</span><span class="nx">Each</span></code> 를 사용해도 됩니다 </p> 코루틴이 이용됩니다. <code>wrap()</code> 코루틴을 모르거나, 필요성이 없는경우 일반적으로 <code class="highlight"><span class="o">:</span><span class="nx">Each</span></code> 를 사용해도 됩니다 </p>
</blockquote> </blockquote>
<hr />
<p><code class="highlight"><span class="o">:</span><span class="nx">IsEmpty</span><span class="p">()</span></code> </p> <p><code class="highlight"><span class="o">:</span><span class="nx">IsEmpty</span><span class="p">()</span></code> </p>
<blockquote> <blockquote>
<p>이 ObjectList 가 비어있는지 여부를 반환합니다. </p> <p>이 ObjectList 가 비어있는지 여부를 반환합니다. </p>
</blockquote> </blockquote>
<hr />
<p><code class="highlight"><span class="o">:</span><span class="nx">Remove</span><span class="p">(</span><span class="nx">indexOrItem</span><span class="o">:</span><span class="kt">number</span><span class="o">|</span><span class="nx">any</span><span class="p">)</span></code> </p> <p><code class="highlight"><span class="o">:</span><span class="nx">Remove</span><span class="p">(</span><span class="nx">indexOrItem</span><span class="o">:</span><span class="kt">number</span><span class="o">|</span><span class="nx">any</span><span class="p">)</span></code> </p>
<blockquote> <blockquote>
<p>objectList 에서 해당하는 오브젝트를 제거합니다.<br /> <p>objectList 에서 해당하는 오브젝트를 제거합니다.<br />
@ -923,18 +926,24 @@
<hr /> <hr />
<h2 id="id">고급 ID 사용하기<a class="headerlink" href="#id" title="Permanent link">&para;</a></h2> <h2 id="id">고급 ID 사용하기<a class="headerlink" href="#id" title="Permanent link">&para;</a></h2>
<p>id 기능을 조금더 고급적인 방법으로 사용할 수도 있습니다.</p> <p>id 기능을 조금더 고급적인 방법으로 사용할 수도 있습니다.</p>
<p>=== 용법</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-content">
<div class="tabbed-block">
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span> <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">2</span>
<span class="normal">3</span> <span class="normal">3</span>
<span class="normal">4</span> <span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><code>```lua <span class="normal">5</span>
Frame &quot;a,b&quot; { <span class="normal">6</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="c1">-- 두 아이디를 가진 프레임을 생성합니다</span>
<span class="n">Frame</span> <span class="s2">&quot;a,b&quot;</span> <span class="p">{}</span>
} <span class="c1">-- a 를 가진것과, a 와 b 를 가진것을 가져옵니다</span>
``` <span class="n">Store</span><span class="p">.</span><span class="n">GetObjects</span><span class="p">(</span><span class="s2">&quot;a,a&amp;b&quot;</span><span class="p">):</span><span class="n">Each</span><span class="p">(</span><span class="kr">function</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>
<span class="kr">end</span><span class="p">)</span>
</code></pre></div></td></tr></table></div> </code></pre></div></td></tr></table></div>
<p>=== 예제</p> </div>
<div class="tabbed-block">
<p>좀더 직관적인 확인을 위해서 작동시켜보세요.</p>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span> <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"> 2</span>
<span class="normal"> 3</span> <span class="normal"> 3</span>
@ -970,51 +979,46 @@ Frame &quot;a,b&quot; {
<span class="normal">33</span> <span class="normal">33</span>
<span class="normal">34</span> <span class="normal">34</span>
<span class="normal">35</span> <span class="normal">35</span>
<span class="normal">36</span> <span class="normal">36</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">37</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="normal">38</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">Mount</span>
<span class="normal">39</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">Store</span>
<span class="normal">40</span></pre></div></td><td class="code"><div><pre><span></span><code>좀더 직관적인 확인을 위해서 작동시켜보세요. <span class="kd">local</span> <span class="n">Store</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Class</span>
```lua <span class="kd">local</span> <span class="n">Frame</span> <span class="o">=</span> <span class="n">Class</span> <span class="s2">&quot;Frame&quot;</span>
local ScreenGUI = script.Parent
local Quad = require(path.to.module).Init()
local Class = Quad.Mount
local Mount = Quad.Store
local Store = Quad.Class
local Frame = Class &quot;Frame&quot; <span class="c1">--다음과 같이 a 와 b 모두 가진 프레임을 생성할 수도 있습니다.</span>
<span class="n">Frame</span> <span class="s2">&quot;a,b&quot;</span> <span class="p">{</span>
<span class="n">Name</span> <span class="o">=</span> <span class="s2">&quot;main&quot;</span><span class="p">;</span>
<span class="n">Frame</span> <span class="s2">&quot;a&quot;</span> <span class="p">{</span>
<span class="n">Name</span> <span class="o">=</span> <span class="s2">&quot;Child1&quot;</span><span class="p">;</span>
<span class="p">};</span>
<span class="n">Frame</span> <span class="s2">&quot;b&quot;</span> <span class="p">{</span>
<span class="n">Name</span> <span class="o">=</span> <span class="s2">&quot;Child2&quot;</span><span class="p">;</span>
<span class="p">};</span>
<span class="p">}</span>
--다음과 같이 a 와 b 모두 가진 프레임을 생성할 수도 있습니다. <span class="c1">-- 다음과 같이 a 와 b 둘다 선택할 수 있습니다</span>
Frame &quot;a,b&quot; { <span class="n">Store</span><span class="p">.</span><span class="n">GetObjects</span><span class="p">(</span><span class="s2">&quot;a,b&quot;</span><span class="p">):</span><span class="n">Each</span><span class="p">(</span><span class="kr">function</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
Name = &quot;main&quot;; <span class="nb">print</span><span class="p">(</span><span class="n">item</span><span class="p">.</span><span class="n">Name</span><span class="p">)</span>
Frame &quot;a&quot; { <span class="kr">end</span><span class="p">)</span>
Name = &quot;Child1&quot;; <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;----&quot;</span><span class="p">)</span>
};
Frame &quot;b&quot; {
Name = &quot;Child2&quot;;
};
}
-- 다음과 같이 a 와 b 둘다 선택할 수 있습니다 <span class="c1">-- 다음과 같이 a 와 b 를 동시에 가진 것을 선택할 수 있습니다</span>
Store.GetObjects(&quot;a,b&quot;):Each(function(item, index) <span class="n">Store</span><span class="p">.</span><span class="n">GetObjects</span><span class="p">(</span><span class="s2">&quot;a&amp;b&quot;</span><span class="p">):</span><span class="n">Each</span><span class="p">(</span><span class="kr">function</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
print(item.Name) <span class="nb">print</span><span class="p">(</span><span class="n">item</span><span class="p">.</span><span class="n">Name</span><span class="p">)</span>
end) <span class="kr">end</span><span class="p">)</span>
print(&quot;----&quot;) <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;----&quot;</span><span class="p">)</span>
-- 다음과 같이 a 와 b 를 동시에 가진 것을 선택할 수 있습니다 <span class="c1">-- 다음과 같이 a와b 를 동시에 가진것과, b 를 가진것을 선택</span>
Store.GetObjects(&quot;a&amp;b&quot;):Each(function(item, index) <span class="c1">-- 할 수 있습니다</span>
print(item.Name) <span class="n">Store</span><span class="p">.</span><span class="n">GetObjects</span><span class="p">(</span><span class="s2">&quot;a&amp;b,b&quot;</span><span class="p">):</span><span class="n">Each</span><span class="p">(</span><span class="kr">function</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
end) <span class="nb">print</span><span class="p">(</span><span class="n">item</span><span class="p">.</span><span class="n">Name</span><span class="p">)</span>
print(&quot;----&quot;) <span class="kr">end</span><span class="p">)</span>
-- 다음과 같이 a와b 를 동시에 가진것과, b 를 가진것을 선택
-- 할 수 있습니다
Store.GetObjects(&quot;a&amp;b,b&quot;):Each(function(item, index)
print(item.Name)
end)
```
</code></pre></div></td></tr></table></div> </code></pre></div></td></tr></table></div>
</div>
</div>
</div>
<ul> <ul>
<li>또는(or) 연산 <code class="highlight"><span class="p">,</span></code> </li> <li>또는(or) 연산 <code class="highlight"><span class="p">,</span></code> </li>
<li>그리고(and) 연산 <code class="highlight"><span class="o">&amp;</span></code> </li> <li>그리고(and) 연산 <code class="highlight"><span class="o">&amp;</span></code> </li>
@ -1062,7 +1066,7 @@ end)
<span class="n">Store</span><span class="p">.</span><span class="n">GetObjects</span><span class="p">(</span><span class="s2">&quot;a&quot;</span><span class="p">):</span><span class="n">Remove</span><span class="p">(</span><span class="n">Store</span><span class="p">.</span><span class="n">GetObject</span><span class="p">(</span><span class="s2">&quot;testing&quot;</span><span class="p">))</span> <span class="n">Store</span><span class="p">.</span><span class="n">GetObjects</span><span class="p">(</span><span class="s2">&quot;a&quot;</span><span class="p">):</span><span class="n">Remove</span><span class="p">(</span><span class="n">Store</span><span class="p">.</span><span class="n">GetObject</span><span class="p">(</span><span class="s2">&quot;testing&quot;</span><span class="p">))</span>
</code></pre></div></td></tr></table></div> </code></pre></div></td></tr></table></div>
<p><code class="highlight"><span class="nx">Store</span><span class="p">.</span><span class="nx">AddObject</span><span class="p">(</span><span class="nx">ids</span><span class="o">:</span><span class="kt">string</span><span class="p">,</span><span class="w"> </span><span class="nx">item</span><span class="o">:</span><span class="kt">any</span><span class="p">)</span></code> 를 이용해 item 에 아이디를 추가하고<br /> <p><code class="highlight"><span class="nx">Store</span><span class="p">.</span><span class="nx">AddObject</span><span class="p">(</span><span class="nx">ids</span><span class="o">:</span><span class="kt">string</span><span class="p">,</span><span class="w"> </span><span class="nx">item</span><span class="o">:</span><span class="kt">any</span><span class="p">)</span></code> 를 이용해 item 에 아이디를 추가하고<br />
<code class="highlight"><span class="o">:</span><span class="nx">Remove</span><span class="p">(</span><span class="nx">item</span><span class="o">:</span><span class="kt">any</span><span class="p">)</span></code> 를 이용해 item 에 아이디를 제거합니다</p> <code class="highlight"><span class="o">:</span><span class="nx">Remove</span><span class="p">(</span><span class="nx">item</span><span class="o">:</span><span class="kt">any</span><span class="p">)</span></code> 를 이용해 item 에 아이디를 제거합니다 </p>

View file

@ -69,7 +69,7 @@
<div data-md-component="skip"> <div data-md-component="skip">
<a href="#_1" class="md-skip"> <a href="#style-" class="md-skip">
콘텐츠로 이동 콘텐츠로 이동
</a> </a>
@ -512,10 +512,48 @@
<label class="md-nav__link md-nav__link--active" for="__toc">
Style
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active"> <a href="./" class="md-nav__link md-nav__link--active">
Style Style
</a> </a>
<nav class="md-nav md-nav--secondary" aria-label="목차">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
목차
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#_1" class="md-nav__link">
반복되는 속성값을 줄이기
</a>
</li>
<li class="md-nav__item">
<a href="#id" class="md-nav__link">
ID 로 타겟을 지정하기
</a>
</li>
</ul>
</nav>
</li> </li>
@ -688,13 +726,14 @@
<h1 id="_1">반복되는 속성값을 줄이기<a class="headerlink" href="#_1" title="Permanent link">&para;</a></h1> <h1 id="style-">Style - 속성 값 번들링<a class="headerlink" href="#style-" title="Permanent link">&para;</a></h1>
<details class="info" open="open"> <details class="info" open="open">
<summary>읽기 전...</summary> <summary>읽기 전...</summary>
<p>모듈 설정시 <code class="highlight"><span class="p">.</span><span class="nx">Init</span><span class="p">()</span></code> 처럼 QuadId 란을 비워두는 경우 <code>Style</code> 기능이 코드를 넘어 공유되지 않습니다<br /> <p>모듈 설정시 <code class="highlight"><span class="p">.</span><span class="nx">Init</span><span class="p">()</span></code> 처럼 QuadId 란을 비워두는 경우 <code>Style</code> 기능이 코드를 넘어 공유되지 않습니다<br />
하지만 <code class="highlight"><span class="p">.</span><span class="nx">Init</span><span class="p">(</span><span class="s2">&quot;Project1&quot;</span><span class="p">)</span></code> 처럼 아이디를 부여하는 경우 <strong>다른 모듈, 로컬스크립트가 접근하더라도 같은 QuadId 를 가졌다면 <code>Style</code> 는 공유됩니다</strong> </p> 하지만 <code class="highlight"><span class="p">.</span><span class="nx">Init</span><span class="p">(</span><span class="s2">&quot;Project1&quot;</span><span class="p">)</span></code> 처럼 아이디를 부여하는 경우 <strong>다른 모듈, 로컬스크립트가 접근하더라도 같은 QuadId 를 가졌다면 <code>Style</code> 는 공유됩니다</strong> </p>
</details> </details>
<hr /> <hr />
<h2 id="_1">반복되는 속성값을 줄이기<a class="headerlink" href="#_1" title="Permanent link">&para;</a></h2>
<p>Quad 에서는 반복적인 속성들을 줄여 쓸 수 있도록 Style 을 제공합니다. </p> <p>Quad 에서는 반복적인 속성들을 줄여 쓸 수 있도록 Style 을 제공합니다. </p>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span> <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"> 2</span>
@ -771,7 +810,9 @@
<span class="n">Mount</span><span class="p">(</span><span class="n">ScreenGUI</span><span class="p">,</span><span class="n">Store</span><span class="p">.</span><span class="n">GetObject</span><span class="p">(</span><span class="s2">&quot;mainFrame&quot;</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">Store</span><span class="p">.</span><span class="n">GetObject</span><span class="p">(</span><span class="s2">&quot;mainFrame&quot;</span><span class="p">))</span>
</code></pre></div></td></tr></table></div> </code></pre></div></td></tr></table></div>
<p><code class="highlight"><span class="nx">Style</span></code>을 사용하면 많은 양의 속성을 하나에 변수로 집어넣을 수 있습니다. <code class="highlight"><span class="nx">Style</span></code>을 사용해서 많은 양의 코드를 줄여보세요 </p> <p><code class="highlight"><span class="nx">Style</span></code>을 사용하면 많은 양의 속성을 하나에 변수로 집어넣을 수 있습니다. <code class="highlight"><span class="nx">Style</span></code>을 사용해서 많은 양의 코드를 줄여보세요 </p>
<p>또, <code class="highlight"><span class="nx">Style</span></code>에는 타겟 id를 지정해줄 수 있습니다 </p> <hr />
<h2 id="id">ID 로 타겟을 지정하기<a class="headerlink" href="#id" title="Permanent link">&para;</a></h2>
<p><code class="highlight"><span class="nx">Style</span></code>에는 <code>타겟 id</code>를 지정해줄 수 있습니다 </p>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span> <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"> 2</span>
<span class="normal"> 3</span> <span class="normal"> 3</span>
@ -820,7 +861,7 @@
<span class="n">Mount</span><span class="p">(</span><span class="n">ScreenGUI</span><span class="p">,</span><span class="n">Store</span><span class="p">.</span><span class="n">GetObject</span><span class="p">(</span><span class="s2">&quot;mainFrame&quot;</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">Store</span><span class="p">.</span><span class="n">GetObject</span><span class="p">(</span><span class="s2">&quot;mainFrame&quot;</span><span class="p">))</span>
</code></pre></div></td></tr></table></div> </code></pre></div></td></tr></table></div>
<p><code class="highlight"><span class="nx">Style</span><span class="p">(</span><span class="nx">id</span><span class="o">:</span><span class="kt">string</span><span class="p">){</span><span class="w"> </span><span class="nx">any</span><span class="w"> </span><span class="p">}</span></code>를 이용해 스타일을 선언해주면 나중에 해당 id를 가진 오브젝트 생성시 해당 스타일이 적용됩니다.</p> <p><code class="highlight"><span class="nx">Style</span><span class="p">(</span><span class="nx">id</span><span class="o">:</span><span class="kt">string</span><span class="p">){</span><span class="w"> </span><span class="nx">any</span><span class="w"> </span><span class="p">}</span></code>를 이용해 스타일을 선언해주면 나중에 해당 id를 가진 오브젝트 생성시 해당 스타일이 적용됩니다. </p>

View file

@ -847,7 +847,6 @@
<blockquote> <blockquote>
<p>값에 더하기를 취합니다. 음수형태가 제공되는 경우 빼기 처럼 작동합니다.<br /> <p>값에 더하기를 취합니다. 음수형태가 제공되는 경우 빼기 처럼 작동합니다.<br />
<code>number</code>, <code>Udim</code>, <code>UDim2</code>, <code>Color3</code>, <code>Vector2</code> 등 더할 수 있는 모든것을 사용할 수 있습니다<br /> <code>number</code>, <code>Udim</code>, <code>UDim2</code>, <code>Color3</code>, <code>Vector2</code> 등 더할 수 있는 모든것을 사용할 수 있습니다<br />
<em>주의 : 구조의 복잡성을 피하고자, 여러번 호출시 가장 마지막 호출된 것만 사용됩니다</em>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span> <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"> 2</span>
<span class="normal"> 3</span> <span class="normal"> 3</span>
@ -890,6 +889,10 @@
<span class="n">task</span><span class="p">.</span><span class="n">wait</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span> <span class="n">task</span><span class="p">.</span><span class="n">wait</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
<span class="kr">end</span> <span class="kr">end</span>
</code></pre></div></td></tr></table></div></p> </code></pre></div></td></tr></table></div></p>
<details class="warning" open="open">
<summary>주의</summary>
<p>구조의 복잡성을 피하고자, 여러번 호출시 가장 마지막 호출된 것만 사용됩니다</p>
</details>
</blockquote> </blockquote>
<hr /> <hr />
<p><code class="highlight"><span class="o">:</span><span class="nx">With</span><span class="p">((</span><span class="nx">store</span><span class="o">:</span><span class="kt">valueStore</span><span class="p">,</span><span class="w"> </span><span class="nx">newValue</span><span class="o">:</span><span class="kt">any</span><span class="p">,</span><span class="w"> </span><span class="nx">key</span><span class="o">:</span><span class="kt">string</span><span class="p">)</span><span class="o">-&gt;</span><span class="p">())</span><span class="o">-&gt;</span><span class="nx">register</span></code> </p> <p><code class="highlight"><span class="o">:</span><span class="nx">With</span><span class="p">((</span><span class="nx">store</span><span class="o">:</span><span class="kt">valueStore</span><span class="p">,</span><span class="w"> </span><span class="nx">newValue</span><span class="o">:</span><span class="kt">any</span><span class="p">,</span><span class="w"> </span><span class="nx">key</span><span class="o">:</span><span class="kt">string</span><span class="p">)</span><span class="o">-&gt;</span><span class="p">())</span><span class="o">-&gt;</span><span class="nx">register</span></code> </p>

View file

@ -69,7 +69,7 @@
<div data-md-component="skip"> <div data-md-component="skip">
<a href="#_1" class="md-skip"> <a href="#lang-" class="md-skip">
콘텐츠로 이동 콘텐츠로 이동
</a> </a>
@ -607,7 +607,7 @@
<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"> <li class="md-nav__item">
<a href="#_2" class="md-nav__link"> <a href="#_1" class="md-nav__link">
언어관리 언어관리
</a> </a>
@ -726,16 +726,43 @@
<h1 id="_1">언어관리<a class="headerlink" href="#_1" title="Permanent link">&para;</a></h1> <h1 id="lang-">Lang - 언어관리<a class="headerlink" href="#lang-" title="Permanent link">&para;</a></h1>
<details class="info" open="open"> <details class="info" open="open">
<summary>읽기 전...</summary> <summary>읽기 전...</summary>
<p>모듈 설정시 <code class="highlight"><span class="p">.</span><span class="nx">Init</span><span class="p">()</span></code> 처럼 QuadId 란을 비워두는 경우 <code>Lang</code> 기능이 코드를 넘어 공유되지 않습니다<br /> <p>모듈 설정시 <code class="highlight"><span class="p">.</span><span class="nx">Init</span><span class="p">()</span></code> 처럼 QuadId 란을 비워두는 경우 <code>Lang</code> 기능이 코드를 넘어 공유되지 않습니다<br />
하지만 <code class="highlight"><span class="p">.</span><span class="nx">Init</span><span class="p">(</span><span class="s2">&quot;Project1&quot;</span><span class="p">)</span></code> 처럼 아이디를 부여하는 경우 <strong>다른 모듈, 로컬스크립트가 접근하더라도 같은 QuadId 를 가졌다면 <code>Lang</code> 은 공유됩니다</strong> </p> 하지만 <code class="highlight"><span class="p">.</span><span class="nx">Init</span><span class="p">(</span><span class="s2">&quot;Project1&quot;</span><span class="p">)</span></code> 처럼 아이디를 부여하는 경우 <strong>다른 모듈, 로컬스크립트가 접근하더라도 같은 QuadId 를 가졌다면 <code>Lang</code> 은 공유됩니다</strong> </p>
</details> </details>
<hr /> <hr />
<h2 id="_2">언어관리<a class="headerlink" href="#_2" title="Permanent link">&para;</a></h2> <h2 id="_1">언어관리<a class="headerlink" href="#_1" title="Permanent link">&para;</a></h2>
<p>Quad 에는 귀찮은 언어관리를 자동으로 해주는 기능이 내장되어 있습니다.<br /> <p>Quad 에는 귀찮은 언어관리를 자동으로 해주는 기능이 내장되어 있습니다. 이 기능은 register 와 연동해 적은 줄의 코드로 변하는 텍스트도 언어에 맞게 출력되도록 만들 수 있습니다. </p>
이 기능은 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 />
<code>Lang(LangName:string)(options)</code> 로 UI 에 적용시킬 수 있습니다. </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-content">
<div class="tabbed-block">
<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></pre></div></td><td class="code"><div><pre><span></span><code><span class="c1">-- 자세한 설명은 예제를 참고하세요</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">Korean</span><span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;{won} 원&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;{won} Won&quot;</span><span class="p">;</span>
<span class="p">})</span>
<span class="n">TextLabel</span> <span class="p">{</span>
<span class="n">Lang</span> <span class="s2">&quot;Test&quot;</span> <span class="p">{</span>
<span class="n">won</span> <span class="o">=</span> <span class="mi">100</span><span class="p">;</span>
<span class="p">};</span>
<span class="p">}</span>
</code></pre></div></td></tr></table></div>
</div>
<div class="tabbed-block">
<p>1초가 지날 때 마다 카운트를 증가합니다. 영어 사용자에겐 영어를, 한국어 사용자에겐 한국어를 보여줍니다.</p>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span> <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"> 2</span>
<span class="normal"> 3</span> <span class="normal"> 3</span>
@ -826,6 +853,9 @@
<span class="n">myStore</span><span class="p">.</span><span class="n">count</span> <span class="o">=</span> <span class="n">myStore</span><span class="p">.</span><span class="n">count</span> <span class="o">+</span> <span class="mi">1</span> <span class="n">myStore</span><span class="p">.</span><span class="n">count</span> <span class="o">=</span> <span class="n">myStore</span><span class="p">.</span><span class="n">count</span> <span class="o">+</span> <span class="mi">1</span>
<span class="kr">end</span> <span class="kr">end</span>
</code></pre></div></td></tr></table></div> </code></pre></div></td></tr></table></div>
</div>
</div>
</div>
<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>

34
md/kr/include/bindable.md Normal file
View file

@ -0,0 +1,34 @@
`#!ts :Fire(...any)`
> 등록된 연결들을 실행하고, `Wait` 을 풀어줍니다.
---
`#!ts :Wait()->(...any)`
> `Fire` 가 호출될 때 까지 기다립니다. `Fire` 에 사용된 값이 반환됩니다.
---
`#!ts :Connect((...any)->())->Connection`
> `Fire` 가 호출 될 때 함수가 실행되도록 만듭니다. `Fire` 에 사용된 값이 호출 인자로 사용됩니다. 연결을 끊을 수 있도록 `Connection` 이 제공됩니다.
---
`#!ts :Once((...any)->())->Connection`
> `Connect` 와 유사하지만, `Fire` 가 한번 호출된 뒤 연결이 끊어집니다/
---
`#!ts :CheckConnected(func)->boolean`
> 함수가 이미 등록되어 있는지 여부를 반환합니다.
---
`#!ts :DisconnectAll()`
> 모든 연결을 끊습니다. `Wait` 으로 기다리고 있는 곳에는 `nil` 을 반환합니다.
---
`#!ts :Destroy()`
> `#!ts :DisconnectAll()` 를 수행한 후, 객체를 더이상 사용할 수 없도록 만듭니다.
> `id` 가 등록되어 있는경우 저장소에서 파기하게 됩니다.

View file

@ -0,0 +1,8 @@
`#!ts :Disconnect()`
> 연결을 끊습니다. `Fire` 가 호출되더라도 `Connect` 혹은 `Once` 에 사용된 함수가 실행되지 않습니다.
---
`#!ts :Destroy()`
> `#!ts :Disconnect()` 의 별칭입니다.

View file

@ -0,0 +1,14 @@
`#!ts :Add(connection:Connection|RBXScriptConnection)`
> `connection`을 리스트에 추가합니다. 나중에 `:Disconnect`를 호출하면 추가된 연결이 파기됩니다.
---
`#!ts :Disconnect()`
> 추가된 모든 연결에 `Disconnect()` 를 수행합니다. 이 호출 후에 추가된 연결은 모두 사라지며. 이 요청 후에도 다시 `:Add` 를 사용할 수 있습니다
> Disconnecter 를 완전히 사용하지 못하도록 하려면 `:Destroy` 를 호출하세요
---
`#!ts :Destroy()`
> `#!ts :Disconnect()` 를 수행한 후, 객체를 더이상 사용할 수 없도록 만듭니다.
> `id` 가 등록되어 있는경우 저장소에서 파기하게 됩니다.

31
md/kr/include/extend.md Normal file
View file

@ -0,0 +1,31 @@
`self(name:string)`
> Extend 메소드 전역에서 사용가능합니다. 링커를 만들며, `PropertyChangedSignal` 를 이어주거나, self 에 원하는 오브젝트를 넣는 용도로 사용됩니다. 자세한 정보는 Render 를 확인해주세요.
---
==REQUIRED== `:Render(props:valueStore)`
<blockquote markdown>
화면에 그려지는 UI 를 만들어지게 하는 함수입니다. `Extend` 가 그려지려면 무조건 있어야합니다.
이 오브젝트를 그리는데 들어간 프로퍼티 목록을 첫번째 인자로 줍니다. 레지스터 문법이 사용될 수 있습니다.
=== 예제
```lua
```
```
</blockquote>
==OPTION== AfterRender
Getter Setter
Update
GetPropertyChangedSignal
EmitPropertyChangedSignal
Unload
self()
UpdateTriggers

View file

@ -1,13 +1,19 @@
`#!ts :Each((item:any, index:number)->())` `#!ts :Each((item:any, index:number)->())`
> 일반적인 반복입니다. for 를 사용하는것과 효과가 같으나 함수를 이용합니다 > 일반적인 반복입니다. for 를 사용하는것과 효과가 같으나 함수를 이용합니다
---
`#!ts :EachAsync((item:any, index:number)->())` `#!ts :EachAsync((item:any, index:number)->())`
> 반환을 기다리지 않고 바로바로 다음 아이템으로 넘어갑니다. > 반환을 기다리지 않고 바로바로 다음 아이템으로 넘어갑니다.
> 코루틴이 이용됩니다. `wrap()` 코루틴을 모르거나, 필요성이 없는경우 일반적으로 `#!ts :Each` 를 사용해도 됩니다 > 코루틴이 이용됩니다. `wrap()` 코루틴을 모르거나, 필요성이 없는경우 일반적으로 `#!ts :Each` 를 사용해도 됩니다
---
`#!ts :IsEmpty()` `#!ts :IsEmpty()`
> 이 ObjectList 가 비어있는지 여부를 반환합니다. > 이 ObjectList 가 비어있는지 여부를 반환합니다.
---
`#!ts :Remove(indexOrItem:number|any)` `#!ts :Remove(indexOrItem:number|any)`
> objectList 에서 해당하는 오브젝트를 제거합니다. > objectList 에서 해당하는 오브젝트를 제거합니다.
> , & 를 사용한 고급 검색에서는 작동하지 않습니다 > , & 를 사용한 고급 검색에서는 작동하지 않습니다

View file

@ -2,9 +2,10 @@
`register` 특수 메소드가 적용되는 순서는 다음과 같습니다. `register` 특수 메소드가 적용되는 순서는 다음과 같습니다.
`#!ts :Add(value:any)->register` `#!ts :Add(value:any)->register`
> 값에 더하기를 취합니다. 음수형태가 제공되는 경우 빼기 처럼 작동합니다. <blockquote markdown>
> `number`, `Udim`, `UDim2`, `Color3`, `Vector2` 등 더할 수 있는 모든것을 사용할 수 있습니다
> *주의 : 구조의 복잡성을 피하고자, 여러번 호출시 가장 마지막 호출된 것만 사용됩니다* 값에 더하기를 취합니다. 음수형태가 제공되는 경우 빼기 처럼 작동합니다.
`number`, `Udim`, `UDim2`, `Color3`, `Vector2` 등 더할 수 있는 모든것을 사용할 수 있습니다
```lua ```lua
-- 용법 -- 용법
local ScreenGUI = script.Parent local ScreenGUI = script.Parent
@ -28,6 +29,9 @@ while true do
task.wait(2) task.wait(2)
end end
``` ```
???+ Warning "주의"
구조의 복잡성을 피하고자, 여러번 호출시 가장 마지막 호출된 것만 사용됩니다
</blockquote>
--- ---

View file

@ -1,5 +1,69 @@
# Signal # Signal - 이벤트 생성과 연결
Quad 에는 편의상의 이유로 ???+ info "읽기 전..."
모듈 설정시 `#!ts .Init()` 처럼 QuadId 란을 비워두는 경우 `Bindable`, `Disconnecter` 기능이 코드를 넘어 공유되지 않습니다
하지만 `#!ts .Init("Project1")` 처럼 아이디를 부여하는 경우 **다른 모듈, 로컬스크립트가 접근하더라도 같은 QuadId 를 가졌다면 `Bindable`, `Disconnecter` 는 공유됩니다**
Quad 에는 편의상의 이유로 로블록스의 `RBXScriptSignal` 의 유사품과, 한번에 시그널을 끊어주는 `Disconnecter` 를 제공합니다.
이는 내부적으로 `Extend``GetPropertyChangedSignal` 같은 곳에서 사용되기도 합니다.
## Bindable
Bindable 은 `RBXScriptSignal` 과 유사한 객체입니다. `#!ts Signal.Bindable.New(id:string?)` 으로 생성할 수 있습니다.
로블록스의 기본 `BindableEvent` 와는 다르게 `:Fire` 가 한곳에 합쳐져 있습니다.
???+ note
만약 `id` 를 지정한 경우, 같은 `id` 를 가진 `Bindable` 이 있으면 이전것을 반환합니다.
```lua
local Quad = require(path.to.module).Init()
local Signal = Quad.Signal
local mySignal = Signal.Bindable.New()
local connection = mySignal:Connect(function(v)
print(v)
end)
mySignal:Fire("이 메시지는 출력되어야 합니다.")
connection:Disconnect()
mySignal:Fire("이 메시지는 출력되면 안됩니다.")
task.spawn(function()
task.wait(5)
mySignal:Fire("이 메시지는 지연된 후 출력되어야 합니다.")
end)
print(mySignal:Wait())
mySignal:Once(function(v)
print(v)
end)
mySignal:Fire("이 메시지는 출력되어야 합니다.")
mySignal:Fire("이 메시지는 출력되면 안됩니다.")
mySignal:Once(function(v)
print(v)
end):Disconnect()
mySignal:Fire("이 메시지는 출력되면 안됩니다.")
```
### Bindable 메소드
`Bindable` 에는 다음과 같은 메소드들이 제공됩니다.
{!include/bindable.md!}
### Connection 메소드
Bindable:Connect 와 Bindable:Once 는 `Connection` 을 반환합니다. `Connection` 에는 다음과 같은 메소드들이 제공됩니다.
{!include/connection.md!}
---
## Disconnecter
`Disconnecter` 는 일종의 `Maid` 모듈과 비슷한 객체입니다. 이 객체에는 `Connection` (로블록스, Quad 모두 호환) 을 추가할 수 있으며, 나중에 추가된 `Connection` 을 한꺼번에 `Disconnect` 할 수 있습니다. `#!ts Signal.Disconnecter.New(id:string?)` 으로 생성할 수 있습니다.
???+ note
만약 `id` 를 지정한 경우, 같은 `id` 를 가진 `Bindable` 이 있으면 이전것을 반환합니다.
{!include/disconnecter.md!}

View file

@ -0,0 +1,158 @@
# Extend - 확장과 재사용
## 나만의 클래스를 만들어보자
Quad 에서는 로블록스의 `Frame` 이나 `TextButton` 같은 기본 오브젝트만 만들 수 있는것이 아닙니다. Quad 는 자신만의 버튼, 혹은 여러 컴포넌트들을 추상적으로 만들고. 다시 활용할 수 있도록 `Extend` 를 지원합니다.
`Extend``Register` 와 더불어 Quad 의 가장 중요한 기능으로써, 다음과 같은 장점을 지닙니다.
> 1. 재사용 가능합니다. 나만의 버튼을 만들고, 고치고 싶은 마음이 생겨 고치면 자동으로 사용된 곳들이 업데이트됩니다.
> 2. 긴 코드를 나누어 코드마다 확실한 목적을 부여해 더 명확한 코드 작성이 가능해집니다.
> 3. 자신만의 프로퍼티를 만들거나 완전히 원하는대로 오브젝트를 커스터마이징 할 수 있습니다.
> 4. 함수나 생성기를 직접 만드는 것 보다 일관된 방법을 제공합니다.
`Extend` 객체는 다음과 같이 생성합니다.
```lua
local Quad = require(path.to.module).Init()
local Class = Quad.Class
-- extend 객체를 만듭니다
local myClass = Class.Extend()
```
일반적으로 Extend 는 한 모듈에 하나씩 넣습니다.
다음과 같은 코드 구조를 만들어보세요.
```
- ScreenGUI
|-- localscript
|-- myClass (ModuleScript)
```
=== "localscript"
```lua
local ScreenGUI = script.Parent
local Quad = require(path.to.module).Init()
local Mount = Quad.Mount
local Class = Quad.Class
local Store = Quad.Store
local myStore = Store.GetStore("myStore")
myStore.bgColor = Color3.fromRGB(0,0,0)
-- Class(require(script.myClass)) 와 같습니다.
-- 줄여서 Class(script.myClass) 로 쓸 수도 있습니다.
local myClass = Class(script.myClass)
-- 프레임에 넣거나 하여도 무방합니다
-- 일반 오브젝트와 똑같이 id 를 넣고 GetObject 로
-- 가져올 수도 있습니다
local main = myClass "main" {
Testing = 1;
Text = "Test";
-- 레지스터 값을 넘겨줄 수도 있습니다.
-- 받는쪽도 레지스터인 경우 값이 연동됩니다.
BackgroundColor3 = myStore "bgColor";
}
Mount(ScreenGUI,main)
print(Store.GetObject("main") == main) -- true
-- 이 값을 바꾸면 연동된 BackgroundColor3 도 바뀔것입니다
myStore.bgColor = Color3.fromRGB(255,255,255)
-- 값 변경됨을 연결하기
main
:GetPropertyChangedSignal("AbsolutePosition")
:Connect(function()
print("AbsolutePosition",main.AbsolutePosition)
end)
-- main:Update()
-- 강제로 다시 Render 를 실행하도록 만듭니다.
```
=== "localscript.myClass"
```lua
local Quad = require(path.to.module).Init()
local Class = Quad.Class
local Event = Quad.Event
local TextLabel = Class "TextLabel"
local myClass = Class.Extend()
-- Init 에는 프로퍼티 리스트가 제공됩니다.
-- Init 는 없더라도 무방합니다.
function myClass:Init(props)
-- 생성된 오브젝트에 프라이빗 값을 만듭니다.
-- 이름 앞에 _ 가 붇으면 외부에서 사용되는 목적이 아닌
-- 내부에서 사용되는 목적으로만 사용할 수 있습니다
-- 이 경우 안전성을 위해 register 를 사용할 수
-- 없습니다.
self._testValue = 2
-- 프로퍼티의 기본값을 정해줄 수 있습니다.
-- 생성 시 값이 누락된 경우 사용할 값을 정해줄 수 있습니다
-- 키, 값 으로 구성합니다
props:Default("Text","Testing Label")
end
-- myClass 가 진짜 그려지는 부분입니다.
-- Render 도 Init 처럼 프로퍼티 리스트가 제공됩니다.
function myClass:Init(props)
return TextLabel {
-- self 에 _label 로 이 TextLabel 을 넣습니다.
-- 자식 오브젝트에도 사용할 수 있는 문법입니다.
self "_label";
-- GetPropertyChangedSignal 가 작동할 수 있도록
-- 프로퍼티 변경 이벤트를 연결해줍니다
-- 이 또한 자식 오브젝트에도 사용할 수 있는 문법입니다.
[Event.Prop "AbsolutePosition"] = self "AbsolutePosition";
-- 마우스 클릭같은 다른 이벤트를 GetPropertyChangedSignal 에
-- 연결하려면 :EmitPropertyChangedSignal() 를 호출해주면 됩니다.
[Event "MouseEnter"] = function (this,x,y)
-- 키, 값이 들어갑니다. 값이 없으면 self[key] 로 대신합니다.
self:EmitPropertyChangedSignal("Testing2",1)
end;
-- 받은 레지스터를 연동합니다.
-- 만약 props.BackgroundColor3 만 사용하면
-- 처음에만 레지스터에서 값을 읽어옵니다.
-- 따라서 값을 변경해도 변경사항이 적용되지 않습니다.
BackgroundColor3 = props "BackgroundColor3";
-- 입력 값과 상관없이 레지스터를 쓸 수 있습니다.
-- 이 경우 main.Text = "New" 처럼 직접 변경하면
-- 그 변경이 적용됩니다.
Text = props "Text";
-- ... 자식을 넣어도 무방합니다.
}
end
-- function myClass:Unload(object)
-- :Destroy 가 호출될 때 사용됩니다. 따로 선언하지 않아도
-- 연결을 모두 끊고 없에주지만 필요한 경우 직접 없에줄 수 있습니다
-- object 는 :Render 가 반환한 값입니다
-- AbsolutePosition 값을 반환할 수 있도록 만듭니다
function myClass.Getter.AbsolutePosition(self)
return self._label.AbsolutePosition
end
-- AbsolutePosition 값을 설정할 수 없도록 만듭니다
function myClass.Setter.AbsolutePosition(self,newValue)
-- 필요한 경우 값을 설정하도록 만들 수 있습니다
error("AbsolutePosition 값은 설정할 수 없습니다")
end
-- main.Testing = 2 다음과 같이 값을 변경하면 오브젝트가
-- 완전히 다시 그려집니다. 즉 업데이트 트리거로 사용합니다.
myClass.UpdateTriggers.Testing = true
-- 만든 클래스를 반환해줍시다.
return myClass
```

View file

@ -3,7 +3,7 @@
## 화면에 UI 를 표시하기 ## 화면에 UI 를 표시하기
일반적으로 *Quad* 모듈에서 모든 Parent 처리는 `#!ts Mount` 를 이용합니다. `#!ts Mount(to:any,...item:any?)->mounts` 함수를 이용하면 다루는 오브젝트가 로블록스 `Instance` 인지, 향후 소개될 Quad 확장 클래스인지 상관없이 알아서 Parent 가 처리됩니다. *Quad* 모듈에서 모든 Parent 처리는 `#!ts Mount` 를 이용합니다. `#!ts Mount(to:any,...item:any?)->mounts` 함수를 이용하면 다루는 오브젝트가 로블록스 `Instance` 인지, 향후 소개될 Quad 확장 클래스인지 상관없이 알아서 Parent 가 처리됩니다.
```lua ```lua
--- StarterGui 안에 ScreenGui 를 넣고 로컬스크립트로 입력해보세요 --- StarterGui 안에 ScreenGui 를 넣고 로컬스크립트로 입력해보세요

View file

@ -112,15 +112,18 @@ end
id 기능을 조금더 고급적인 방법으로 사용할 수도 있습니다. id 기능을 조금더 고급적인 방법으로 사용할 수도 있습니다.
=== 용법 === "용법"
```lua ```lua
Frame "a,b" { -- 두 아이디를 가진 프레임을 생성합니다
Frame "a,b" {}
} -- a 를 가진것과, a 와 b 를 가진것을 가져옵니다
Store.GetObjects("a,a&b"):Each(function(item)
print(item)
end)
``` ```
=== 예제 === "예제"
좀더 직관적인 확인을 위해서 작동시켜보세요. 좀더 직관적인 확인을 위해서 작동시켜보세요.

View file

@ -1,5 +1,5 @@
# 반복되는 속성값을 줄이기 # Style - 속성 값 번들링
???+ info "읽기 전..." ???+ info "읽기 전..."
모듈 설정시 `#!ts .Init()` 처럼 QuadId 란을 비워두는 경우 `Style` 기능이 코드를 넘어 공유되지 않습니다 모듈 설정시 `#!ts .Init()` 처럼 QuadId 란을 비워두는 경우 `Style` 기능이 코드를 넘어 공유되지 않습니다
@ -7,6 +7,8 @@
--- ---
## 반복되는 속성값을 줄이기
Quad 에서는 반복적인 속성들을 줄여 쓸 수 있도록 Style 을 제공합니다. Quad 에서는 반복적인 속성들을 줄여 쓸 수 있도록 Style 을 제공합니다.
```lua ```lua
@ -51,7 +53,11 @@ Mount(ScreenGUI,Store.GetObject("mainFrame"))
`#!ts Style`을 사용하면 많은 양의 속성을 하나에 변수로 집어넣을 수 있습니다. `#!ts Style`을 사용해서 많은 양의 코드를 줄여보세요 `#!ts Style`을 사용하면 많은 양의 속성을 하나에 변수로 집어넣을 수 있습니다. `#!ts Style`을 사용해서 많은 양의 코드를 줄여보세요
또, `#!ts Style`에는 타겟 id를 지정해줄 수 있습니다 ---
## ID 로 타겟을 지정하기
`#!ts Style`에는 `타겟 id`를 지정해줄 수 있습니다
```lua ```lua
local ScreenGUI = script.Parent local ScreenGUI = script.Parent

View file

@ -79,3 +79,5 @@ Quad 에서는 실제로 직접적으로 Tween 을 사용할 일은 적으며
## 트윈 함수 ## 트윈 함수
Quad 의 트윈에는 트윈을 멈추거나 트윈중인지 확인하는 등의 작업을 할 수 있는 여러 함수들이 제공됩니다. Quad 의 트윈에는 트윈을 멈추거나 트윈중인지 확인하는 등의 작업을 할 수 있는 여러 함수들이 제공됩니다.
{!include/tween.md!}

View file

@ -1,5 +1,5 @@
# 언어관리 # Lang - 언어관리
???+ info "읽기 전..." ???+ info "읽기 전..."
모듈 설정시 `#!ts .Init()` 처럼 QuadId 란을 비워두는 경우 `Lang` 기능이 코드를 넘어 공유되지 않습니다 모듈 설정시 `#!ts .Init()` 처럼 QuadId 란을 비워두는 경우 `Lang` 기능이 코드를 넘어 공유되지 않습니다
@ -9,24 +9,45 @@
## 언어관리 ## 언어관리
Quad 에는 귀찮은 언어관리를 자동으로 해주는 기능이 내장되어 있습니다. Quad 에는 귀찮은 언어관리를 자동으로 해주는 기능이 내장되어 있습니다. 이 기능은 register 와 연동해 적은 줄의 코드로 변하는 텍스트도 언어에 맞게 출력되도록 만들 수 있습니다.
이 기능은 register 와 연동해 적은 줄의 코드로 변하는 텍스트도 언어에 맞게 출력되도록 만들 수 있습니다.
```lua 번역 테이블은 `#!ts Lang.New(LangName:string,{ [Locale]: string|(options)->string })` 다음을 이용해 만들 수 있으며.
local ScreenGUI = script.Parent `Lang(LangName:string)(options)` 로 UI 에 적용시킬 수 있습니다.
local Quad = require(path.to.module).Init()
local Store = Quad.Store
local Mount = Quad.Mount
local Event = Quad.Event
local Lang = Quad.Lang
local Class = Quad.Class
local TextButton = Class "TextButton" === "용법"
local myStore = Store.GetStore("myStore") ```lua
myStore.count = 0 -- 자세한 설명은 예제를 참고하세요
Lang.New("Test",{
[Lang.Locales.Korean] = "{won} 원";
[Lang.Locales.Default] = "{won} Won";
})
TextLabel {
Lang "Test" {
won = 100;
};
}
```
Lang.New("TimePassed",{ === "예제 - 다중언어 카운터"
1초가 지날 때 마다 카운트를 증가합니다. 영어 사용자에겐 영어를, 한국어 사용자에겐 한국어를 보여줍니다.
```lua
local ScreenGUI = script.Parent
local Quad = require(path.to.module).Init()
local Store = Quad.Store
local Mount = Quad.Mount
local Event = Quad.Event
local Lang = Quad.Lang
local Class = Quad.Class
local TextButton = Class "TextButton"
local myStore = Store.GetStore("myStore")
myStore.count = 0
Lang.New("TimePassed",{
[Lang.Locales.Korean] = "{count}초 지났어요"; [Lang.Locales.Korean] = "{count}초 지났어요";
[Lang.Locales.Default] = function (options) [Lang.Locales.Default] = function (options)
-- 함수 또한 등록할 수 있습니다. -- 함수 또한 등록할 수 있습니다.
@ -36,9 +57,9 @@ Lang.New("TimePassed",{
return ("%d second passed"):format(options.count) return ("%d second passed"):format(options.count)
end end
end; end;
}) })
TextButton "mainButton" { TextButton "mainButton" {
Size = UDim2.fromOffset(100,100); Size = UDim2.fromOffset(100,100);
Text = Lang "TimePassed" { Text = Lang "TimePassed" {
-- count = 1 일반적인 값도 사용가능합니다 -- count = 1 일반적인 값도 사용가능합니다
@ -52,13 +73,13 @@ TextButton "mainButton" {
Lang.CurrentLocale = Lang.Locales.Default Lang.CurrentLocale = Lang.Locales.Default
end end
end end
} }
Mount(ScreenGUIk,Store.GetObject("mainButton")) Mount(ScreenGUIk,Store.GetObject("mainButton"))
while task.wait(1) do while task.wait(1) do
myStore.count = myStore.count + 1 myStore.count = myStore.count + 1
end end
``` ```
--- ---

View file

@ -123,9 +123,9 @@ function module.init(shared)
local name = linker.name local name = linker.name
if indexType == "number" then if indexType == "number" then
-- set -- set
if rawget(target,name) ~= nil then -- if rawget(target,name) ~= nil then
warn(("%s is exist already. Overwrite it")) -- warn(("%s is exist already. Overwrite it"))
end -- end
rawset(target,name,item) rawset(target,name,item)
-- target[name] = item -- target[name] = item
elseif indexType == "string" then elseif indexType == "string" then
@ -410,6 +410,9 @@ function module.init(shared)
if not thisSignal then if not thisSignal then
return return
end end
if not value then
value = self[propertyName]
end
thisSignal:Fire(value) thisSignal:Fire(value)
end end

View file

@ -35,6 +35,7 @@ function module.init(shared)
pcall(v.Disconnect,v) pcall(v.Disconnect,v)
self[i] = nil self[i] = nil
end end
setmetatable(self,nil)
end end
function disconnecterClass.New(id) function disconnecterClass.New(id)
if id then if id then
@ -59,11 +60,11 @@ function module.init(shared)
function connection:Disconnect(slient) function connection:Disconnect(slient)
local signal = self.signal local signal = self.signal
local onceConnection = signal.onceConnection local onceConnection = signal.onceConnection
local connection = signal.connection local connections = signal.connection
for i,v in pairs(connection) do for i,v in pairs(connections) do
if v.connection == self then if v.connection == self then
remove(connection,i) remove(connections,i)
return return
end end
end end
@ -104,14 +105,23 @@ function module.init(shared)
task.spawn(v.func,...) task.spawn(v.func,...)
end end
end end
function signal:DisconnectAll()
local waitting = self.waitting
self.waitting = {}
self.onceConnection = {}
self.connection = {}
for _,v in pairs(waitting) do
task.spawn(resume,v,nil)
end
end
function signal:Wait() function signal:Wait()
insert(self.waitting,running()) insert(self.waitting,running())
return yield() return yield()
end end
function signal:CheckConnected(func) function signal:CheckConnected(func)
local onceConnection = self.onceConnection local onceConnection = self.onceConnection
local connection = self.connection local connections = self.connection
for _,v in pairs(connection) do for _,v in pairs(connections) do
if v.func == func then if v.func == func then
return true return true
end end
@ -140,16 +150,18 @@ function module.init(shared)
return thisConnection return thisConnection
end end
function signal:Destroy() function signal:Destroy()
self.waitting = nil local id = self.id
self.onceConnection = nil if id then
self.connection = nil signals[id] = nil
end
self:DisconnectAll()
setmetatable(self,nil) setmetatable(self,nil)
end end
function signal.New(id) function signal.New(id)
if id and signals[id] then if id and signals[id] then
return signals[id] return signals[id]
end end
local this = {waitting={},onceConnection={},connection={}} local this = {id=id,waitting={},onceConnection={},connection={}}
setmetatable(this,signal) setmetatable(this,signal)
if id then if id then
signals[id] = this signals[id] = this