<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="description" content="API docs for the withDeprecatedAnimation method from the Dog class, for the Dart programming language.">
  <title>withDeprecatedAnimation method - Dog class - ex library - Dart API</title>
  <!-- required because all the links are pseudo-absolute -->
  <base href="../..">

  <link href="https://fonts.googleapis.com/css?family=Source+Code+Pro:500,400i,400,300|Source+Sans+Pro:400,300,700" rel="stylesheet">
  <link rel="stylesheet" href="static-assets/github.css">
  <link rel="stylesheet" href="static-assets/styles.css">
  <link rel="icon" href="static-assets/favicon.png">

</head>

<body>

<div id="overlay-under-drawer"></div>

<header id="title">
  <button id="sidenav-left-toggle" type="button">&nbsp;</button>
  <ol class="breadcrumbs gt-separated dark hidden-xs">
    <li><a href="index.html">test_package</a></li>
    <li><a href="ex/ex-library.html">ex</a></li>
    <li><a href="ex/Dog-class.html">Dog</a></li>
    <li class="self-crumb">withDeprecatedAnimation method</li>
  </ol>
  <div class="self-name">withDeprecatedAnimation</div>
  <form class="search navbar-right" role="search">
    <input type="text" id="search-box" autocomplete="off" disabled class="form-control typeahead" placeholder="Loading search...">
  </form>
</header>

<main>

  <div class="col-xs-6 col-sm-3 col-md-2 sidebar sidebar-offcanvas-left">
    <h5>Dog class</h5>
    <ol>
      <li class="section-title"><a href="ex/Dog-class.html#constructors">Constructors</a></li>
      <li><a href="ex/Dog/Dog.html">Dog</a></li>
      <li><a class="deprecated" href="ex/Dog/Dog.deprecatedCreate.html">deprecatedCreate</a></li>
    
      <li class="section-title">
        <a href="ex/Dog-class.html#instance-properties">Properties</a>
      </li>
      <li><a href="ex/Dog/aFinalField.html">aFinalField</a></li>
      <li><a href="ex/Dog/aGetterReturningRandomThings.html">aGetterReturningRandomThings</a></li>
      <li><a href="ex/Dog/aProtectedFinalField.html">aProtectedFinalField</a></li>
      <li><a class="deprecated" href="ex/Dog/deprecatedField.html">deprecatedField</a></li>
      <li><a class="deprecated" href="ex/Dog/deprecatedGetter.html">deprecatedGetter</a></li>
      <li><a class="deprecated" href="ex/Dog/deprecatedSetter.html">deprecatedSetter</a></li>
      <li><a href="ex/Dog/isImplemented.html">isImplemented</a></li>
      <li><a href="ex/Dog/name.html">name</a></li>
      <li class="inherited"><a href="ex/E/hashCode.html">hashCode</a></li>
      <li class="inherited"><a href="ex/E/runtimeType.html">runtimeType</a></li>
    
      <li class="section-title"><a href="ex/Dog-class.html#instance-methods">Methods</a></li>
      <li><a href="ex/Dog/abstractMethod.html">abstractMethod</a></li>
      <li><a href="ex/Dog/foo.html">foo</a></li>
      <li><a class="deprecated" href="ex/Dog/getAnotherClassD.html">getAnotherClassD</a></li>
      <li><a class="deprecated" href="ex/Dog/getClassA.html">getClassA</a></li>
      <li><a href="ex/Dog/testGeneric.html">testGeneric</a></li>
      <li><a href="ex/Dog/testGenericMethod.html">testGenericMethod</a></li>
      <li><a href="ex/Dog/testMethod.html">testMethod</a></li>
      <li><a href="ex/Dog/withAnimation.html">withAnimation</a></li>
      <li><a href="ex/Dog/withAnimationInline.html">withAnimationInline</a></li>
      <li><a href="ex/Dog/withAnimationInOneLineDoc.html">withAnimationInOneLineDoc</a></li>
      <li><a href="ex/Dog/withAnimationOutOfOrder.html">withAnimationOutOfOrder</a></li>
      <li><a href="ex/Dog/withDeprecatedAnimation.html">withDeprecatedAnimation</a></li>
      <li><a href="ex/Dog/withMacro.html">withMacro</a></li>
      <li><a href="ex/Dog/withMacro2.html">withMacro2</a></li>
      <li><a href="ex/Dog/withNamedAnimation.html">withNamedAnimation</a></li>
      <li><a href="ex/Dog/withPrivateMacro.html">withPrivateMacro</a></li>
      <li><a href="ex/Dog/withQuotedNamedAnimation.html">withQuotedNamedAnimation</a></li>
      <li><a href="ex/Dog/withUndefinedMacro.html">withUndefinedMacro</a></li>
      <li class="inherited"><a href="ex/E/noSuchMethod.html">noSuchMethod</a></li>
      <li class="inherited"><a href="ex/E/toString.html">toString</a></li>
    
      <li class="section-title"><a href="ex/Dog-class.html#operators">Operators</a></li>
      <li><a href="ex/Dog/operator_equals.html">operator ==</a></li>
    
      <li class="section-title"><a href="ex/Dog-class.html#static-properties">Static properties</a></li>
      <li><a href="ex/Dog/somethingTasty.html">somethingTasty</a></li>
      <li><a href="ex/Dog/staticGetterSetter.html">staticGetterSetter</a></li>
    
      <li class="section-title"><a href="ex/Dog-class.html#static-methods">Static methods</a></li>
      <li><a class="deprecated" href="ex/Dog/createDog.html">createDog</a></li>
    
      <li class="section-title"><a href="ex/Dog-class.html#constants">Constants</a></li>
      <li><a href="ex/Dog/aName-constant.html">aName</a></li>
      <li><a href="ex/Dog/aStaticConstField-constant.html">aStaticConstField</a></li>
    </ol>
  </div><!--/.sidebar-offcanvas-->

  <div class="col-xs-12 col-sm-9 col-md-8 main-content">
    <h1>withDeprecatedAnimation method</h1>

    <section class="multi-line-signature">
      <span class="returntype">void</span>
      <span class="name ">withDeprecatedAnimation</span>
(<wbr>)
      
    </section>
    <section class="desc markdown">
      <p>Deprecated animation method format.</p><div style="position: relative;">
  <div id="deprecatedAnimation_play_button_" onclick="if (deprecatedAnimation.paused) {
                  deprecatedAnimation.play();
                  this.style.display = 'none';
                } else {
                  deprecatedAnimation.pause();
                  this.style.display = 'block';
                }" style="position:absolute;
              width:100px;
              height:100px;
              z-index:100000;
              background-position: center;
              background-repeat: no-repeat;
              background-image: url(static-assets/play_button.svg);">
  </div>
  <video id="deprecatedAnimation" style="width:100px; height:100px;" onclick="if (this.paused) {
                    this.play();
                    deprecatedAnimation_play_button_.style.display = 'none';
                  } else {
                    this.pause();
                    deprecatedAnimation_play_button_.style.display = 'block';
                  }" loop="">
    <source src="http://host/path/to/video.mp4" type="video/mp4">
  </video>
</div>
<p>More docs</p>
    </section>
    
    

  </div> <!-- /.main-content -->

  <div class="col-xs-6 col-sm-6 col-md-2 sidebar sidebar-offcanvas-right">
  </div><!--/.sidebar-offcanvas-->

</main>

<footer>
  <span class="no-break">
    test_package 0.0.1
  </span>

</footer>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="static-assets/typeahead.bundle.min.js"></script>
<script src="static-assets/highlight.pack.js"></script>
<script src="static-assets/URI.js"></script>
<script src="static-assets/script.js"></script>


</body>

</html>
