返回列表 发帖

网页之多变的滚动字幕特效

<script language="JavaScript">0 J$ |; q7 O3 \0 `
* K: A7 ~; f+ b
<!-- ActiveASCII by Neal Kanodia (please, don't delete this line)
6 |* L5 K, r( I( F0 a, [3 p0 |8 _% d5 n5 H2 v" p# @0 h
function createArr(num) { for(var i = 0; i < num; i++) { this = null } }4 L' @+ X- n6 H
function fillArr(tx,me,ti,wa) { this.text = tx;  this.method = me.toLowerCase();  this.ticks = ti;  this.wait = wa }
; d. o) v  G1 s1 o4 `function block(num,txt,mthod,tcks,wit) { blocks[num] = new fillArr(txt,mthod,tcks,wit) }1 r! ]4 f3 o% {: u% U( O6 b# o; p
function ms(unt) { var sp = "";  for( var i = 1; i <= unt; i++ ) { sp += " " } return(sp) }  t( U4 q9 d' }2 c! J/ }$ x/ Z
function Activate() { if (cblock == max) { cblock = 0;  if (iloop == 0) { loops--;  if (loops == 0) { meth = "0" } else { meth = blocks[cblock].method } } else { meth = blocks[cblock].method } } else { meth = blocks[cblock].method }  M* b* G. ?' `6 c
if (meth == "0") { document.Active.ASCII.value = end }
3 P" }5 J" i- d4 ^5 J$ y+ |" Tif (meth == "display") { Tape = blocks[cblock].text;  Wait = blocks[cblock].wait;  Display() }# T9 D2 o6 t5 C/ \
if (meth == "display center") { Tape = blocks[cblock].text;  Wait = blocks[cblock].wait;  half = Tape.length / 2;  DisplayC() }$ i0 ?( h* m. p4 D. M1 v; y" ~0 _
if (meth == "scroll left") { clen = tlen;  Tape = blocks[cblock].text;  Ticks = blocks[cblock].ticks;  tTicks = Ticks * 2;  ScrollL() }) p' m6 }, o: C; o' D! X/ a
if (meth == "scroll right") { clen = 0 - blocks[cblock].text.length;  Tape = blocks[cblock].text;  Ticks = blocks[cblock].ticks;  tTicks = Ticks * 2;  ScrollR() }: [! u" l* o9 J
if (meth == "scroll lc") { clen = 0 - blocks[cblock].text.length;  Tape = blocks[cblock].text;  Ticks = blocks[cblock].ticks;  Wait = blocks[cblock].wait;  tTicks = Ticks * 2;  half = Tape.length / 2;  ScrollLC() }
, b8 U* ]! T( w3 w+ Dif (meth == "scroll rc") { clen = tlen;  Tape = blocks[cblock].text;  Ticks = blocks[cblock].ticks;  Wait = blocks[cblock].wait;  tTicks = Ticks * 2;  half = Tape.length / 2;  ScrollRC() }
! d0 j6 D5 m. K' uif (meth == "scroll cl") { Tape = blocks[cblock].text;  Ticks = blocks[cblock].ticks;  tTicks = Ticks * 2;  half = Tape.length / 2;  clen = cent - half;  ScrollCL() }
& W9 M3 {$ w6 Jif (meth == "scroll cr") { Tape = blocks[cblock].text;  Ticks = blocks[cblock].ticks;  tTicks = Ticks * 2;  half = Tape.length / 2;  clen = cent - half;  ScrollCR() }$ Z9 d( n5 d7 y* O0 }
if (meth == "slide left") { Tape = blocks[cblock].text;  Ticks = blocks[cblock].ticks;  Wait = blocks[cblock].wait;  cpos = 0;  clet = Tape.charAt(cpos);  clen = tlen;  cstr = "";  SlideL() }
5 w9 |& e/ l* v. B2 aif (meth == "slide lc") { Tape = blocks[cblock].text;  Ticks = blocks[cblock].ticks;  Wait = blocks[cblock].wait;  cpos = Tape.length - 1;  clet = Tape.charAt(cpos);  clen = 0;  cstr = "";  half = Tape.length / 2;  iba = cent - half;  ib = ms(iba);  SlideLC() }, y9 p- u" p: C
if (meth == "slide rc") { Tape = blocks[cblock].text;  Ticks = blocks[cblock].ticks;  Wait = blocks[cblock].wait;  cpos = 0;  clet = Tape.charAt(cpos);  cstr = "";  half = Tape.length / 2;  clen = cent + half;  fs = ms(cent - half);  SlideRC() }6 b& k" p: D/ x- G( H2 y% L
if (meth == "slide cl") { Tape = blocks[cblock].text;  Ticks = blocks[cblock].ticks;  cpos = 0;  clet = Tape.charAt(cpos);  cstr = Tape.substring(1,Tape.length);  half = Tape.length / 2;  clen = cent - half;  iba = 0;  ib = ms(iba);  SlideCL() }* O4 Y+ _- T- `/ ]* B. E' Y
if (meth == "slide cr") { Tape = blocks[cblock].text;  Ticks = blocks[cblock].ticks;  cpos = Tape.length - 1;  clet = Tape.charAt(cpos);  cstr = Tape.substring(0,Tape.length - 1);  half = Tape.length / 2;  clen = 0;  fs = ms(cent - half);  SlideCR() }
% a5 D- c! m- Zif (meth == "slip left") { clen = 0;  Tape = blocks[cblock].text;  Ticks = blocks[cblock].ticks;  SlipL() }% Q3 b. Z4 W" r0 \9 o2 L
if (meth == "slip right") { clen = 0;  Tape = blocks[cblock].text;  Ticks = blocks[cblock].ticks;  SlipR() }
1 q2 Q2 f1 @; C1 o9 h7 mif (meth == "slip letter") { Tape = blocks[cblock].text;  Ticks = blocks[cblock].ticks;  cpos = Tape.length - 1;  clet = Tape.charAt(cpos);  cstr = Tape.substring(0,Tape.length - 1);  clen = 0;  SlipLet() }
  @/ G7 ^) {" ^. g0 Y* q+ m- N5 uif (meth == "split"){ Tape = blocks[cblock].text;  Ticks = blocks[cblock].ticks;  var iii = Tape.length / 2;  if (iii / 2 != Math.ceil(iii / 2)) { Tape = Tape + " " } hstr1 = Tape.substring(0,Tape.length/2);  hstr2 = Tape.substring(Tape.length/2,Tape.length);  tTicks = Ticks * 2;  clen = cent - hstr1.length;  iba = 0;  ib = ms(iba);  Split() }
# o" }4 N; }% e( sif (meth == "merge"){ Tape = blocks[cblock].text;  Ticks = blocks[cblock].ticks;  var iii = Tape.length / 2;  if (iii / 2 != Math.ceil(iii / 2)) { Tape = Tape + " " } hstr1 = Tape.substring(0,Tape.length/2);  hstr2 = Tape.substring(Tape.length/2,Tape.length);  tTicks = Ticks * 2;  clen = 0 - hstr1.length;  iba = tlen;  ib = ms(iba);  Wait = blocks[cblock].wait;  Merge() } }
* w1 W: V7 P/ T( Xfunction Display() { document.Active.ASCII.value = Tape;  cblock++;  timerID = setTimeout("Activate()",Wait) }) @8 u) g% y# \; E( L6 V# K
function DisplayC() { var temp = cent - half;  ini = ms(temp);  document.Active.ASCII.value = ini + Tape;  cblock++;  timerID = setTimeout("Activate()",Wait) }( o! H' `9 E5 M  ^# F* u3 e# l! D* X& Z
function ScrollL() { if (clen >= 0) { ini = ms(clen);  tickered = ini + Tape;  document.Active.ASCII.value = tickered;  clen--;  timerID = setTimeout("ScrollL()",Ticks) } else { beg = 0 - clen;  if (beg == Tape.length) { document.Active.ASCII.value = "";  cblock++;  timerID = setTimeout("Activate()",Ticks) } else { tickered = Tape.substring(beg,tlen);  document.Active.ASCII.value = tickered;  clen--;  timerID = setTimeout("ScrollL()",tTicks) } } }3 k) K; j8 C9 w
function ScrollR() { if (clen >= 0) { if (clen > tlen) { document.Active.ASCII.value = "";  cblock++;  timerID = setTimeout("Activate()",Ticks) } else { ini = ms(clen);  tickered = ini + Tape;  document.Active.ASCII.value = tickered;  clen++;  timerID = setTimeout("ScrollR()",Ticks) } } else { beg = 0 - clen;  tickered = Tape.substring(beg,tlen);  document.Active.ASCII.value = tickered;  clen++;  timerID = setTimeout("ScrollR()",tTicks) } }* O' [# i9 S( b; F9 z' K
function ScrollLC() { if (clen >= 0) { if (cent <= (clen + half)) { cblock++;  timerID = setTimeout("Activate()",Wait) } else { ini = ms(clen);  tickered = ini + Tape;  document.Active.ASCII.value = tickered;  clen++;  timerID = setTimeout("ScrollLC()",Ticks) } } else { beg = 0 - clen;  if (cent <= (clen + half)) { cblock++;  timerID = setTimeout("Activate()",Wait) } else { tickered = Tape.substring(beg,tlen);  document.Active.ASCII.value = tickered;  clen++;  timerID = setTimeout("ScrollLC()",tTicks) } } }
& m9 \' b* i' Q: f' d# Hfunction ScrollRC() { if (clen >= 0) { if (cent >= (clen + half)) { cblock++;  timerID = setTimeout("Activate()",Wait) } else { ini = ms(clen);  tickered = ini + Tape;  document.Active.ASCII.value = tickered;  clen--;  timerID = setTimeout("ScrollRC()",Ticks) } } else { beg = 0 - clen;  if (cent >= (clen + half)) { cblock++;  timerID = setTimeout("Activate()",Wait) } tickered = Tape.substring(beg,tlen);  document.Active.ASCII.value = tickered;  clen--;  timerID = setTimeout("ScrollRC()",tTicks) } }
/ C' t) R" S) W0 B4 [- p7 i# bfunction ScrollCL() { if (clen >= 0) { ini = ms(clen);  tickered = ini + Tape;  document.Active.ASCII.value = tickered;  clen--;  timerID = setTimeout("ScrollCL()",Ticks) } else { beg = 0 - clen;  if (beg >= Tape.length) { document.Active.ASCII.value = "";  cblock++;  timerID = setTimeout("Activate()",Wait) } else { tickered = Tape.substring(beg,tlen);  document.Active.ASCII.value = tickered;  clen--;  timerID = setTimeout("ScrollCL()",tTicks) } } }
0 Z$ a: [  d' L1 C) Kfunction ScrollCR() { if (clen >= 0) { if (clen > tlen) { document.Active.ASCII.value = "";  cblock++;  timerID = setTimeout("Activate()",Wait) } else { ini = ms(clen);  tickered = ini + Tape;  document.Active.ASCII.value = tickered;  clen++;  timerID = setTimeout("ScrollCR()",Ticks) } } else { beg = 0 - clen;  tickered = Tape.substring(beg,tlen);  document.Active.ASCII.value = tickered;  clen++;  timerID = setTimeout("ScrollCR()",tTicks) } }
' i6 I1 r. O* Ifunction SlideL() { if (clen >= 0) { ini = ms(clen);  tickered = cstr + ini + clet;  document.Active.ASCII.value = tickered;  clen -= 3;  timerID = setTimeout("SlideL()",Ticks) } else { document.Active.ASCII.value = cstr + clet;  cstr = document.Active.ASCII.value;  clen = tlen - cstr.length;  cpos++;  clet = Tape.charAt(cpos);  if (clet == " ") { cstr = cstr + " ";  cpos++;  clet = Tape.charAt(cpos) } if (clet == "") { cblock++;  timerID = setTimeout("Activate()",Wait) } else { timerID = setTimeout("SlideL()",Ticks) } } }
+ ^0 C/ E" `. t; U% U- Vfunction SlideLC() { if (clen <= cent - half) { ini = ms(clen);  tickered = ini + clet + ib + cstr;  document.Active.ASCII.value = tickered;  clen += 3;  iba -= 3;  ib = ms(iba);  timerID = setTimeout("SlideLC()",Ticks) } else { iba = cent - half;  ini = ms(iba);  ib = ms(iba);  document.Active.ASCII.value = ini + clet + cstr;  cstr = clet + cstr;  clen = 0;  cpos--;  if (cpos >= 0) { clet = Tape.charAt(cpos);  if (clet == " ") { cstr = " " + cstr;  cpos--;  clet = Tape.charAt(cpos) } timerID = setTimeout("SlideLC()",Ticks) } else { cblock++;  timerID = setTimeout("Activate()",Wait) } } }
# F' C+ K5 f/ \$ r: I+ Ifunction SlideRC() { if (clen >= 0) { ini = ms(clen);  tickered = fs + cstr + ini + clet;  document.Active.ASCII.value = tickered;  clen -= 3;  timerID = setTimeout("SlideRC()",Ticks) } else { clen = cent + half;  cstr += clet;  document.Active.ASCII.value = fs + cstr;  cpos++;  clet = Tape.charAt(cpos);  if (clet == " ") { cstr = cstr + " ";  cpos++;  clet = Tape.charAt(cpos) } if (clet == "") { document.Active.ASCII.value = fs + Tape;  cblock++;  timerID = setTimeout("Activate()",Wait) } else { timerID = setTimeout("SlideRC()",Ticks) } } }
* I2 l0 ~: b$ T, a6 \function SlideCL() { if (clen > 0) { ini = ms(clen);  tickered = ini + clet + ib + cstr;  document.Active.ASCII.value = tickered;  clen -= 3;  iba += 3;  ib = ms(iba);  timerID = setTimeout("SlideCL()",Ticks) } else { iba = 0;  ib = ms(iba);  clen = cent - half;  ini = ms(clen);  document.Active.ASCII.value = ini + cstr;  cstr = cstr.substring(1,Tape.length);  cpos++;  clet = Tape.charAt(cpos);  if (clet == " ") { cstr = cstr.substring(1,Tape.length);  cpos++;  clet = Tape.charAt(cpos) } if (clet == "") { document.Active.ASCII.value = "";  cblock++;  timerID = setTimeout("Activate()",Ticks) } else { timerID = setTimeout("SlideCL()",Ticks) } } }
. a& W. D/ W; x' E$ L" ifunction SlideCR() { if (clen <= cent + half) { ini = ms(clen);  tickered = fs + cstr + ini + clet;  document.Active.ASCII.value = tickered;  clen += 3;  timerID = setTimeout("SlideCR()",Ticks) } else { clen = 0;  document.Active.ASCII.value = fs + cstr;  cstr = cstr.substring(0,cstr.length - 1);  cpos--;  half += 1;  if (cpos >= 0) {                ;  clet = Tape.charAt(cpos);  if (clet == " ") { cstr = cstr.substring(0,cstr.length - 1);  cpos--;  clet = Tape.charAt(cpos) } timerID = setTimeout("SlideCR()",Ticks) } else { cblock++;  timerID = setTimeout("Activate()",Ticks) } } }
0 G% f. m( t' Ofunction SlipR() { if (clen >= 0) { if (clen > tlen) { document.Active.ASCII.value = "";  cblock++;  timerID = setTimeout("Activate()",Ticks) } else { ini = ms(clen);  tickered = ini + Tape;  document.Active.ASCII.value = tickered;  clen++;  timerID = setTimeout("SlipR()",Ticks) } } else { beg = 0 - clen;  tickered = Tape.substring(beg,tlen);  document.Active.ASCII.value = tickered;  clen++;  timerID = setTimeout("SlipR()",Ticks) } }
5 Q( G1 w; _- }; q: R. x4 bfunction SlipL() { if (clen >= 0) { ini = ms(clen);  tickered = ini + Tape;  document.Active.ASCII.value = tickered;  clen--;  timerID = setTimeout("SlipL()",Ticks) } else { beg = 0 - clen;  if (beg == Tape.length) { document.Active.ASCII.value = "";  cblock++;  timerID = setTimeout("Activate()",Ticks) } else { tickered = Tape.substring(beg,tlen);  document.Active.ASCII.value = tickered;  clen--;  timerID = setTimeout("SlipL()",Ticks) } } }
1 M3 F+ G, _) B, Yfunction SlipLet() { if (clen < tlen) { ini = ms(clen);  tickered = cstr + ini + clet;  document.Active.ASCII.value = tickered;  clen += 3;  timerID = setTimeout("SlipLet()",Ticks) } else { clen = 0;  cstr = cstr.substring(0,cstr.length - 1);  cpos--;  if (cpos >= 0) {           ;  clet = Tape.charAt(cpos);  if (clet == " ") { cstr = cstr.substring(0,cstr.length - 1);  cpos--;  clet = Tape.charAt(cpos) } timerID = setTimeout("SlipLet()",Ticks) } else { cblock++;  timerID = setTimeout("Activate()",Ticks) } } }( d8 H. R0 G6 J4 t% D
function Split() { if (clen >= 0) { ini = ms(clen);  tickered = ini + hstr1 + ib + hstr2;  document.Active.ASCII.value = tickered;  clen--;  iba += 2;  ib = ms(iba);  timerID = setTimeout("Split()",Ticks) } else { if (clen <= 0 - hstr1.length) { cblock++;  timerID = setTimeout("Activate()",Ticks) } else { beg = 0 - clen;  tickered = hstr1.substring(beg,tlen);  document.Active.ASCII.value = tickered + ib + hstr2;  clen--;  iba += 2;  ib = ms(iba);  timerID = setTimeout("Split()",tTicks) } } }8 Y9 Q. ]) a/ i3 y
function Merge() { if (clen >= 0) { if (clen > cent - hstr1.length) { tickered = ini + hstr1 + hstr2;  document.Active.ASCII.value = tickered;  cblock++;  timerID = setTimeout("Activate()",Wait) } else { ini = ms(clen);  tickered = ini + hstr1 + ib + hstr2;  document.Active.ASCII.value = tickered;  clen++;  iba -= 2;  ib = ms(iba);  timerID = setTimeout("Merge()",Ticks) } } else { beg = 0 - clen;  tickered = hstr1.substring(beg,tlen);  document.Active.ASCII.value = tickered + ib + hstr2;  clen++;  iba -= 4;  ib = ms(iba);  timerID = setTimeout("Merge()",tTicks) } }
- J  ~4 Y7 {" Y; Q0 u( q/ i* D. W/ t+ X
/////////////////////////////////////////////////////////////////
4 i3 b9 \9 J7 v" T//# User Vars0 u* }+ Q+ i4 O* P  E( Y( R
// Number of blocks (see bottom) to be displayed.4 G" X& P# p& p* {: k! W9 D
// ***COMMON ERROR***: Make sure to set this value according to the. _) j) Q8 q& V" S
// number of blocks (always the last block # + 1)!
* S5 L; {" S% R' z( W5 Gvar max = 18
, }6 J/ X  H& P; _" f
/ h" n- T2 ~# `* {, n9 G// Don't change this!8 T: m/ W" E6 c" h# @
var blocks = new createArr(max)
+ M+ l9 P/ i+ q# a6 K8 T
; I: ~1 S) B) O: _8 h. L// Length of textbox! `, Y: B/ s- x1 a( ^
// ***COMMON ERROR: If you change this or the length of the" W8 y7 y: M. S
// textbox, remember to change the other accordingly.***
; G: `% E' `( \var len = 50
. u- r  m' f+ v* ~" l! [# ]" S7 u. H1 N) ~
// Number of time to loop ALL blocks (use 0 for unlimited)
/ S: y- U  B4 _# D0 D$ \8 Zvar loops = 0' W. P; G7 a% l/ D; g
$ _9 F9 y8 K7 H  ~
// If you set the number of loops, set the final messege
. w; |1 @* m0 Svar end = 'End of "ActiveASCII" by Neal Kanodia.'
, B: P5 [9 ~) x8 t. ]
- M1 V% ^# z8 a// Use this format for each string (starting at 0 until 1 less
6 J8 ~$ n$ E$ w, J* X( B2 b2 ?// than max):
4 H! U- ?6 o+ Q* M// block(#block,"Text to display","Method",#ticks,#wait)2 ^/ _$ _$ ~7 f1 r5 h8 K& j) p( ~
// example: block(0,"1st block.","Scroll Left",25,0)$ _8 t* U# p) Q9 ^
// ***COMMON ERROR***: If you add a block INCREASE MAX BY 1
( x; y1 ?+ f% R3 m) N$ |/ X// ***COMMON ERROR***: If you remove a block DECREASE MAX BY 1
/ T- Z3 l, b0 y# H7 l// ***COMMON ERROR***: Check the spelling of your methods!!!
: k% p+ ^: K% v! f. E/ Ablock(17,"欢迎光临七色风!","display",0,500)- U. i1 X0 U; H) E% D
block(18,"新一代网络商城!","display center",0,500)' |. u6 u' z0 V
block(2,"新一代企业信息系统!","scroll left",25,0)0 p9 [$ Q- `2 @: h3 u. ~
block(3,"全新的自助建站模式!","scroll right",25,0)
( x  T$ _1 R* f6 s9 oblock(4,"欢迎光临七色风!","scroll lc",25,500)# F6 m/ S7 C% T2 `% b% M' u
block(5,"欢迎光临!","scroll rc",25,500)$ a7 A* w  _/ O9 u
block(6,"欢迎光临!","scroll cl",25,0)
+ E! L, B) A- n- }block(7,"欢迎光临!","scroll cr",25,0)
8 L9 ~" K( D, Q& U* |" Bblock(8,"欢迎光临!","slide left",25,500)( P, Y& w9 |& C/ a1 H: K( c4 Z
block(9,"欢迎光临!","slide lc",25,500)
1 [' O2 z% t5 `+ C' hblock(10,"欢迎光临!","slide rc",25,500)
( v5 q; U9 {3 Q' yblock(11,"欢迎光临!","slide cl",25,0)) j' m, s; T! I7 j5 c8 C
block(12,"国内域名:110元!","slide cr",25,0)
, J8 b! Y1 t7 |( N: I" Bblock(13,"国际域名:58元!","slip left",25,0)2 q! K! R( A: S/ \8 a/ t
block(14,"欢迎光临中讯数据!","slip right",25,0)* G# Q8 f8 O" V1 A8 i
block(15,"欢迎您的光临","slip letter",25,0)
$ l8 m; S! T8 J2 p. C, vblock(16,"","display",0,500). i7 M, E. I% k2 q( A
block(0,"欢迎欢迎!","merge",25,1000)
- a+ `7 p, m$ R/ g$ ~block(1,"欢迎!","split",25,0)
9 x; Q1 @; i$ @! z7 H//End User Vars) W- x7 G& ^8 s: ]4 b
/////////////////////////////////////////////////////////////////! w, P% V6 e0 p  c# a+ h
+ E/ @7 g4 Z. K0 U. ?8 y9 j# }: ]
// Don't change!!!
4 s& ^$ @3 o# [var tlen = 2.4 * len. j! N1 \% _8 K) r5 i, _& D! J
var cent = tlen / 2.24 d4 C  ]0 e' p
var clen = null
% Q7 s+ y+ U" D2 Q6 Jvar tickered = null
& }9 A# b. w7 Avar ini = null
, e& w( ^* X! A' Avar iloop = 06 y% G6 \" R5 B& Q5 h' G" N
if (loops == 0) {iloop = 1}
9 F8 b8 U- W5 H, B2 T& @( ^var cblock = 0( E; h  P9 f; Z' m! \$ l, D
var timerID = null# l  _% d# D4 D  |3 L
var beg = null7 J* H$ S3 j; o1 K) q+ j4 q3 j
var clet = null
6 T5 j7 Q7 T( j  f5 M. v9 Nvar cstr = null
/ ~3 }" q* T0 |% pvar cpos = null
9 W/ u1 u2 }% x4 L, pvar ib = null4 e& |' O) b" A; Y( w3 P  z! `
var iba = null
/ y9 H% }: n! fvar fs = null1 U4 x2 Z8 J# n1 ^. e
var hstr1 = null  F% k8 m) y5 P/ Q8 X
var hstr2 = null
8 l, e9 _2 n& I! I& u) K* z<!-- end  -->
4 B  \1 {6 g3 p0 N6 A
8 a0 \2 i) S8 v</script>
' t, B. v- b) C0 J3 M  ]9 z<script language="JavaScript">
' A  ^0 B* E7 r* c$ ?( ^<!--
2 ^) g3 ?) I: P4 x  Udocument.write('<form name="Active" onSubmit="0">')% o3 P* Q5 _) q4 J6 f3 X9 c
document.write('<input type="text" name="ASCII" size="50">')& Y, q6 a7 l, N. s- P
document.write('</form>')# v; _( q* V* U" ^, h3 K
Activate()# z0 y: F& E' x& H" T+ j
<!-- end -->& n9 c( t0 B8 h% q; [+ x. g9 T& I

+ s: E9 R5 ^9 W) h7 m/ b</script>

返回列表
【捌玖网络】已经运行: