diff --git a/fr-plugin-CharCartnoon-1.0/fr-plugin-CharCartnoon-1.0.jar b/fr-plugin-CharCartnoon-1.0/fr-plugin-CharCartnoon-1.0.jar index 812e757..dae3ecd 100644 Binary files a/fr-plugin-CharCartnoon-1.0/fr-plugin-CharCartnoon-1.0.jar and b/fr-plugin-CharCartnoon-1.0/fr-plugin-CharCartnoon-1.0.jar differ diff --git a/fr-plugin-CharCartnoon-1.0/plugin.xml b/fr-plugin-CharCartnoon-1.0/plugin.xml index 212a1cd..41f275a 100644 --- a/fr-plugin-CharCartnoon-1.0/plugin.xml +++ b/fr-plugin-CharCartnoon-1.0/plugin.xml @@ -18,6 +18,7 @@ + \ No newline at end of file diff --git a/install/fr-plugin-CharCartnoon-1.0.zip b/install/fr-plugin-CharCartnoon-1.0.zip index 1154e03..e086ffc 100644 Binary files a/install/fr-plugin-CharCartnoon-1.0.zip and b/install/fr-plugin-CharCartnoon-1.0.zip differ diff --git a/plugin-function-char-cartnoon.iml b/plugin-function-char-cartnoon.iml index 028d5b3..003645f 100644 --- a/plugin-function-char-cartnoon.iml +++ b/plugin-function-char-cartnoon.iml @@ -23,5 +23,6 @@ + \ No newline at end of file diff --git a/plugin.xml b/plugin.xml index 212a1cd..41f275a 100644 --- a/plugin.xml +++ b/plugin.xml @@ -18,6 +18,7 @@ + \ No newline at end of file diff --git a/src/com/fr/plugin/cool/cartnoon/FRCoolGif.java b/src/com/fr/plugin/cool/cartnoon/FRCoolGif.java index 589508b..629dce2 100644 --- a/src/com/fr/plugin/cool/cartnoon/FRCoolGif.java +++ b/src/com/fr/plugin/cool/cartnoon/FRCoolGif.java @@ -2,19 +2,12 @@ package com.fr.plugin.cool.cartnoon; import com.fr.intelli.record.Focus; import com.fr.intelli.record.Original; -import com.fr.log.FineLoggerFactory; -import com.fr.plugin.cool.cartnoon.utils.AnimatedGifEncoder; -import com.fr.plugin.cool.cartnoon.web.ImageViewer; import com.fr.record.analyzer.EnableMetrics; import com.fr.script.AbstractFunction; import com.fr.stable.ColumnRow; import com.fr.stable.fun.Authorize; -import sun.font.FontDesignMetrics; import java.awt.*; -import java.awt.geom.AffineTransform; -import java.awt.image.BufferedImage; -import java.io.ByteArrayOutputStream; @EnableMetrics @Authorize(callSignKey = com.fr.plugin.cool.cartnoon.FunConstants.PLUGIN_ID) diff --git a/src/com/fr/plugin/cool/cartnoon/FREncryptorFunction.java b/src/com/fr/plugin/cool/cartnoon/FREncryptorFunction.java index f52458f..879f1cd 100644 --- a/src/com/fr/plugin/cool/cartnoon/FREncryptorFunction.java +++ b/src/com/fr/plugin/cool/cartnoon/FREncryptorFunction.java @@ -8,7 +8,7 @@ public class FREncryptorFunction extends AbstractFunctionDefContainer { public FunctionDef[] getFunctionDefs() { return new FunctionDef[]{ new FunctionDef("FRCoolGif", "FRCoolGif(varchar1,varchar2,logical3):生成Gif。", FRCoolGif.class.getName()), - + new FunctionDef("FRRollNumber", "FRRollNumber(varchar1,varchar2,logical3):生成Gif。", FRRollNumber.class.getName()), }; } diff --git a/src/com/fr/plugin/cool/cartnoon/FRRollNumber.java b/src/com/fr/plugin/cool/cartnoon/FRRollNumber.java new file mode 100644 index 0000000..a6d6b6f --- /dev/null +++ b/src/com/fr/plugin/cool/cartnoon/FRRollNumber.java @@ -0,0 +1,42 @@ +package com.fr.plugin.cool.cartnoon; + +import com.fr.intelli.record.Focus; +import com.fr.intelli.record.Original; +import com.fr.record.analyzer.EnableMetrics; +import com.fr.script.AbstractFunction; +import com.fr.stable.ColumnRow; +import com.fr.stable.fun.Authorize; + +import java.awt.*; + +@EnableMetrics +@Authorize(callSignKey = FunConstants.PLUGIN_ID) +public class FRRollNumber extends AbstractFunction { + @Override + @Focus(id = FunConstants.PLUGIN_ID, text = "Plugin-Function_FRCoolGif", source = Original.PLUGIN) + public Object run(Object[] args) { + final String text = args[0].toString(); + + int fontsize= Integer.parseInt(args[1].toString()); + String color=args[2].toString(); + return CreateDiv(text,fontsize,color); + + } + + private String CreateDiv(String number,int fontsize,String color){ + String beginText="
"; + String endText="
"; + int numLen=number.length(); + String divText=""; + for (int i = 0; i < numLen; i++) { + final String n = number.charAt(i)+""; + String subDivText=""; + for (int j = 0; j < 12; j++) { + subDivText=subDivText+"
"+n+"
"; + } + divText=divText+ "
" + n + subDivText + "
"; + } + return beginText+divText+endText; + } + +} \ No newline at end of file diff --git a/src/com/fr/plugin/cool/cartnoon/web/CSSLoader.java b/src/com/fr/plugin/cool/cartnoon/web/CSSLoader.java new file mode 100644 index 0000000..c1f39cf --- /dev/null +++ b/src/com/fr/plugin/cool/cartnoon/web/CSSLoader.java @@ -0,0 +1,41 @@ +package com.fr.plugin.cool.cartnoon.web; + +import com.fr.decision.fun.impl.AbstractWebResourceProvider; +import com.fr.intelli.record.Focus; +import com.fr.report.web.ReportMainComponent; +import com.fr.web.struct.Atom; +import com.fr.web.struct.Component; +import com.fr.web.struct.browser.RequestClient; +import com.fr.web.struct.category.ScriptPath; +import com.fr.web.struct.category.StylePath; + +public class CSSLoader extends AbstractWebResourceProvider { + + @Focus(id = "com.fr.plugin.char.cartnoon",text = "字符动画函数") + public Atom[] clients() { + return new Atom[]{ + new Component() { + @Override + public ScriptPath script(RequestClient client) { + return ScriptPath.build( "" ); + } + @Override + public StylePath style(RequestClient client) { + return StylePath.build("com/fr/plugin/cool/cartnoon/web/resource/style.css"); + } + } + }; + + } + + + @Override + public Atom attach() { + return ReportMainComponent.KEY; + } + + @Override + public Atom client() { + return null; + } +} diff --git a/src/com/fr/plugin/cool/cartnoon/web/resource/style.css b/src/com/fr/plugin/cool/cartnoon/web/resource/style.css new file mode 100644 index 0000000..b9ffbad --- /dev/null +++ b/src/com/fr/plugin/cool/cartnoon/web/resource/style.css @@ -0,0 +1,950 @@ +body { + /*display: grid;*/ + /*place-items: center;*/ + /*height: 100vh;*/ + /*background: #323133;*/ + /*font-family: "Quicksand", sans-serif;*/ + /*font-weight: 700;*/ + /*-webkit-perspective: 60rem;*/ + /*perspective: 60rem;*/ + /*-webkit-perspective-origin: 50% 50%;*/ + /*perspective-origin: 50% 50%;*/ + /*overflow: hidden;*/ + --fsize:10vmin; + --fcolor:#ed5565; +} + + +body #user-button { + --user-button-background: #434A54; + --user-button-text: white; +} + +body .text { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +body .text > div { + + display: inline-block; + position: relative; + /*font-size: 10vmin;*/ + font-size: var(--fsize); + color: transparent; + -webkit-transform-origin: center center; + transform-origin: center center; + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; + -webkit-animation: float 4s infinite; + animation: float 4s infinite; +} + +body .text > div:nth-child(1) { + -webkit-animation-delay: -1.5s; + animation-delay: -1.5s; +} + +body .text > div:nth-child(2) { + -webkit-animation-delay: -1s; + animation-delay: -1s; +} + +body .text > div:nth-child(3) { + -webkit-animation-delay: -0.5s; + animation-delay: -0.5s; +} + +body .text > div:nth-child(4) { + -webkit-animation-delay: 0s; + animation-delay: 0s; +} + +body .text > div > div { + position: absolute; + top: 0; + left: 0; + color: white; + text-shadow: 0 0 1px white; +} + +body .text > div > div:not(:nth-child(n+3)), body .text > div > div:not(:nth-last-child(n+3)) { + color: var(--fcolor); + text-shadow: 0 0 1px #ed5565; +} + +body .text > div > div:nth-child(1) { + -webkit-transform: translateZ(-2.9166666667vmin); + transform: translateZ(-2.9166666667vmin); +} + +body .text > div > div:nth-child(2) { + -webkit-transform: translateZ(-2.3333333333vmin); + transform: translateZ(-2.3333333333vmin); +} + +body .text > div > div:nth-child(3) { + -webkit-transform: translateZ(-1.75vmin); + transform: translateZ(-1.75vmin); +} + +body .text > div > div:nth-child(4) { + -webkit-transform: translateZ(-1.1666666667vmin); + transform: translateZ(-1.1666666667vmin); +} + +body .text > div > div:nth-child(5) { + -webkit-transform: translateZ(-0.5833333333vmin); + transform: translateZ(-0.5833333333vmin); +} + +body .text > div > div:nth-child(6) { + -webkit-transform: translateZ(0vmin); + transform: translateZ(0vmin); +} + +body .text > div > div:nth-child(7) { + -webkit-transform: translateZ(0.5833333333vmin); + transform: translateZ(0.5833333333vmin); +} + +body .text > div > div:nth-child(8) { + -webkit-transform: translateZ(1.1666666667vmin); + transform: translateZ(1.1666666667vmin); +} + +body .text > div > div:nth-child(9) { + -webkit-transform: translateZ(1.75vmin); + transform: translateZ(1.75vmin); +} + +body .text > div > div:nth-child(10) { + -webkit-transform: translateZ(2.3333333333vmin); + transform: translateZ(2.3333333333vmin); +} + +body .text > div > div:nth-child(11) { + -webkit-transform: translateZ(2.9166666667vmin); + transform: translateZ(2.9166666667vmin); +} + +body .text > div > div:nth-child(12) { + -webkit-transform: translateZ(3.5vmin); + transform: translateZ(3.5vmin); +} + +@-webkit-keyframes float { + 0% { + -webkit-transform: rotate3d(0, 1, 0, 30deg); + transform: rotate3d(0, 1, 0, 30deg); + } + 1% { + -webkit-transform: rotate3d(0.0627905195, 0.9980267284, 0, 30deg); + transform: rotate3d(0.0627905195, 0.9980267284, 0, 30deg); + } + 2% { + -webkit-transform: rotate3d(0.1253332336, 0.9921147013, 0, 30deg); + transform: rotate3d(0.1253332336, 0.9921147013, 0, 30deg); + } + 3% { + -webkit-transform: rotate3d(0.1873813146, 0.9822872507, 0, 30deg); + transform: rotate3d(0.1873813146, 0.9822872507, 0, 30deg); + } + 4% { + -webkit-transform: rotate3d(0.2486898872, 0.9685831611, 0, 30deg); + transform: rotate3d(0.2486898872, 0.9685831611, 0, 30deg); + } + 5% { + -webkit-transform: rotate3d(0.3090169944, 0.9510565163, 0, 30deg); + transform: rotate3d(0.3090169944, 0.9510565163, 0, 30deg); + } + 6% { + -webkit-transform: rotate3d(0.3681245527, 0.9297764859, 0, 30deg); + transform: rotate3d(0.3681245527, 0.9297764859, 0, 30deg); + } + 7% { + -webkit-transform: rotate3d(0.4257792916, 0.9048270525, 0, 30deg); + transform: rotate3d(0.4257792916, 0.9048270525, 0, 30deg); + } + 8% { + -webkit-transform: rotate3d(0.4817536741, 0.87630668, 0, 30deg); + transform: rotate3d(0.4817536741, 0.87630668, 0, 30deg); + } + 9% { + -webkit-transform: rotate3d(0.535826795, 0.8443279255, 0, 30deg); + transform: rotate3d(0.535826795, 0.8443279255, 0, 30deg); + } + 10% { + -webkit-transform: rotate3d(0.5877852523, 0.8090169944, 0, 30deg); + transform: rotate3d(0.5877852523, 0.8090169944, 0, 30deg); + } + 11% { + -webkit-transform: rotate3d(0.6374239897, 0.7705132428, 0, 30deg); + transform: rotate3d(0.6374239897, 0.7705132428, 0, 30deg); + } + 12% { + -webkit-transform: rotate3d(0.6845471059, 0.7289686274, 0, 30deg); + transform: rotate3d(0.6845471059, 0.7289686274, 0, 30deg); + } + 13% { + -webkit-transform: rotate3d(0.7289686274, 0.6845471059, 0, 30deg); + transform: rotate3d(0.7289686274, 0.6845471059, 0, 30deg); + } + 14% { + -webkit-transform: rotate3d(0.7705132428, 0.6374239897, 0, 30deg); + transform: rotate3d(0.7705132428, 0.6374239897, 0, 30deg); + } + 15% { + -webkit-transform: rotate3d(0.8090169944, 0.5877852523, 0, 30deg); + transform: rotate3d(0.8090169944, 0.5877852523, 0, 30deg); + } + 16% { + -webkit-transform: rotate3d(0.8443279255, 0.535826795, 0, 30deg); + transform: rotate3d(0.8443279255, 0.535826795, 0, 30deg); + } + 17% { + -webkit-transform: rotate3d(0.87630668, 0.4817536741, 0, 30deg); + transform: rotate3d(0.87630668, 0.4817536741, 0, 30deg); + } + 18% { + -webkit-transform: rotate3d(0.9048270525, 0.4257792916, 0, 30deg); + transform: rotate3d(0.9048270525, 0.4257792916, 0, 30deg); + } + 19% { + -webkit-transform: rotate3d(0.9297764859, 0.3681245527, 0, 30deg); + transform: rotate3d(0.9297764859, 0.3681245527, 0, 30deg); + } + 20% { + -webkit-transform: rotate3d(0.9510565163, 0.3090169944, 0, 30deg); + transform: rotate3d(0.9510565163, 0.3090169944, 0, 30deg); + } + 21% { + -webkit-transform: rotate3d(0.9685831611, 0.2486898872, 0, 30deg); + transform: rotate3d(0.9685831611, 0.2486898872, 0, 30deg); + } + 22% { + -webkit-transform: rotate3d(0.9822872507, 0.1873813146, 0, 30deg); + transform: rotate3d(0.9822872507, 0.1873813146, 0, 30deg); + } + 23% { + -webkit-transform: rotate3d(0.9921147013, 0.1253332336, 0, 30deg); + transform: rotate3d(0.9921147013, 0.1253332336, 0, 30deg); + } + 24% { + -webkit-transform: rotate3d(0.9980267284, 0.0627905195, 0, 30deg); + transform: rotate3d(0.9980267284, 0.0627905195, 0, 30deg); + } + 25% { + -webkit-transform: rotate3d(1, 0, 0, 30deg); + transform: rotate3d(1, 0, 0, 30deg); + } + 26% { + -webkit-transform: rotate3d(0.9980267284, -0.0627905195, 0, 30deg); + transform: rotate3d(0.9980267284, -0.0627905195, 0, 30deg); + } + 27% { + -webkit-transform: rotate3d(0.9921147013, -0.1253332336, 0, 30deg); + transform: rotate3d(0.9921147013, -0.1253332336, 0, 30deg); + } + 28% { + -webkit-transform: rotate3d(0.9822872507, -0.1873813146, 0, 30deg); + transform: rotate3d(0.9822872507, -0.1873813146, 0, 30deg); + } + 29% { + -webkit-transform: rotate3d(0.9685831611, -0.2486898872, 0, 30deg); + transform: rotate3d(0.9685831611, -0.2486898872, 0, 30deg); + } + 30% { + -webkit-transform: rotate3d(0.9510565163, -0.3090169944, 0, 30deg); + transform: rotate3d(0.9510565163, -0.3090169944, 0, 30deg); + } + 31% { + -webkit-transform: rotate3d(0.9297764859, -0.3681245527, 0, 30deg); + transform: rotate3d(0.9297764859, -0.3681245527, 0, 30deg); + } + 32% { + -webkit-transform: rotate3d(0.9048270525, -0.4257792916, 0, 30deg); + transform: rotate3d(0.9048270525, -0.4257792916, 0, 30deg); + } + 33% { + -webkit-transform: rotate3d(0.87630668, -0.4817536741, 0, 30deg); + transform: rotate3d(0.87630668, -0.4817536741, 0, 30deg); + } + 34% { + -webkit-transform: rotate3d(0.8443279255, -0.535826795, 0, 30deg); + transform: rotate3d(0.8443279255, -0.535826795, 0, 30deg); + } + 35% { + -webkit-transform: rotate3d(0.8090169944, -0.5877852523, 0, 30deg); + transform: rotate3d(0.8090169944, -0.5877852523, 0, 30deg); + } + 36% { + -webkit-transform: rotate3d(0.7705132428, -0.6374239897, 0, 30deg); + transform: rotate3d(0.7705132428, -0.6374239897, 0, 30deg); + } + 37% { + -webkit-transform: rotate3d(0.7289686274, -0.6845471059, 0, 30deg); + transform: rotate3d(0.7289686274, -0.6845471059, 0, 30deg); + } + 38% { + -webkit-transform: rotate3d(0.6845471059, -0.7289686274, 0, 30deg); + transform: rotate3d(0.6845471059, -0.7289686274, 0, 30deg); + } + 39% { + -webkit-transform: rotate3d(0.6374239897, -0.7705132428, 0, 30deg); + transform: rotate3d(0.6374239897, -0.7705132428, 0, 30deg); + } + 40% { + -webkit-transform: rotate3d(0.5877852523, -0.8090169944, 0, 30deg); + transform: rotate3d(0.5877852523, -0.8090169944, 0, 30deg); + } + 41% { + -webkit-transform: rotate3d(0.535826795, -0.8443279255, 0, 30deg); + transform: rotate3d(0.535826795, -0.8443279255, 0, 30deg); + } + 42% { + -webkit-transform: rotate3d(0.4817536741, -0.87630668, 0, 30deg); + transform: rotate3d(0.4817536741, -0.87630668, 0, 30deg); + } + 43% { + -webkit-transform: rotate3d(0.4257792916, -0.9048270525, 0, 30deg); + transform: rotate3d(0.4257792916, -0.9048270525, 0, 30deg); + } + 44% { + -webkit-transform: rotate3d(0.3681245527, -0.9297764859, 0, 30deg); + transform: rotate3d(0.3681245527, -0.9297764859, 0, 30deg); + } + 45% { + -webkit-transform: rotate3d(0.3090169944, -0.9510565163, 0, 30deg); + transform: rotate3d(0.3090169944, -0.9510565163, 0, 30deg); + } + 46% { + -webkit-transform: rotate3d(0.2486898872, -0.9685831611, 0, 30deg); + transform: rotate3d(0.2486898872, -0.9685831611, 0, 30deg); + } + 47% { + -webkit-transform: rotate3d(0.1873813146, -0.9822872507, 0, 30deg); + transform: rotate3d(0.1873813146, -0.9822872507, 0, 30deg); + } + 48% { + -webkit-transform: rotate3d(0.1253332336, -0.9921147013, 0, 30deg); + transform: rotate3d(0.1253332336, -0.9921147013, 0, 30deg); + } + 49% { + -webkit-transform: rotate3d(0.0627905195, -0.9980267284, 0, 30deg); + transform: rotate3d(0.0627905195, -0.9980267284, 0, 30deg); + } + 50% { + -webkit-transform: rotate3d(0, -0.9999999999, 0, 30deg); + transform: rotate3d(0, -0.9999999999, 0, 30deg); + } + 51% { + -webkit-transform: rotate3d(-0.0627905195, -0.9980267283, 0, 30deg); + transform: rotate3d(-0.0627905195, -0.9980267283, 0, 30deg); + } + 52% { + -webkit-transform: rotate3d(-0.1253332335, -0.9921147011, 0, 30deg); + transform: rotate3d(-0.1253332335, -0.9921147011, 0, 30deg); + } + 53% { + -webkit-transform: rotate3d(-0.1873813145, -0.9822872505, 0, 30deg); + transform: rotate3d(-0.1873813145, -0.9822872505, 0, 30deg); + } + 54% { + -webkit-transform: rotate3d(-0.2486898871, -0.9685831607, 0, 30deg); + transform: rotate3d(-0.2486898871, -0.9685831607, 0, 30deg); + } + 55% { + -webkit-transform: rotate3d(-0.3090169943, -0.9510565157, 0, 30deg); + transform: rotate3d(-0.3090169943, -0.9510565157, 0, 30deg); + } + 56% { + -webkit-transform: rotate3d(-0.3681245525, -0.929776485, 0, 30deg); + transform: rotate3d(-0.3681245525, -0.929776485, 0, 30deg); + } + 57% { + -webkit-transform: rotate3d(-0.4257792914, -0.9048270511, 0, 30deg); + transform: rotate3d(-0.4257792914, -0.9048270511, 0, 30deg); + } + 58% { + -webkit-transform: rotate3d(-0.4817536738, -0.8763066781, 0, 30deg); + transform: rotate3d(-0.4817536738, -0.8763066781, 0, 30deg); + } + 59% { + -webkit-transform: rotate3d(-0.5358267945, -0.8443279226, 0, 30deg); + transform: rotate3d(-0.5358267945, -0.8443279226, 0, 30deg); + } + 60% { + -webkit-transform: rotate3d(-0.5877852516, -0.8090169902, 0, 30deg); + transform: rotate3d(-0.5877852516, -0.8090169902, 0, 30deg); + } + 61% { + -webkit-transform: rotate3d(-0.6374239888, -0.7705132368, 0, 30deg); + transform: rotate3d(-0.6374239888, -0.7705132368, 0, 30deg); + } + 62% { + -webkit-transform: rotate3d(-0.6845471045, -0.7289686189, 0, 30deg); + transform: rotate3d(-0.6845471045, -0.7289686189, 0, 30deg); + } + 63% { + -webkit-transform: rotate3d(-0.7289686253, -0.6845470938, 0, 30deg); + transform: rotate3d(-0.7289686253, -0.6845470938, 0, 30deg); + } + 64% { + -webkit-transform: rotate3d(-0.7705132398, -0.6374239727, 0, 30deg); + transform: rotate3d(-0.7705132398, -0.6374239727, 0, 30deg); + } + 65% { + -webkit-transform: rotate3d(-0.8090169901, -0.5877852283, 0, 30deg); + transform: rotate3d(-0.8090169901, -0.5877852283, 0, 30deg); + } + 66% { + -webkit-transform: rotate3d(-0.8443279194, -0.5358267614, 0, 30deg); + transform: rotate3d(-0.8443279194, -0.5358267614, 0, 30deg); + } + 67% { + -webkit-transform: rotate3d(-0.8763066715, -0.4817536274, 0, 30deg); + transform: rotate3d(-0.8763066715, -0.4817536274, 0, 30deg); + } + 68% { + -webkit-transform: rotate3d(-0.9048270404, -0.425779227, 0, 30deg); + transform: rotate3d(-0.9048270404, -0.425779227, 0, 30deg); + } + 69% { + -webkit-transform: rotate3d(-0.9297764691, -0.3681244637, 0, 30deg); + transform: rotate3d(-0.9297764691, -0.3681244637, 0, 30deg); + } + 70% { + -webkit-transform: rotate3d(-0.9510564929, -0.3090168724, 0, 30deg); + transform: rotate3d(-0.9510564929, -0.3090168724, 0, 30deg); + } + 71% { + -webkit-transform: rotate3d(-0.9685831287, -0.2486897207, 0, 30deg); + transform: rotate3d(-0.9685831287, -0.2486897207, 0, 30deg); + } + 72% { + -webkit-transform: rotate3d(-0.9822872061, -0.1873810883, 0, 30deg); + transform: rotate3d(-0.9822872061, -0.1873810883, 0, 30deg); + } + 73% { + -webkit-transform: rotate3d(-0.9921146401, -0.1253329274, 0, 30deg); + transform: rotate3d(-0.9921146401, -0.1253329274, 0, 30deg); + } + 74% { + -webkit-transform: rotate3d(-0.9980266448, -0.0627901069, 0, 30deg); + transform: rotate3d(-0.9980266448, -0.0627901069, 0, 30deg); + } + 75% { + -webkit-transform: rotate3d(-0.9999998862, 0.0000005537, 0, 30deg); + transform: rotate3d(-0.9999998862, 0.0000005537, 0, 30deg); + } + 76% { + -webkit-transform: rotate3d(-0.9980265742, 0.0627912598, 0, 30deg); + transform: rotate3d(-0.9980265742, 0.0627912598, 0, 30deg); + } + 77% { + -webkit-transform: rotate3d(-0.9921144932, 0.1253342195, 0, 30deg); + transform: rotate3d(-0.9921144932, 0.1253342195, 0, 30deg); + } + 78% { + -webkit-transform: rotate3d(-0.982286971, 0.1873826227, 0, 30deg); + transform: rotate3d(-0.982286971, 0.1873826227, 0, 30deg); + } + 79% { + -webkit-transform: rotate3d(-0.9685827866, 0.2486916166, 0, 30deg); + transform: rotate3d(-0.9685827866, 0.2486916166, 0, 30deg); + } + 80% { + -webkit-transform: rotate3d(-0.9510560166, 0.3090192726, 0, 30deg); + transform: rotate3d(-0.9510560166, 0.3090192726, 0, 30deg); + } + 81% { + -webkit-transform: rotate3d(-0.9297758216, 0.3681275437, 0, 30deg); + transform: rotate3d(-0.9297758216, 0.3681275437, 0, 30deg); + } + 82% { + -webkit-transform: rotate3d(-0.9048261725, 0.425783205, 0, 30deg); + transform: rotate3d(-0.9048261725, 0.425783205, 0, 30deg); + } + 83% { + -webkit-transform: rotate3d(-0.8763055184, 0.4817587777, 0, 30deg); + transform: rotate3d(-0.8763055184, 0.4817587777, 0, 30deg); + } + 84% { + -webkit-transform: rotate3d(-0.8443263971, 0.5358334293, 0, 30deg); + transform: rotate3d(-0.8443263971, 0.5358334293, 0, 30deg); + } + 85% { + -webkit-transform: rotate3d(-0.80901499, 0.5877938496, 0, 30deg); + transform: rotate3d(-0.80901499, 0.5877938496, 0, 30deg); + } + 86% { + -webkit-transform: rotate3d(-0.7705106226, 0.6374350969, 0, 30deg); + transform: rotate3d(-0.7705106226, 0.6374350969, 0, 30deg); + } + 87% { + -webkit-transform: rotate3d(-0.7289652129, 0.6845614127, 0, 30deg); + transform: rotate3d(-0.7289652129, 0.6845614127, 0, 30deg); + } + 88% { + -webkit-transform: rotate3d(-0.6845426698, 0.7289870018, 0, 30deg); + transform: rotate3d(-0.6845426698, 0.7289870018, 0, 30deg); + } + 89% { + -webkit-transform: rotate3d(-0.6374182434, 0.7705367741, 0, 30deg); + transform: rotate3d(-0.6374182434, 0.7705367741, 0, 30deg); + } + 90% { + -webkit-transform: rotate3d(-0.5877778306, 0.8090470459, 0, 30deg); + transform: rotate3d(-0.5877778306, 0.8090470459, 0, 30deg); + } + 91% { + -webkit-transform: rotate3d(-0.5358172367, 0.8443661994, 0, 30deg); + transform: rotate3d(-0.5358172367, 0.8443661994, 0, 30deg); + } + 92% { + -webkit-transform: rotate3d(-0.4817413984, 0.876355296, 0, 30deg); + transform: rotate3d(-0.4817413984, 0.876355296, 0, 30deg); + } + 93% { + -webkit-transform: rotate3d(-0.4257635689, 0.904888644, 0, 30deg); + transform: rotate3d(-0.4257635689, 0.904888644, 0, 30deg); + } + 94% { + -webkit-transform: rotate3d(-0.3681044689, 0.9298543169, 0, 30deg); + transform: rotate3d(-0.3681044689, 0.9298543169, 0, 30deg); + } + 95% { + -webkit-transform: rotate3d(-0.3089914068, 0.9511546228, 0, 30deg); + transform: rotate3d(-0.3089914068, 0.9511546228, 0, 30deg); + } + 96% { + -webkit-transform: rotate3d(-0.2486573708, 0.9687065223, 0, 30deg); + transform: rotate3d(-0.2486573708, 0.9687065223, 0, 30deg); + } + 97% { + -webkit-transform: rotate3d(-0.1873400968, 0.9824419959, 0, 30deg); + transform: rotate3d(-0.1873400968, 0.9824419959, 0, 30deg); + } + 98% { + -webkit-transform: rotate3d(-0.1252811139, 0.9923083591, 0, 30deg); + transform: rotate3d(-0.1252811139, 0.9923083591, 0, 30deg); + } + 99% { + -webkit-transform: rotate3d(-0.062724773, 0.9982685263, 0, 30deg); + transform: rotate3d(-0.062724773, 0.9982685263, 0, 30deg); + } + 100% { + -webkit-transform: rotate3d(0.000082741, 1.000301224, 0, 30deg); + transform: rotate3d(0.000082741, 1.000301224, 0, 30deg); + } +} + +@keyframes float { + 0% { + -webkit-transform: rotate3d(0, 1, 0, 30deg); + transform: rotate3d(0, 1, 0, 30deg); + } + 1% { + -webkit-transform: rotate3d(0.0627905195, 0.9980267284, 0, 30deg); + transform: rotate3d(0.0627905195, 0.9980267284, 0, 30deg); + } + 2% { + -webkit-transform: rotate3d(0.1253332336, 0.9921147013, 0, 30deg); + transform: rotate3d(0.1253332336, 0.9921147013, 0, 30deg); + } + 3% { + -webkit-transform: rotate3d(0.1873813146, 0.9822872507, 0, 30deg); + transform: rotate3d(0.1873813146, 0.9822872507, 0, 30deg); + } + 4% { + -webkit-transform: rotate3d(0.2486898872, 0.9685831611, 0, 30deg); + transform: rotate3d(0.2486898872, 0.9685831611, 0, 30deg); + } + 5% { + -webkit-transform: rotate3d(0.3090169944, 0.9510565163, 0, 30deg); + transform: rotate3d(0.3090169944, 0.9510565163, 0, 30deg); + } + 6% { + -webkit-transform: rotate3d(0.3681245527, 0.9297764859, 0, 30deg); + transform: rotate3d(0.3681245527, 0.9297764859, 0, 30deg); + } + 7% { + -webkit-transform: rotate3d(0.4257792916, 0.9048270525, 0, 30deg); + transform: rotate3d(0.4257792916, 0.9048270525, 0, 30deg); + } + 8% { + -webkit-transform: rotate3d(0.4817536741, 0.87630668, 0, 30deg); + transform: rotate3d(0.4817536741, 0.87630668, 0, 30deg); + } + 9% { + -webkit-transform: rotate3d(0.535826795, 0.8443279255, 0, 30deg); + transform: rotate3d(0.535826795, 0.8443279255, 0, 30deg); + } + 10% { + -webkit-transform: rotate3d(0.5877852523, 0.8090169944, 0, 30deg); + transform: rotate3d(0.5877852523, 0.8090169944, 0, 30deg); + } + 11% { + -webkit-transform: rotate3d(0.6374239897, 0.7705132428, 0, 30deg); + transform: rotate3d(0.6374239897, 0.7705132428, 0, 30deg); + } + 12% { + -webkit-transform: rotate3d(0.6845471059, 0.7289686274, 0, 30deg); + transform: rotate3d(0.6845471059, 0.7289686274, 0, 30deg); + } + 13% { + -webkit-transform: rotate3d(0.7289686274, 0.6845471059, 0, 30deg); + transform: rotate3d(0.7289686274, 0.6845471059, 0, 30deg); + } + 14% { + -webkit-transform: rotate3d(0.7705132428, 0.6374239897, 0, 30deg); + transform: rotate3d(0.7705132428, 0.6374239897, 0, 30deg); + } + 15% { + -webkit-transform: rotate3d(0.8090169944, 0.5877852523, 0, 30deg); + transform: rotate3d(0.8090169944, 0.5877852523, 0, 30deg); + } + 16% { + -webkit-transform: rotate3d(0.8443279255, 0.535826795, 0, 30deg); + transform: rotate3d(0.8443279255, 0.535826795, 0, 30deg); + } + 17% { + -webkit-transform: rotate3d(0.87630668, 0.4817536741, 0, 30deg); + transform: rotate3d(0.87630668, 0.4817536741, 0, 30deg); + } + 18% { + -webkit-transform: rotate3d(0.9048270525, 0.4257792916, 0, 30deg); + transform: rotate3d(0.9048270525, 0.4257792916, 0, 30deg); + } + 19% { + -webkit-transform: rotate3d(0.9297764859, 0.3681245527, 0, 30deg); + transform: rotate3d(0.9297764859, 0.3681245527, 0, 30deg); + } + 20% { + -webkit-transform: rotate3d(0.9510565163, 0.3090169944, 0, 30deg); + transform: rotate3d(0.9510565163, 0.3090169944, 0, 30deg); + } + 21% { + -webkit-transform: rotate3d(0.9685831611, 0.2486898872, 0, 30deg); + transform: rotate3d(0.9685831611, 0.2486898872, 0, 30deg); + } + 22% { + -webkit-transform: rotate3d(0.9822872507, 0.1873813146, 0, 30deg); + transform: rotate3d(0.9822872507, 0.1873813146, 0, 30deg); + } + 23% { + -webkit-transform: rotate3d(0.9921147013, 0.1253332336, 0, 30deg); + transform: rotate3d(0.9921147013, 0.1253332336, 0, 30deg); + } + 24% { + -webkit-transform: rotate3d(0.9980267284, 0.0627905195, 0, 30deg); + transform: rotate3d(0.9980267284, 0.0627905195, 0, 30deg); + } + 25% { + -webkit-transform: rotate3d(1, 0, 0, 30deg); + transform: rotate3d(1, 0, 0, 30deg); + } + 26% { + -webkit-transform: rotate3d(0.9980267284, -0.0627905195, 0, 30deg); + transform: rotate3d(0.9980267284, -0.0627905195, 0, 30deg); + } + 27% { + -webkit-transform: rotate3d(0.9921147013, -0.1253332336, 0, 30deg); + transform: rotate3d(0.9921147013, -0.1253332336, 0, 30deg); + } + 28% { + -webkit-transform: rotate3d(0.9822872507, -0.1873813146, 0, 30deg); + transform: rotate3d(0.9822872507, -0.1873813146, 0, 30deg); + } + 29% { + -webkit-transform: rotate3d(0.9685831611, -0.2486898872, 0, 30deg); + transform: rotate3d(0.9685831611, -0.2486898872, 0, 30deg); + } + 30% { + -webkit-transform: rotate3d(0.9510565163, -0.3090169944, 0, 30deg); + transform: rotate3d(0.9510565163, -0.3090169944, 0, 30deg); + } + 31% { + -webkit-transform: rotate3d(0.9297764859, -0.3681245527, 0, 30deg); + transform: rotate3d(0.9297764859, -0.3681245527, 0, 30deg); + } + 32% { + -webkit-transform: rotate3d(0.9048270525, -0.4257792916, 0, 30deg); + transform: rotate3d(0.9048270525, -0.4257792916, 0, 30deg); + } + 33% { + -webkit-transform: rotate3d(0.87630668, -0.4817536741, 0, 30deg); + transform: rotate3d(0.87630668, -0.4817536741, 0, 30deg); + } + 34% { + -webkit-transform: rotate3d(0.8443279255, -0.535826795, 0, 30deg); + transform: rotate3d(0.8443279255, -0.535826795, 0, 30deg); + } + 35% { + -webkit-transform: rotate3d(0.8090169944, -0.5877852523, 0, 30deg); + transform: rotate3d(0.8090169944, -0.5877852523, 0, 30deg); + } + 36% { + -webkit-transform: rotate3d(0.7705132428, -0.6374239897, 0, 30deg); + transform: rotate3d(0.7705132428, -0.6374239897, 0, 30deg); + } + 37% { + -webkit-transform: rotate3d(0.7289686274, -0.6845471059, 0, 30deg); + transform: rotate3d(0.7289686274, -0.6845471059, 0, 30deg); + } + 38% { + -webkit-transform: rotate3d(0.6845471059, -0.7289686274, 0, 30deg); + transform: rotate3d(0.6845471059, -0.7289686274, 0, 30deg); + } + 39% { + -webkit-transform: rotate3d(0.6374239897, -0.7705132428, 0, 30deg); + transform: rotate3d(0.6374239897, -0.7705132428, 0, 30deg); + } + 40% { + -webkit-transform: rotate3d(0.5877852523, -0.8090169944, 0, 30deg); + transform: rotate3d(0.5877852523, -0.8090169944, 0, 30deg); + } + 41% { + -webkit-transform: rotate3d(0.535826795, -0.8443279255, 0, 30deg); + transform: rotate3d(0.535826795, -0.8443279255, 0, 30deg); + } + 42% { + -webkit-transform: rotate3d(0.4817536741, -0.87630668, 0, 30deg); + transform: rotate3d(0.4817536741, -0.87630668, 0, 30deg); + } + 43% { + -webkit-transform: rotate3d(0.4257792916, -0.9048270525, 0, 30deg); + transform: rotate3d(0.4257792916, -0.9048270525, 0, 30deg); + } + 44% { + -webkit-transform: rotate3d(0.3681245527, -0.9297764859, 0, 30deg); + transform: rotate3d(0.3681245527, -0.9297764859, 0, 30deg); + } + 45% { + -webkit-transform: rotate3d(0.3090169944, -0.9510565163, 0, 30deg); + transform: rotate3d(0.3090169944, -0.9510565163, 0, 30deg); + } + 46% { + -webkit-transform: rotate3d(0.2486898872, -0.9685831611, 0, 30deg); + transform: rotate3d(0.2486898872, -0.9685831611, 0, 30deg); + } + 47% { + -webkit-transform: rotate3d(0.1873813146, -0.9822872507, 0, 30deg); + transform: rotate3d(0.1873813146, -0.9822872507, 0, 30deg); + } + 48% { + -webkit-transform: rotate3d(0.1253332336, -0.9921147013, 0, 30deg); + transform: rotate3d(0.1253332336, -0.9921147013, 0, 30deg); + } + 49% { + -webkit-transform: rotate3d(0.0627905195, -0.9980267284, 0, 30deg); + transform: rotate3d(0.0627905195, -0.9980267284, 0, 30deg); + } + 50% { + -webkit-transform: rotate3d(0, -0.9999999999, 0, 30deg); + transform: rotate3d(0, -0.9999999999, 0, 30deg); + } + 51% { + -webkit-transform: rotate3d(-0.0627905195, -0.9980267283, 0, 30deg); + transform: rotate3d(-0.0627905195, -0.9980267283, 0, 30deg); + } + 52% { + -webkit-transform: rotate3d(-0.1253332335, -0.9921147011, 0, 30deg); + transform: rotate3d(-0.1253332335, -0.9921147011, 0, 30deg); + } + 53% { + -webkit-transform: rotate3d(-0.1873813145, -0.9822872505, 0, 30deg); + transform: rotate3d(-0.1873813145, -0.9822872505, 0, 30deg); + } + 54% { + -webkit-transform: rotate3d(-0.2486898871, -0.9685831607, 0, 30deg); + transform: rotate3d(-0.2486898871, -0.9685831607, 0, 30deg); + } + 55% { + -webkit-transform: rotate3d(-0.3090169943, -0.9510565157, 0, 30deg); + transform: rotate3d(-0.3090169943, -0.9510565157, 0, 30deg); + } + 56% { + -webkit-transform: rotate3d(-0.3681245525, -0.929776485, 0, 30deg); + transform: rotate3d(-0.3681245525, -0.929776485, 0, 30deg); + } + 57% { + -webkit-transform: rotate3d(-0.4257792914, -0.9048270511, 0, 30deg); + transform: rotate3d(-0.4257792914, -0.9048270511, 0, 30deg); + } + 58% { + -webkit-transform: rotate3d(-0.4817536738, -0.8763066781, 0, 30deg); + transform: rotate3d(-0.4817536738, -0.8763066781, 0, 30deg); + } + 59% { + -webkit-transform: rotate3d(-0.5358267945, -0.8443279226, 0, 30deg); + transform: rotate3d(-0.5358267945, -0.8443279226, 0, 30deg); + } + 60% { + -webkit-transform: rotate3d(-0.5877852516, -0.8090169902, 0, 30deg); + transform: rotate3d(-0.5877852516, -0.8090169902, 0, 30deg); + } + 61% { + -webkit-transform: rotate3d(-0.6374239888, -0.7705132368, 0, 30deg); + transform: rotate3d(-0.6374239888, -0.7705132368, 0, 30deg); + } + 62% { + -webkit-transform: rotate3d(-0.6845471045, -0.7289686189, 0, 30deg); + transform: rotate3d(-0.6845471045, -0.7289686189, 0, 30deg); + } + 63% { + -webkit-transform: rotate3d(-0.7289686253, -0.6845470938, 0, 30deg); + transform: rotate3d(-0.7289686253, -0.6845470938, 0, 30deg); + } + 64% { + -webkit-transform: rotate3d(-0.7705132398, -0.6374239727, 0, 30deg); + transform: rotate3d(-0.7705132398, -0.6374239727, 0, 30deg); + } + 65% { + -webkit-transform: rotate3d(-0.8090169901, -0.5877852283, 0, 30deg); + transform: rotate3d(-0.8090169901, -0.5877852283, 0, 30deg); + } + 66% { + -webkit-transform: rotate3d(-0.8443279194, -0.5358267614, 0, 30deg); + transform: rotate3d(-0.8443279194, -0.5358267614, 0, 30deg); + } + 67% { + -webkit-transform: rotate3d(-0.8763066715, -0.4817536274, 0, 30deg); + transform: rotate3d(-0.8763066715, -0.4817536274, 0, 30deg); + } + 68% { + -webkit-transform: rotate3d(-0.9048270404, -0.425779227, 0, 30deg); + transform: rotate3d(-0.9048270404, -0.425779227, 0, 30deg); + } + 69% { + -webkit-transform: rotate3d(-0.9297764691, -0.3681244637, 0, 30deg); + transform: rotate3d(-0.9297764691, -0.3681244637, 0, 30deg); + } + 70% { + -webkit-transform: rotate3d(-0.9510564929, -0.3090168724, 0, 30deg); + transform: rotate3d(-0.9510564929, -0.3090168724, 0, 30deg); + } + 71% { + -webkit-transform: rotate3d(-0.9685831287, -0.2486897207, 0, 30deg); + transform: rotate3d(-0.9685831287, -0.2486897207, 0, 30deg); + } + 72% { + -webkit-transform: rotate3d(-0.9822872061, -0.1873810883, 0, 30deg); + transform: rotate3d(-0.9822872061, -0.1873810883, 0, 30deg); + } + 73% { + -webkit-transform: rotate3d(-0.9921146401, -0.1253329274, 0, 30deg); + transform: rotate3d(-0.9921146401, -0.1253329274, 0, 30deg); + } + 74% { + -webkit-transform: rotate3d(-0.9980266448, -0.0627901069, 0, 30deg); + transform: rotate3d(-0.9980266448, -0.0627901069, 0, 30deg); + } + 75% { + -webkit-transform: rotate3d(-0.9999998862, 0.0000005537, 0, 30deg); + transform: rotate3d(-0.9999998862, 0.0000005537, 0, 30deg); + } + 76% { + -webkit-transform: rotate3d(-0.9980265742, 0.0627912598, 0, 30deg); + transform: rotate3d(-0.9980265742, 0.0627912598, 0, 30deg); + } + 77% { + -webkit-transform: rotate3d(-0.9921144932, 0.1253342195, 0, 30deg); + transform: rotate3d(-0.9921144932, 0.1253342195, 0, 30deg); + } + 78% { + -webkit-transform: rotate3d(-0.982286971, 0.1873826227, 0, 30deg); + transform: rotate3d(-0.982286971, 0.1873826227, 0, 30deg); + } + 79% { + -webkit-transform: rotate3d(-0.9685827866, 0.2486916166, 0, 30deg); + transform: rotate3d(-0.9685827866, 0.2486916166, 0, 30deg); + } + 80% { + -webkit-transform: rotate3d(-0.9510560166, 0.3090192726, 0, 30deg); + transform: rotate3d(-0.9510560166, 0.3090192726, 0, 30deg); + } + 81% { + -webkit-transform: rotate3d(-0.9297758216, 0.3681275437, 0, 30deg); + transform: rotate3d(-0.9297758216, 0.3681275437, 0, 30deg); + } + 82% { + -webkit-transform: rotate3d(-0.9048261725, 0.425783205, 0, 30deg); + transform: rotate3d(-0.9048261725, 0.425783205, 0, 30deg); + } + 83% { + -webkit-transform: rotate3d(-0.8763055184, 0.4817587777, 0, 30deg); + transform: rotate3d(-0.8763055184, 0.4817587777, 0, 30deg); + } + 84% { + -webkit-transform: rotate3d(-0.8443263971, 0.5358334293, 0, 30deg); + transform: rotate3d(-0.8443263971, 0.5358334293, 0, 30deg); + } + 85% { + -webkit-transform: rotate3d(-0.80901499, 0.5877938496, 0, 30deg); + transform: rotate3d(-0.80901499, 0.5877938496, 0, 30deg); + } + 86% { + -webkit-transform: rotate3d(-0.7705106226, 0.6374350969, 0, 30deg); + transform: rotate3d(-0.7705106226, 0.6374350969, 0, 30deg); + } + 87% { + -webkit-transform: rotate3d(-0.7289652129, 0.6845614127, 0, 30deg); + transform: rotate3d(-0.7289652129, 0.6845614127, 0, 30deg); + } + 88% { + -webkit-transform: rotate3d(-0.6845426698, 0.7289870018, 0, 30deg); + transform: rotate3d(-0.6845426698, 0.7289870018, 0, 30deg); + } + 89% { + -webkit-transform: rotate3d(-0.6374182434, 0.7705367741, 0, 30deg); + transform: rotate3d(-0.6374182434, 0.7705367741, 0, 30deg); + } + 90% { + -webkit-transform: rotate3d(-0.5877778306, 0.8090470459, 0, 30deg); + transform: rotate3d(-0.5877778306, 0.8090470459, 0, 30deg); + } + 91% { + -webkit-transform: rotate3d(-0.5358172367, 0.8443661994, 0, 30deg); + transform: rotate3d(-0.5358172367, 0.8443661994, 0, 30deg); + } + 92% { + -webkit-transform: rotate3d(-0.4817413984, 0.876355296, 0, 30deg); + transform: rotate3d(-0.4817413984, 0.876355296, 0, 30deg); + } + 93% { + -webkit-transform: rotate3d(-0.4257635689, 0.904888644, 0, 30deg); + transform: rotate3d(-0.4257635689, 0.904888644, 0, 30deg); + } + 94% { + -webkit-transform: rotate3d(-0.3681044689, 0.9298543169, 0, 30deg); + transform: rotate3d(-0.3681044689, 0.9298543169, 0, 30deg); + } + 95% { + -webkit-transform: rotate3d(-0.3089914068, 0.9511546228, 0, 30deg); + transform: rotate3d(-0.3089914068, 0.9511546228, 0, 30deg); + } + 96% { + -webkit-transform: rotate3d(-0.2486573708, 0.9687065223, 0, 30deg); + transform: rotate3d(-0.2486573708, 0.9687065223, 0, 30deg); + } + 97% { + -webkit-transform: rotate3d(-0.1873400968, 0.9824419959, 0, 30deg); + transform: rotate3d(-0.1873400968, 0.9824419959, 0, 30deg); + } + 98% { + -webkit-transform: rotate3d(-0.1252811139, 0.9923083591, 0, 30deg); + transform: rotate3d(-0.1252811139, 0.9923083591, 0, 30deg); + } + 99% { + -webkit-transform: rotate3d(-0.062724773, 0.9982685263, 0, 30deg); + transform: rotate3d(-0.062724773, 0.9982685263, 0, 30deg); + } + 100% { + -webkit-transform: rotate3d(0.000082741, 1.000301224, 0, 30deg); + transform: rotate3d(0.000082741, 1.000301224, 0, 30deg); + } +} \ No newline at end of file diff --git a/src/com/fr/plugin/cool/cartnoon/web/scroll.png b/src/com/fr/plugin/cool/cartnoon/web/scroll.png deleted file mode 100644 index d9cc10c..0000000 Binary files a/src/com/fr/plugin/cool/cartnoon/web/scroll.png and /dev/null differ