Introduction
This is optimised version of a typing feature
Additional Requirements
The requirements beisdes the what is shown in the main page.
Custom code for drawing text to do without G. In this case, we use the version 2
The drawing rectangles as well we do not use G.
Drawing lines as indicator
We have also included some russian characters. Russian characters can be added to stencyl fonts via font editing and keyboard.
All key input have mos gate to prevent unwanted interactions
if(p && mos){//functuon process
}
WARNING
This code uses other codes Stencyl-nator had developed. Copying this code alone without editing will result in errors because the other codes needed do not exist in your project.
Code sections
package scripts;
import com.stencyl.behavior.ActorScript; // all actor behaviors extend ActorScript
class T_loadgame_behav extends ActorScript // which extends Script.
{
public function new (a,b,c){super(b);}
override publuc function init() //when created
{
actor.handlesCollisions = false; //optional optimsation for buttons
this.x = actor.getX(); this.y = actor.getY(); this.w = actor.cacheWidth; this.h = actor.cacheHeight; // this is to get the drawing positions
actor.whenDrawingListeners.push(dwg); // drawing without G
actor.mouseOverListeners.push(mis); // mouse interactions
//add key state listeners - inherited form Script via ActorScript.
addKeyStateListener("a",key_a); addKeyStateListener("b",key_b); addKeyStateListener("c",key_c);
addKeyStateListener("d",key_d);addKeyStateListener("e",key_e); addKeyStateListener("f",key_f); addKeyStateListener("g",key_g); addKeyStateListener("h",key_h); addKeyStateListener("i",key_i);
addKeyStateListener("j",key_j); addKeyStateListener("k",key_k); addKeyStateListener("l",key_l);
addKeyStateListener("m",key_m); addKeyStateListener("n",key_n); addKeyStateListener("o",key_o);
addKeyStateListener("p",key_p); addKeyStateListener("q",key_q); addKeyStateListener("r",key_r);
addKeyStateListener("s",key_s); addKeyStateListener("t",key_t);addKeyStateListener("u",key_u); addKeyStateListener("v",key_v); addKeyStateListener("w",key_w); addKeyStateListener("x",key_x); addKeyStateListener("y",key_y);addKeyStateListener("z",key_z);
//add key listeners for contols.
addKeyStateListener("left",left); addKeyStateListener("right",right); addKeyStateListener("backspace",erase);addKeyStateListener("capslock",capslock); addKeyStateListener("pageup",toggle_russian_mode);
}
public function dwg(u0,u1,u2,u3) // HTML 5 version can run without the useless parameters
{ //but flash cannot
if(this.mos){this.rh.draw(this.x,this.y,this.w,this.h); //hover this.dline.draw(this.x+5+this.pos_px,this.y+30,this.x+5+this.pos_px,this.y+60);}
if(this.caps){this.dtext.drawString("capslock on",this.x + 5,this.y);} else {this.dtext.drawString("capslock off",this.x+5,this.y);}
if(this.russian){this.dtext.drawString("[pageup]russian mode on",this.x + 150,this.y);} else {this.dtext.drawString("[pageup]russian mode off",this.x+150,this.y);}
this.dtext.drawString(this.text,this.x + 5,this.y+30);
}
public function erase(p,r,u0)
{
if(p && this.mos)
{
if(this.pos_int > 0)
{
this.pos_int -=1;
this.pos_px -= this.dtext.fs_char_width[this.text.charCodeAt(this.pos_int)] + this.dtext.lesp; //moves the indicator to the left
this.text = this.text.substring(0,this.pos_int) + this.text.substring(this.pos_int+1,this.text.length);
}
}
}
public function capslock(p,r,u0) //toggle caps lock.
{
if(p && this.mos)
{
if(!(this.caps)){this.caps = true;}
else{this.caps = false;}
}
}
public function key_a(p,r,u0) // press[A]
{
if(p && this.mos)
{
if(this.caps)// capital letters
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "Ф" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "A" + this.text.substring(this.pos_int,this.text.length);
}
else // common letters
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "ф" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "a" + this.text.substring(this.pos_int,this.text.length);
}
this.pos_px += this.dtext.fs_char_width[this.text.charCodeAt(this.pos_int)] + this.dtext.lesp;
this.pos_int +=1;
}
}
public function key_b(p,r,u0) // the functions are the same for the rest of the code just in different keys
{
if(p && this.mos)
{
if(this.caps)
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "И" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "B" + this.text.substring(this.pos_int,this.text.length);
}
else
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "и" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "b" + this.text.substring(this.pos_int,this.text.length);
}
this.pos_px += this.dtext.fs_char_width[this.text.charCodeAt(this.pos_int)] + this.dtext.lesp;
this.pos_int +=1;
}
}
public function key_c(p,r,u0)
{
if(p && this.mos)
{
if(this.caps)
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "С" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "C" + this.text.substring(this.pos_int,this.text.length);
}
else
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "с" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "c" + this.text.substring(this.pos_int,this.text.length);
}
this.pos_px += this.dtext.fs_char_width[this.text.charCodeAt(this.pos_int)] + this.dtext.lesp;
this.pos_int +=1;
}
}
public function key_d(p,r,u0)
{
if(p && this.mos)
{
if(this.caps)
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "В" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "D" + this.text.substring(this.pos_int,this.text.length);
}
else
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "в" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "d" + this.text.substring(this.pos_int,this.text.length);
}
this.pos_px += this.dtext.fs_char_width[this.text.charCodeAt(this.pos_int)] + this.dtext.lesp;
this.pos_int +=1;
}
}
public function key_e(p,r,u0)
{
if(p && this.mos)
{
if(this.caps)
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "У" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "E" + this.text.substring(this.pos_int,this.text.length);
}
else
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "у" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "e" + this.text.substring(this.pos_int,this.text.length);
}
this.pos_px += this.dtext.fs_char_width[this.text.charCodeAt(this.pos_int)] + this.dtext.lesp;
this.pos_int +=1;
}
}
public function key_f(p,r,u0)
{
if(p && this.mos)
{
if(this.caps)
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "А" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "F" + this.text.substring(this.pos_int,this.text.length);
}
else
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "а" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "f" + this.text.substring(this.pos_int,this.text.length);
}
this.pos_px += this.dtext.fs_char_width[this.text.charCodeAt(this.pos_int)] + this.dtext.lesp;
this.pos_int +=1;
}
}
public function key_g(p,r,u0)
{
if(p && this.mos)
{
if(this.caps)
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "П" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "G" + this.text.substring(this.pos_int,this.text.length);
}
else
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "п" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "g" + this.text.substring(this.pos_int,this.text.length);
}
this.pos_px += this.dtext.fs_char_width[this.text.charCodeAt(this.pos_int)] + this.dtext.lesp;
this.pos_int +=1;
}
}
public function key_h(p,r,u0)
{
if(p && this.mos)
{
if(this.caps)
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "Р" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "H" + this.text.substring(this.pos_int,this.text.length);
}
else
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "р" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "h" + this.text.substring(this.pos_int,this.text.length);
}
this.pos_px += this.dtext.fs_char_width[this.text.charCodeAt(this.pos_int)] + this.dtext.lesp;
this.pos_int +=1;
}
}
public function key_i(p,r,u0)
{
if(p && this.mos)
{
if(this.caps)
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "Ш" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "I" + this.text.substring(this.pos_int,this.text.length);
}
else
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "ш" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "i" + this.text.substring(this.pos_int,this.text.length);
}
this.pos_px += this.dtext.fs_char_width[this.text.charCodeAt(this.pos_int)] + this.dtext.lesp;
this.pos_int +=1;
}
}
public function key_j(p,r,u0)
{
if(p && this.mos)
{
if(this.caps)
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "О" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "J" + this.text.substring(this.pos_int,this.text.length);
}
else
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "о" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "j" + this.text.substring(this.pos_int,this.text.length);
}
this.pos_px += this.dtext.fs_char_width[this.text.charCodeAt(this.pos_int)] + this.dtext.lesp;
this.pos_int +=1;
}
}
public function key_k(p,r,u0)
{
if(p && this.mos)
{
if(this.caps)
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "Л" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "K" + this.text.substring(this.pos_int,this.text.length);
}
else
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "л" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "k" + this.text.substring(this.pos_int,this.text.length);
}
this.pos_px += this.dtext.fs_char_width[this.text.charCodeAt(this.pos_int)] + this.dtext.lesp;
this.pos_int +=1;
}
}
public function key_l(p,r,u0)
{
if(p && this.mos)
{
if(this.caps)
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "Д" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "L" + this.text.substring(this.pos_int,this.text.length);
}
else
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "д" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "l" + this.text.substring(this.pos_int,this.text.length);
}
this.pos_px += this.dtext.fs_char_width[this.text.charCodeAt(this.pos_int)] + this.dtext.lesp;
this.pos_int +=1;
}
}
public function key_m(p,r,u0)
{
if(p && this.mos)
{
if(this.caps)
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "Ь" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "M" + this.text.substring(this.pos_int,this.text.length);
}
else
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "ь" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "m" + this.text.substring(this.pos_int,this.text.length);
}
this.pos_px += this.dtext.fs_char_width[this.text.charCodeAt(this.pos_int)] + this.dtext.lesp;
this.pos_int +=1;
}
}
public function key_n(p,r,u0)
{
if(p && this.mos)
{
if(this.caps)
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "Т" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "N" + this.text.substring(this.pos_int,this.text.length);
}
else
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "т" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "n" + this.text.substring(this.pos_int,this.text.length);
}
this.pos_px += this.dtext.fs_char_width[this.text.charCodeAt(this.pos_int)] + this.dtext.lesp;
this.pos_int +=1;
}
}
public function key_o(p,r,u0)
{
if(p && this.mos)
{
if(this.caps)
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "Щ" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "O" + this.text.substring(this.pos_int,this.text.length);
}
else
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "щ" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "o" + this.text.substring(this.pos_int,this.text.length);
}
this.pos_px += this.dtext.fs_char_width[this.text.charCodeAt(this.pos_int)] + this.dtext.lesp;
this.pos_int +=1;
}
}
public function key_p(p,r,u0)
{
if(p && this.mos)
{
if(this.caps)
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "З" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "P" + this.text.substring(this.pos_int,this.text.length);
}
else
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "з" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "p" + this.text.substring(this.pos_int,this.text.length);
}
this.pos_px += this.dtext.fs_char_width[this.text.charCodeAt(this.pos_int)] + this.dtext.lesp;
this.pos_int +=1;
}
}
public function key_q(p,r,u0)
{
if(p && this.mos)
{
if(this.caps)
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "Й" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "Q" + this.text.substring(this.pos_int,this.text.length);
}
else
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "й" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "q" + this.text.substring(this.pos_int,this.text.length);
}
this.pos_px += this.dtext.fs_char_width[this.text.charCodeAt(this.pos_int)] + this.dtext.lesp;
this.pos_int +=1;
}
}
public function key_r(p,r,u0)
{
if(p && this.mos)
{
if(this.caps)
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "К" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "R" + this.text.substring(this.pos_int,this.text.length);
}
else
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "к" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "r" + this.text.substring(this.pos_int,this.text.length);
}
this.pos_px += this.dtext.fs_char_width[this.text.charCodeAt(this.pos_int)] + this.dtext.lesp;
this.pos_int +=1;
}
}
public function key_s(p,r,u0)
{
if(p && this.mos)
{
if(this.caps)
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "Ы" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "S" + this.text.substring(this.pos_int,this.text.length);
}
else
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "ы" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "s" + this.text.substring(this.pos_int,this.text.length);
}
this.pos_px += this.dtext.fs_char_width[this.text.charCodeAt(this.pos_int)] + this.dtext.lesp;
this.pos_int +=1;
}
}
public function key_t(p,r,u0)
{
if(p && this.mos)
{
if(this.caps)
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "Е" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "T" + this.text.substring(this.pos_int,this.text.length);
}
else
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "е" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "t" + this.text.substring(this.pos_int,this.text.length);
}
this.pos_px += this.dtext.fs_char_width[this.text.charCodeAt(this.pos_int)] + this.dtext.lesp;
this.pos_int +=1;
}
}
public function key_u(p,r,u0)
{
if(p && this.mos)
{
if(this.caps)
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "Г" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "U" + this.text.substring(this.pos_int,this.text.length);
}
else
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "г" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "u" + this.text.substring(this.pos_int,this.text.length);
}
this.pos_px += this.dtext.fs_char_width[this.text.charCodeAt(this.pos_int)] + this.dtext.lesp;
this.pos_int +=1;
}
}
public function key_v(p,r,u0)
{
if(p && this.mos)
{
if(this.caps)
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "М" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "V" + this.text.substring(this.pos_int,this.text.length);
}
else
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "м" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "v" + this.text.substring(this.pos_int,this.text.length);
}
this.pos_px += this.dtext.fs_char_width[this.text.charCodeAt(this.pos_int)] + this.dtext.lesp;
this.pos_int +=1;
}
}
public function key_w(p,r,u0)
{
if(p && this.mos)
{
if(this.caps)
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "Ц" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "W" + this.text.substring(this.pos_int,this.text.length);
}
else
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "ц" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "w" + this.text.substring(this.pos_int,this.text.length);
}
this.pos_px += this.dtext.fs_char_width[this.text.charCodeAt(this.pos_int)] + this.dtext.lesp;
this.pos_int +=1;
}
}
public function key_x(p,r,u0)
{
if(p && this.mos)
{
if(this.caps)
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "Ч" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "X" + this.text.substring(this.pos_int,this.text.length);
}
else
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "ч" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "x" + this.text.substring(this.pos_int,this.text.length);
}
this.pos_px += this.dtext.fs_char_width[this.text.charCodeAt(this.pos_int)] + this.dtext.lesp;
this.pos_int +=1;
}
}
public function key_y(p,r,u0)
{
if(p && this.mos)
{
if(this.caps)
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "Н" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "Y" + this.text.substring(this.pos_int,this.text.length);
}
else
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "н" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "y" + this.text.substring(this.pos_int,this.text.length);
}
this.pos_px += this.dtext.fs_char_width[this.text.charCodeAt(this.pos_int)] + this.dtext.lesp;
this.pos_int +=1;
}
}
public function key_z(p,r,u0)
{
if(p && this.mos)
{
if(this.caps)
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "Я" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "Z" + this.text.substring(this.pos_int,this.text.length);
}
else
{
if(this.russian) this.text = this.text.substring(0,this.pos_int) + "я" + this.text.substring(this.pos_int,this.text.length);
else this.text = this.text.substring(0,this.pos_int) + "z" + this.text.substring(this.pos_int,this.text.length);
}
this.pos_px += this.dtext.fs_char_width[this.text.charCodeAt(this.pos_int)] + this.dtext.lesp;
this.pos_int +=1;
}
}
public function mis(ms:Int,u0)
{
if(ms == -1){this.mos = false;}
else if(ms == 1){this.mos = true;}
}
public function left(p,r,u0):Void
{
if(p && this.mos)
{
if(this.pos_int > 0){this.pos_int -=1;}
if(this.pos_px > 0){this.pos_px -= this.dtext.fs_char_width[this.text.charCodeAt(this.pos_int)] + this.dtext.lesp;}
}
}
public function right(p,r,u0)
{
if(p&& this.mos)
{
if(this.pos_int < this.text.length)
{
this.pos_px += this.dtext.fs_char_width[this.text.charCodeAt(this.pos_int)] + this.dtext.lesp;
this.pos_int +=1;
}
}
}
public function toggle_russian_mode(p,r,u0)
{
if(p && this.mos)
{
if(!(this.russian)){this.russian = true;}
else{this.russian = false;}
}
}
}
No comments:
Post a Comment