<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>bobiscool</title>
  
  
  <link href="/atom.xml" rel="self"/>
  
  <link href="http://yoursite.com/"/>
  <updated>2020-09-18T14:10:00.539Z</updated>
  <id>http://yoursite.com/</id>
  
  <author>
    <name>bobiscool</name>
    
  </author>
  
  <generator uri="https://hexo.io/">Hexo</generator>
  
  <entry>
    <title>PDF全能王 – 在微信小程序里就能进行 PDF 转 Word/Excel/Epub/Mobi、PDF 压缩、编辑等功能</title>
    <link href="http://yoursite.com/2020/06/06/PDF-editor-weapp/"/>
    <id>http://yoursite.com/2020/06/06/PDF-editor-weapp/</id>
    <published>2020-06-06T00:00:00.000Z</published>
    <updated>2020-09-18T14:10:00.539Z</updated>
    
    <content type="html"><![CDATA[<p><a href="https://www.appinn.com/pdf-quannengwang-for-wechat-miniapp/" target="_blank" rel="noopener">PDF 全能王</a> 是一款微信小程序，它可以直接加载微信聊天中的 PDF 文档进行转换，主要功能包括 PDF 转 Word、PDF 编辑、PDF 转电子书等功能<br><img src="https://img3.appinn.net/images/202009/pdfquannengwang.jpg" alt="PDF全能王 - 在微信小程序里就能进行 PDF 转 Word/Excel/Epub/Mobi、PDF 压缩、编辑等功能 1"></p><p>主要功能包括：</p><ul><li>PDF 全能王 是微信小程序端一款功能很全的 PDF 工具箱，</li><li>用户可以打开使用它 编辑 PDF，压缩 PDF，转换 PDF 为其他办公文档格式</li><li>支持转换格式 <strong>docx，xlsx，pptx，txt，epub，mobi，png，jpg</strong> …</li><li>足够轻量，推广阶段完全免费</li><li>在手机端支持编辑 PDF 页面的小程序 </li></ul><p>PDF 全能王 的使用非常方便，打开后会让你选择一个聊天对话，然后能自动加载聊天记录中的文档，比如你通过网页版给<strong>文件传输助手</strong>发了一个 PDF 文档，那么只需要选择文件传输助手然后选择文件就行了，这点上还是非常方便的。</p><p><img src="https://i.loli.net/2020/09/04/jsLZVpbz4EGPR2m.png" alt="PDF全能王 - 在微信小程序里就能进行 PDF 转 Word/Excel/Epub/Mobi、PDF 压缩、编辑等功能 2"></p><p><img src="https://i.loli.net/2020/09/04/JyAwnfXhzicLQKg.png" alt="PDF全能王 - 在微信小程序里就能进行 PDF 转 Word/Excel/Epub/Mobi、PDF 压缩、编辑等功能 3"></p><p>但也注意，由于这个特性，你只能从对话中加载文档，而无法加载本地 PDF 文档，嗯。</p><p>PDF 编辑是这个样子的：</p><p><img src="https://img3.appinn.net/meta/uploads/default/original/2X/4/4709b98e4f519ad74fbf6e7b057fa661dd84fe85.jpeg" alt="PDF全能王 - 在微信小程序里就能进行 PDF 转 Word/Excel/Epub/Mobi、PDF 压缩、编辑等功能 4"></p><p>转换成功后，你会获得一个链接，打开这个链接就会转换后的文档：</p><p><img src="https://i.loli.net/2020/09/04/3StpbVHoYx2RnNC.png" alt="PDF全能王 - 在微信小程序里就能进行 PDF 转 Word/Excel/Epub/Mobi、PDF 压缩、编辑等功能 5"></p><p>关于文件隐私，开发者<a href="https://meta.appinn.net/t/pdf/18786/10?u=qingwa" target="_blank" rel="noopener">是这样</a>回答的：</p><blockquote><p>其实用户上传之后 是到 服务器随机生成的一个临时目录，名字都是随机的，我这边即使拿到了用户的 PDF 也不知道他的文档是干啥的，因为名称全是随机的，而且转换之后，过一段时间，服务器就会自动清除用户文档和转换文档，服务器不会保存用户文档超过1天，并且我这边空间也有限。</p></blockquote><p>最后，附上二维码：</p><p><img src="https://img3.appinn.net/meta/uploads/default/original/2X/1/1bfa1b08c674930215ee4d048d014f4d7b26f7d1.jpeg" alt="PDF全能王 - 在微信小程序里就能进行 PDF 转 Word/Excel/Epub/Mobi、PDF 压缩、编辑等功能 6">PDF全能王小程序二维码</p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;p&gt;&lt;a href=&quot;https://www.appinn.com/pdf-quannengwang-for-wechat-miniapp/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;PDF 全能王&lt;/a&gt; 是一款微信小程序，它可以直接加载微信聊天中的 P
      
    
    </summary>
    
    
    
  </entry>
  
  <entry>
    <title>用wxDraw.js制作酷炫的小程序canvas动画</title>
    <link href="http://yoursite.com/2018/06/08/%E7%94%A8wxDraw.js%E5%88%B6%E4%BD%9C%E9%85%B7%E7%82%AB%E7%9A%84%E5%B0%8F%E7%A8%8B%E5%BA%8Fcanvas%E5%8A%A8%E7%94%BB/"/>
    <id>http://yoursite.com/2018/06/08/%E7%94%A8wxDraw.js%E5%88%B6%E4%BD%9C%E9%85%B7%E7%82%AB%E7%9A%84%E5%B0%8F%E7%A8%8B%E5%BA%8Fcanvas%E5%8A%A8%E7%94%BB/</id>
    <published>2018-06-08T00:00:00.000Z</published>
    <updated>2020-09-18T14:10:00.551Z</updated>
    
    <content type="html"><![CDATA[<p><img src="http://upload-images.jianshu.io/upload_images/1698086-8d7ff1cb9eb05a0a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="wxDraw"></p><h1 id="wxDraw"><a href="#wxDraw" class="headerlink" title="wxDraw"></a>wxDraw</h1><blockquote><p>轻量的小程序canvas动画库</p></blockquote><h2 id="github"><a href="#github" class="headerlink" title="github"></a><a href="https://github.com/bobiscool/wxDraw" target="_blank" rel="noopener">github</a></h2><h2 id="文档"><a href="#文档" class="headerlink" title="文档"></a><a href="http://project.ueflat.xyz/#/" target="_blank" rel="noopener">文档</a></h2><h2 id="是什么"><a href="#是什么" class="headerlink" title="是什么"></a>是什么</h2><p>canvas 是HTML5的一个重要元素，它能够高效的绘制图形，但是过于底层，且粗糙的Api，导致开发者很难使用它来做较为复杂的图形， 而且它的即时绘制无记忆特性，使得它内部的图形并不支持动画更不支持一切交互事件。<br>这样的问题出现在所有支持canvas的客户端上同样出现在 <strong>微信小程序</strong>中的canvas中， 由于小程序由<strong>jsCore</strong>支持，并没有<strong>window对象</strong>，并且canvas的Api与标准的canvas的Api<strong>有所出入</strong>，所以市面上绝大部分canvas库<strong>与它无缘</strong>。<br>而<strong>wxDraw</strong>也就应运而生，专门用于处理小程序上<strong>canvas</strong>的<strong>图形创建</strong>、<strong>图形动画</strong>以及<strong>交互</strong>问题的。</p><h2 id="特性"><a href="#特性" class="headerlink" title="特性"></a>特性</h2><ul><li><strong>简单</strong> 不需要你会canvas,会用jQuery就会使用wxDraw。</li><li><strong>灵活</strong> 所有图形，随时随地都可以进行属性修改、图形添加以及图形销毁。</li><li><strong>事件支持</strong> 小程序支持的事件只要是合理的都支持。</li><li><strong>缓动动画支持</strong> wxDraw支持链式调用动画『就像jQuery的animate一样』，并且支持几乎所有的缓动函数图形创建</li></ul><h2 id="支持图形"><a href="#支持图形" class="headerlink" title="支持图形"></a>支持图形</h2><p>这些图形都可以在演示文件里看到 <a href="https://github.com/bobiscool/wxDraw/tree/master/example" target="_blank" rel="noopener">点这里</a></p><h3 id="rect"><a href="#rect" class="headerlink" title="rect"></a>rect</h3><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">var</span> rect = <span class="keyword">new</span> Shape(<span class="string">'rect'</span>, &#123;<span class="attr">x</span>: <span class="number">60</span>, <span class="attr">y</span>: <span class="number">60</span>, <span class="attr">w</span>: <span class="number">40</span>, <span class="attr">h</span>: <span class="number">40</span>, <span class="attr">fillStyle</span>: <span class="string">"#2FB8AC"</span>, <span class="attr">rotate</span>: <span class="built_in">Math</span>.PI/<span class="number">2</span> &#125;,<span class="string">'mix'</span>, <span class="literal">true</span>);</span><br></pre></td></tr></table></figure><p><img src="http://upload-images.jianshu.io/upload_images/1698086-774186a8e6da82f4?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="rect">rect</p><h3 id="circle"><a href="#circle" class="headerlink" title="circle"></a>circle</h3><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">let</span> circle = <span class="keyword">new</span> Shape(<span class="string">'circle'</span>, &#123; <span class="attr">x</span>: <span class="number">100</span>, <span class="attr">y</span>: <span class="number">100</span>, <span class="attr">r</span>: <span class="number">40</span>, <span class="attr">sA</span>: <span class="built_in">Math</span>.PI/<span class="number">4</span>, <span class="attr">fillStyle</span>: <span class="string">"#C0D860"</span>, <span class="attr">strokeStyle</span>: <span class="string">"#CC333F"</span>, <span class="attr">rotate</span>: <span class="number">20</span>, <span class="attr">lineWidth</span>: <span class="number">0</span>, <span class="attr">needGra</span>: <span class="string">'line'</span>, <span class="attr">gra</span>: [[<span class="number">0</span>, <span class="string">'#00A0B0'</span>], [<span class="number">0.2</span>, <span class="string">'#6A4A3C'</span>], [<span class="number">0.4</span>, <span class="string">'#CC333F'</span>], [<span class="number">0.6</span>, <span class="string">'#EB6841'</span>], [<span class="number">1</span>, <span class="string">'#EDC951'</span>]]&#125;, <span class="string">'fill'</span>, <span class="literal">true</span>)</span><br></pre></td></tr></table></figure><p><img src="http://upload-images.jianshu.io/upload_images/1698086-8a3fdfaf35ad9b05?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt></p><h3 id="polygon"><a href="#polygon" class="headerlink" title="polygon"></a>polygon</h3><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">let</span> polygon = <span class="keyword">new</span> Shape(<span class="string">'polygon'</span>, &#123; <span class="attr">x</span>: <span class="number">200</span>, <span class="attr">y</span>: <span class="number">200</span>, <span class="attr">r</span>: <span class="number">40</span>, <span class="attr">sides</span>: <span class="number">9</span>, <span class="comment">//9边形 fillStyle: "#FC354C", rotate: Math.PI / 4 &#125;, 'mix', true)</span></span><br></pre></td></tr></table></figure><p><img src="http://upload-images.jianshu.io/upload_images/1698086-2b0dacf03c1dd50e?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt></p><h3 id="ellipse"><a href="#ellipse" class="headerlink" title="ellipse"></a>ellipse</h3><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">let</span> ellipse = <span class="keyword">new</span> Shape(<span class="string">'ellipse'</span>, &#123; <span class="attr">x</span>: <span class="number">200</span>, <span class="attr">y</span>: <span class="number">200</span>, <span class="attr">a</span>: <span class="number">40</span>, <span class="attr">b</span>: <span class="number">100</span>, <span class="attr">fillStyle</span>: <span class="string">"#00A0B0"</span>, <span class="attr">rotate</span>: <span class="built_in">Math</span>.PI / <span class="number">7</span> &#125;, <span class="string">'mix'</span>, <span class="literal">true</span>)</span><br></pre></td></tr></table></figure><p><img src="http://upload-images.jianshu.io/upload_images/1698086-91141b090d2cc888?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt></p><h3 id="cshape-「自定义图形」"><a href="#cshape-「自定义图形」" class="headerlink" title="cshape 「自定义图形」"></a>cshape 「自定义图形」</h3><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">let</span> cshape = <span class="keyword">new</span> Shape(<span class="string">'cshape'</span>, &#123; <span class="attr">rotate</span>: <span class="built_in">Math</span>.PI / <span class="number">2</span>, <span class="attr">points</span>: [[<span class="number">70</span>, <span class="number">85</span>], [<span class="number">40</span>, <span class="number">20</span>], [<span class="number">24</span>, <span class="number">46</span>], [<span class="number">2</span>, <span class="number">4</span>], [<span class="number">14</span>, <span class="number">6</span>], [<span class="number">4</span>, <span class="number">46</span>]], <span class="attr">lineWidth</span>: <span class="number">5</span>, <span class="attr">fillStyle</span>: <span class="string">"#00A0B0"</span>, <span class="attr">rotate</span>: <span class="built_in">Math</span>.PI / <span class="number">7</span>, <span class="attr">needGra</span>: <span class="string">'circle'</span>, <span class="attr">smooth</span>:<span class="literal">false</span>, <span class="attr">gra</span>: [[<span class="number">0</span>, <span class="string">'#00A0B0'</span>], [<span class="number">0.2</span>, <span class="string">'#6A4A3C'</span>], [<span class="number">0.4</span>, <span class="string">'#CC333F'</span>], [<span class="number">0.6</span>, <span class="string">'#EB6841'</span>], [<span class="number">1</span>, <span class="string">'#EDC951'</span>]] &#125;, <span class="string">'fill'</span>, <span class="literal">true</span>)</span><br></pre></td></tr></table></figure><p><img src="http://upload-images.jianshu.io/upload_images/1698086-23afc1fcccfc0315?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt></p><h3 id="line"><a href="#line" class="headerlink" title="line"></a>line</h3><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">let</span> line = <span class="keyword">new</span> Shape(<span class="string">'line'</span>, &#123; <span class="attr">points</span>:[[<span class="number">240</span>,<span class="number">373</span>],[<span class="number">11</span>,<span class="number">32</span>],[<span class="number">28</span>,<span class="number">423</span>],[<span class="number">12</span>,<span class="number">105</span>],[<span class="number">203</span>,<span class="number">41</span>],[<span class="number">128</span>,<span class="number">0.06</span>]], <span class="attr">strokeStyle</span>: <span class="string">"#2FB8AC"</span>,<span class="attr">lineWidth</span>:<span class="number">1</span>, <span class="attr">rotate</span>: <span class="number">0</span>, <span class="attr">needShadow</span>: <span class="literal">true</span>,<span class="attr">smooth</span>:<span class="literal">false</span> &#125;, <span class="string">'fill'</span>, <span class="literal">true</span>)</span><br></pre></td></tr></table></figure><p><img src="http://upload-images.jianshu.io/upload_images/1698086-de83c843d407f957?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt></p><h3 id="text"><a href="#text" class="headerlink" title="text"></a>text</h3><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">let</span> text = <span class="keyword">new</span> Shape(<span class="string">'text'</span>, &#123; <span class="attr">x</span>: <span class="number">200</span>, <span class="attr">y</span>: <span class="number">200</span>, <span class="attr">text</span>: <span class="string">"我是测试文字"</span>, <span class="attr">fillStyle</span>: <span class="string">"#E6781E"</span>, <span class="attr">rotate</span>: <span class="built_in">Math</span>.PI / <span class="number">3</span>&#125; <span class="string">'fill'</span>, <span class="literal">true</span>)</span><br></pre></td></tr></table></figure><p><img src="http://upload-images.jianshu.io/upload_images/1698086-c770b49104458cb3?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt></p><h2 id="wxDraw创作的动画演示"><a href="#wxDraw创作的动画演示" class="headerlink" title="wxDraw创作的动画演示"></a>wxDraw创作的动画演示</h2><blockquote><p>这些动画都可以在演示文件里看到 <a href="https://github.com/bobiscool/wxDraw/tree/master/example" target="_blank" rel="noopener">点这里</a></p></blockquote><h3 id="Google"><a href="#Google" class="headerlink" title="Google"></a>Google</h3><p><img src="http://upload-images.jianshu.io/upload_images/1698086-fd3939ba38769d6c?imageMogr2/auto-orient/strip" alt></p><h3 id="贪吃蛇"><a href="#贪吃蛇" class="headerlink" title="贪吃蛇"></a>贪吃蛇</h3><p><img src="http://upload-images.jianshu.io/upload_images/1698086-f82cf35e9301cd39?imageMogr2/auto-orient/strip" alt></p><h3 id="logo演绎"><a href="#logo演绎" class="headerlink" title="logo演绎"></a>logo演绎</h3><p><img src="http://upload-images.jianshu.io/upload_images/1698086-c68a528c3c5cf075?imageMogr2/auto-orient/strip" alt></p><h3 id="rect舞蹈"><a href="#rect舞蹈" class="headerlink" title="rect舞蹈"></a>rect舞蹈</h3><p><img src="http://upload-images.jianshu.io/upload_images/1698086-14d2f108db1a76ad?imageMogr2/auto-orient/strip" alt></p><h3 id="吃豆人"><a href="#吃豆人" class="headerlink" title="吃豆人"></a>吃豆人</h3><p><img src="http://upload-images.jianshu.io/upload_images/1698086-662fa2f0130e59ce?imageMogr2/auto-orient/strip" alt></p><h2 id="wxDraw事件"><a href="#wxDraw事件" class="headerlink" title="wxDraw事件"></a>wxDraw事件</h2><blockquote><p>这些事件都可以在演示文件里看到 <a href="https://github.com/bobiscool/wxDraw/tree/master/example" target="_blank" rel="noopener">点这里</a></p></blockquote><p>支持</p><ul><li>tap</li><li>touchStart</li><li>touchEnd</li><li>touchMove</li><li>longPress</li><li>drag「自定义的事件」</li></ul><h2 id="事件演示"><a href="#事件演示" class="headerlink" title="事件演示"></a>事件演示</h2><p>旁边UI小妹妹亲自示范 😜</p><p><img src="http://upload-images.jianshu.io/upload_images/1698086-01f9652385ed46e4?imageMogr2/auto-orient/strip" alt></p><h3 id="第一视角"><a href="#第一视角" class="headerlink" title="第一视角"></a>第一视角</h3><p><img src="http://upload-images.jianshu.io/upload_images/1698086-40af26935badf570?imageMogr2/auto-orient/strip" alt></p><p><strong>是不是特别简单，特别方便！！！来，老铁们! star走一波！！！</strong></p><p>详细文档还请关注<br><a href="https://github.com/bobiscool/wxDraw" target="_blank" rel="noopener">github</a><br><a href="http://project.ueflat.xyz/#/" target="_blank" rel="noopener">文档</a></p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;p&gt;&lt;img src=&quot;http://upload-images.jianshu.io/upload_images/1698086-8d7ff1cb9eb05a0a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240&quot; 
      
    
    </summary>
    
    
    
  </entry>
  
  <entry>
    <title>听说你要找前端工作，写一个酷炫的动画的简历呗</title>
    <link href="http://yoursite.com/2018/06/07/%E5%90%AC%E8%AF%B4%E4%BD%A0%E8%A6%81%E6%89%BE%E5%89%8D%E7%AB%AF%E5%B7%A5%E4%BD%9C%EF%BC%8C%E5%86%99%E4%B8%80%E4%B8%AA%E9%85%B7%E7%82%AB%E7%9A%84%E5%8A%A8%E7%94%BB%E7%9A%84%E7%AE%80%E5%8E%86%E5%91%97/"/>
    <id>http://yoursite.com/2018/06/07/%E5%90%AC%E8%AF%B4%E4%BD%A0%E8%A6%81%E6%89%BE%E5%89%8D%E7%AB%AF%E5%B7%A5%E4%BD%9C%EF%BC%8C%E5%86%99%E4%B8%80%E4%B8%AA%E9%85%B7%E7%82%AB%E7%9A%84%E5%8A%A8%E7%94%BB%E7%9A%84%E7%AE%80%E5%8E%86%E5%91%97/</id>
    <published>2018-06-07T00:00:00.000Z</published>
    <updated>2020-09-18T14:10:00.551Z</updated>
    
    <content type="html"><![CDATA[<p><img src="http://upload-images.jianshu.io/upload_images/1698086-d92c6b05a19362c5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="这个人就是我！"></p><ul><li>###<a href="https://bobiscool.github.io/Creative-Resume-Of-Karl/" target="_blank" rel="noopener">演示</a></li><li>###<a href="https://github.com/bobiscool/Creative-Resume-Of-Karl" target="_blank" rel="noopener">源码</a></li></ul><p><strong>gihub 求star 求fork</strong>  DEMO 预加载需要改一下，因为我放在服务器上的 所以是http请求  但是 在本地  就成了 file 请求  所以 各位自己改一下</p><p>###如果</p><ul><li>你刚刚学完前端的DOM,BOM</li><li>或者是看完《javascriptDOM编程艺术》这本js里比较优秀的入门书籍</li><li>或者你是应届毕业生想找一份前端的工作，并且。。。你又恰好喜欢做动画。。。O__O “…<br>（算了—哪有那么多或者。。。。）</li></ul><hr><p>此文，不是技术探讨类的文章，只是希望抛砖引玉，看着现在找工作的简历全是模板，模板。。。。<br>既然都想做前端，那就自己操刀写一个呗。</p><hr><p>###灵感：<br>小的时候玩过插卡游戏，大部分都是横屏的，主角单枪匹马穿过重重阻难，最后抱得美人归<br>有的时候想想，人生何尝不是这样呢？小学初中大学？或许还有硕士博士。。。这是学习上的。。<br>事业上，（只说工程师啊 主要不清楚 文科的）初级，中级，高级，资深，一级一级就像打怪一样往上面升级。</p><p><img src="http://upload-images.jianshu.io/upload_images/1698086-b8c576ecc65f9136.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="上上下下左左右右"><br>   人艰不拆。。。何不过得诗意一点，让求职也来个不一样吧。</p><hr><h1 id="制作过程："><a href="#制作过程：" class="headerlink" title="制作过程："></a>制作过程：</h1><h2 id="构思整个动画："><a href="#构思整个动画：" class="headerlink" title="构思整个动画："></a>构思整个动画：</h2><p> 我想的整个动画其实很简单，跟横屏游戏如出一辙，人物运动，背景切换，到了某一个位置就会触发一系列动画，并且开始下一个运动模式，</p><p><img src="http://upload-images.jianshu.io/upload_images/1698086-2d9bff13757b8ed2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="构思动画"></p><p>这是是在构思动画之前，对整个动画布局的构思</p><p>然后就是构思整个动画的细节<br>整个动画 是对个人的一个简介（当然这是对我个人而言  你们完全可以  介绍其他的东西）<br>其实跟演讲或者面试的个人简介是差不多的，要有你好，要有自己的名字，要有自己的爱好以及擅长的地方，但是因为我构思了四个动画场景，所以在哪个地方描述关于自己哪些地方的内容就成了一个问题，不能讲完名字就说自己的项目吧？</p><hr><p>###大地篇<br>由于是开头，所以还是决定，简单介绍一下自己，所以在开头决定介绍自己的基本情况，爱好</p><p><img src="http://upload-images.jianshu.io/upload_images/1698086-0ff3b626c6bd412d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="个人简介"></p><p>对一个人的简介，小心翼翼。。。生怕写错了啥。。 毕竟是求职简历，所以没吹牛。。。（你看  打星最高的是 <strong>健身</strong>）这里只做展示，因为这里还只是构思，还没到设计，颜色搭配那一步呢。</p><p>####总结</p><ul><li>风车弹出 介绍自己 （需要 风车）</li><li>相框出现 介绍家乡（需要 熊猫  相框  竹子）</li><li>建筑堆积起来  出现自己学校的名字</li></ul><hr><p>###海洋篇<br>因为是技术求职简历嘛，那么肯定就会有类似这样的技术打分。。。</p><p><img src="http://upload-images.jianshu.io/upload_images/1698086-8446e5a226784379.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt><br>来源：<a href="http://cv.heeroluo.net/" target="_blank" rel="noopener">罗礼权的简历</a></p><p>而恰好海里面有鱼，可以实现排列的效果，于是有了</p><p><img src="http://upload-images.jianshu.io/upload_images/1698086-230180eab5fc2524.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt></p><p>然而，我现在都上面的技能展示，一点也不满意， 说的都是一些不痛不痒的东西，当时出于写代码写累了所以就<br>随便想了一些内容上去，想想其实这些东西都可以改，倒也没什么。</p><p>####总结</p><ul><li>鱼 各种鱼</li></ul><hr><h3 id="社区篇"><a href="#社区篇" class="headerlink" title="社区篇"></a>社区篇</h3><p>在这里偏重于介绍自己的项目经历，以及社会经历</p><p><img src="http://upload-images.jianshu.io/upload_images/1698086-0881150aca3bdcfd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt></p><h4 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h4><ul><li>这里刚开始没想到该怎么展现。。。  后来决定用车来展现</li></ul><hr><h3 id="天空篇"><a href="#天空篇" class="headerlink" title="天空篇"></a>天空篇</h3><p>这里 还是自我批评。。。 很多人都在吐槽，我作品最后不了了之，因为时间的关系</p><p><img src="http://upload-images.jianshu.io/upload_images/1698086-7175e16010dbd40f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt><br>本来是想在这 火箭升空的过程中 赋诗一首的。。。结果把发射过程调完了，就又没有文思了</p><blockquote><p>O__O “…  但跟多的人吐槽的是，为什么上了太空！！！！！没有联系方式蹦出来！！！！！！！有大瑕疵！！！！！</p></blockquote><p><img src="http://upload-images.jianshu.io/upload_images/1698086-5783039098ee35c5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="silimasei"></p><p>当时我真的没想到需要这个。。。。。。。我就是想让男主 陆海空。。。。走一遭。。</p><h4 id="总结-1"><a href="#总结-1" class="headerlink" title="总结"></a>总结</h4><ul><li>火箭 升空，飞出大气，飞向太空</li></ul><hr><p>##设计篇<br>就放图吧。。。 设计看个人，因为学过画画也算是有点底子</p><p>在最初设计以及布局的时候，我是想用lowPoly效果来做山的 </p><p><img src="http://upload-images.jianshu.io/upload_images/1698086-22e98e99bd94c784.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt><br>C4d制作3d</p><p><img src="http://upload-images.jianshu.io/upload_images/1698086-cbd23eaa410acbfc.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt><br>PS调C4D出的图</p><p><img src="http://upload-images.jianshu.io/upload_images/1698086-cdcb6d5c7770934a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt><br>不过最后效果还是不近人意，所以放弃了</p><p><img src="http://upload-images.jianshu.io/upload_images/1698086-769a4df125273d50.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt></p><p>####然后一一切从简！！！！！</p><p>人物设计：</p><p><img src="http://upload-images.jianshu.io/upload_images/1698086-d4bf37e8d0cbb569.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt></p><p>背景设计：</p><p><img src="http://upload-images.jianshu.io/upload_images/1698086-926a42f3aa10e4f9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt></p><p>搭配调节</p><p><img src="http://upload-images.jianshu.io/upload_images/1698086-2863ef077a2fb0a9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt></p><p>对于一些不容易画的（比如火焰）使用素材</p><p><img src="http://upload-images.jianshu.io/upload_images/1698086-96374cdae8a510ea.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt><br>将火焰素材，自己用ps导成一帧一帧的透明背景火焰（先是ps 导序列图 然后是选色区 删除色区 再导出图片）</p><p>里面的元素设计（最好玩的就是 画自己的学校。。。）</p><p><img src="http://upload-images.jianshu.io/upload_images/1698086-12f6b670dac7abe4.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt></p><p><img src="http://upload-images.jianshu.io/upload_images/1698086-35f938bd0d9f23fc.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt><br>画的像不像！！！</p><hr><h2 id="动画篇"><a href="#动画篇" class="headerlink" title="动画篇"></a>动画篇</h2><p>这一步倒是很简单，但是要你想好了人物动作与环境的搭配才简单，因为如果后期布好局之后把动画放上去有可能有一些地方人物动画与环境动画不太搭配，还要返回这一步。</p><p>有了画好的人物，只需要把它“分尸” 放到DragonBone里面 然后就可以制作你想要的帧动画了。（自己百度怎么用DragonBone）</p><p><img src="http://upload-images.jianshu.io/upload_images/1698086-2dedcc0db89a2af5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt></p><p>导出：</p><p><img src="http://upload-images.jianshu.io/upload_images/1698086-7d656e7eeab8264c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt></p><p>后来改用雪碧图的形式<br>用脚本生成了这样</p><p><img src="http://upload-images.jianshu.io/upload_images/1698086-e65a7d5b99ea0094.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt><br>所以其他的动画部分大部分我都用了这种形式</p><p>给大家推荐 这个脚本，我自己谷歌的。。。神器<br><a href="http://zerosprites.com/" target="_blank" rel="noopener">zerosprites</a></p><hr><h2 id="前端篇"><a href="#前端篇" class="headerlink" title="前端篇"></a>前端篇</h2><p>光有点子是不行的，还得把他实现。。。在前端做动画，当然没有在AE上那么爽，全都是自己一个一个代码的去码，我觉得只要大家有耐心，肯定能完成这个作品。</p><p>####我只讲讲重难点吧<br>1.该怎么布局？<br>我选择的的是 </p><p><img src="http://upload-images.jianshu.io/upload_images/1698086-9eef0796f48b0d45.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="结构"></p><p>可以看到主要的布局在adventure里面<br>依次是 </p><ul><li><p>预加载界面</p></li><li><p>云层（layer-shu-1）</p></li><li><p>横向的层 有很多个 分别代表了不同的深度（远近程度吧），这是为了做视差效果才这样弄的</p><ul><li><p>hen-1 也是云层（与上面那个云层效果不一样  不过最后都没有采用）</p></li><li><p>hen-2  远处的森林</p></li><li><p>hen-3  这是<em>最重要</em>的一层，所有的运动元素都在这一层（除了 开头标题  还有 男主外）</p></li><li><p>hen-4 远山层</p></li><li><p>hen-5 你看见了飞机还有热气球了吗？</p><blockquote><p>hen-6,shu-3是我刚开始预留出来可能后面要加一些动画用的，所以一直没删   </p></blockquote></li></ul></li><li><p>Head层开头的标题（为什么单独放一层，这是因为 我想 刚开始的时候，也是就是人物还没有开始运动的时候，这个标题是一直居中的）</p></li><li><p>keybord层   提示使用空格键</p></li><li><p>fallAnimation 刚开始的下落动画（注意 与后面的运动动画不是同一个。。虽然看上去像是）</p></li><li><p>Karl  ！！！！！！！ 男主在此！！！！</p></li><li><p>stationery 大家是否还记得那个文具铺满的场景  对其实一开始就等在那里的</p></li><li><p>displayword 这里是展示自己想要说的话</p></li><li><p>audio   这个就是后面的后摇音乐的 </p></li></ul><p>里面还有很多子层 但都 写了详细的注释</p><hr><p>#####js篇</p><p>值得注意的地方：</p><ul><li>帧动画控制器</li></ul><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br></pre></td><td class="code"><pre><span class="line"> </span><br><span class="line"> /**</span><br><span class="line"> * 自制了一个帧动画js调用对象</span><br><span class="line"> *</span><br><span class="line"> * @param id     获取对象</span><br><span class="line"> * @param classF   className前缀 </span><br><span class="line"> * @param num    图片的张数</span><br><span class="line"> * @param settime   动画运行快慢</span><br><span class="line"> * @param Callback  当动画完成后 是否有回调? 回调的话就 停止当前动画  继续下一个  如果没有 就进行循环动画</span><br><span class="line"> * @param backnumber    动画第一遍 可能有一个初始化动画  在后面循环的时候可能就没用了</span><br><span class="line"> *          比如火箭发射 初始有一个或图案由小变大的过程</span><br><span class="line"> * @constructor</span><br><span class="line"> */</span><br><span class="line">function C_actor(id,classF,num,settime,Callback,backnumber,startnumber) &#123;</span><br><span class="line">    this.Object=document.getElementById(id);</span><br><span class="line">    this.Onoff = false;</span><br><span class="line">    this.classF = classF;</span><br><span class="line">    this.num = num;</span><br><span class="line">    this.setTime = settime;</span><br><span class="line">    this.callback = Callback;</span><br><span class="line">    this.backnumber = backnumber;</span><br><span class="line">    this.start = startnumber;</span><br><span class="line">    //this.prototype.startAnimation(urlF,urlE,num,settime)</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"></span><br><span class="line">C_actor.prototype.itsleft = function () &#123;</span><br><span class="line">    return $(this.Object).offset().left;</span><br><span class="line">&#125;;</span><br><span class="line"></span><br><span class="line">C_actor.prototype.startAnimation =function () &#123;</span><br><span class="line">    var i= this.start;</span><br><span class="line">    var  that =this;</span><br><span class="line">    that.timer=setInterval(function()&#123;</span><br><span class="line">        i++;</span><br><span class="line">        that.Object.className = that.classF +i;</span><br><span class="line">        // console.log()</span><br><span class="line">        //如果有回调函数那在动画完了之后 关闭动画  开始回调函数</span><br><span class="line">        if(i&gt;=that.num)&#123;</span><br><span class="line"></span><br><span class="line">            if(that.callback) &#123;</span><br><span class="line">                clearInterval(that.timer);</span><br><span class="line">                that.callback();</span><br><span class="line">            &#125;else &#123;</span><br><span class="line">                // if(that.backnumber)&#123;</span><br><span class="line">                //     i=that.backnumber;</span><br><span class="line">                // &#125;else&#123;</span><br><span class="line">                //     clearInterval(that.timer);</span><br><span class="line">                // &#125;</span><br><span class="line">                i = that.start;</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;</span><br><span class="line"></span><br><span class="line">    &#125;,that.setTime)</span><br><span class="line">&#125;;</span><br><span class="line"></span><br><span class="line">var O_meetCar1 = new F_crashActor(&apos;Car1&apos;,function()&#123;</span><br><span class="line">        Baiduyun_Ani();</span><br><span class="line">    F_displayWords(words[5]);</span><br><span class="line">    O_meetBigCar.meet();</span><br><span class="line">&#125;);</span><br></pre></td></tr></table></figure><p>  这个帧动画控制器是基于class也就是改变backgroundPosition来产生动画的，不是更改url（一开始我也是改变url 但是在线的时候频繁改变url导致 页面加载图片加载不过，完全无法产生连贯的动画所以后来全部转成background的形式）</p><ul><li><p>meet函数</p><p>由于整个动画的触发是通过判断人物到了哪个地方 触发哪些动画，所以需要些一个函数来做判断</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br></pre></td><td class="code"><pre><span class="line">   function F_meettheWall(obj,LR,long)&#123;</span><br><span class="line">    if(LR) &#123;</span><br><span class="line"></span><br><span class="line">        var n = parseFloat($(O_karl).offset().left) + long;</span><br><span class="line">        obj.timer = setInterval(function () &#123;</span><br><span class="line">            if (n &lt;= parseFloat($(obj).offset().left) + parseFloat(obj.offsetWidth)) &#123;</span><br><span class="line">                obj.Onoff = false;//如果从右到左 的时候</span><br><span class="line">                clearInterval(obj.timer);</span><br><span class="line">            &#125; else &#123;</span><br><span class="line">                obj.Onoff = true;</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;, 20);</span><br><span class="line">    &#125;else&#123;</span><br><span class="line">        var n = parseFloat($(O_karl).offset().left) +parseFloat(O_karl.offsetWidth) ;</span><br><span class="line">        // console.log(n+&apos;-----------&apos;+parseFloat($(obj).offset().left));</span><br><span class="line">        // console.log(&apos;钢板or火箭&apos;+parseFloat($(obj).offset().left));</span><br><span class="line">        obj.timer = setInterval(function () &#123;</span><br><span class="line">            if (n &gt;= parseFloat($(obj).offset().left)+long ) &#123;</span><br><span class="line">                clearInterval(obj.timer);</span><br><span class="line">                obj.Onoff = false;//如果从左到右 的时候</span><br><span class="line">            &#125; else &#123;</span><br><span class="line">                obj.Onoff = true;</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;, 20);</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure></li></ul><ul><li><p>预加载</p><p>原因很明显，这么多图片。。如果不预加载简直没法看。。。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br></pre></td><td class="code"><pre><span class="line">  function preloadimages(arr)&#123;</span><br><span class="line">    var n=0;</span><br><span class="line">    var arr=(typeof arr!=&quot;object&quot;)? [arr] : arr;  //确保参数总是数组</span><br><span class="line">    for (var i=0; i&lt;arr.length; i++)&#123;</span><br><span class="line">        newimages[i]=new Image();</span><br><span class="line">        newimages[i].index = i;</span><br><span class="line">        newimages[i].src=arr[i];</span><br><span class="line">        newimages[i].onload = function () &#123;</span><br><span class="line">           n++;</span><br><span class="line">            console.log(n);</span><br><span class="line">            progressIb.style.width = n*(500/arr.length)+&apos;px&apos;;</span><br><span class="line">            O_Laocar.style.right = 500-n*(500/arr.length)+&apos;px&apos;;</span><br><span class="line">            O_Laotext.innerHTML = &apos;老司机已经加载了%&apos;+Math.floor(n*100/arr.length);</span><br><span class="line"></span><br><span class="line">            if(n&gt;=arr.length)&#123;</span><br><span class="line">                UPpreloaderDiv();</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure></li></ul><p><img src="http://upload-images.jianshu.io/upload_images/1698086-ba0220e8e407924a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt></p><ul><li>在水里游泳的时候，长按，或者不按 是会上下浮动的。。。</li></ul><h2 id="最后"><a href="#最后" class="headerlink" title="最后"></a>最后</h2><p>说的比较简略，但是重难点已经提出来了，只要大家有耐心去做，一定也可以做出来的。</p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;p&gt;&lt;img src=&quot;http://upload-images.jianshu.io/upload_images/1698086-d92c6b05a19362c5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240&quot; 
      
    
    </summary>
    
    
    
  </entry>
  
</feed>
