neste exemplo é um bem simples de como implementar um campo de mascara para CPF
onde a mascara é: xxx.xxx.xxx-xx, porém este exemplo não trata a entrada de teclado a qual também poderia ser incluída de modo simples
[Fonte]
<canvas width="200">
<view width="115" height="20" bgcolor="gray">
<inputtext
name="field"
bgcolor="white"
x="1" y="1"
width="$once{parent.width-2}"
height="$once{parent.height-2}" maxlength="14">
<method name="init"><![CDATA[
super.init();
]]></method>
<method event="onkeydown" args="akeycode"><![CDATA[
Debug.write( String.fromCharCode(akeycode) + " : " + akeycode + " >> " + this.getText() );
// tecla backspace
if( akeycode != 8 ) {
switch( this.getText().length ) {
case 3:
this.addText( "." );
break;
case 7:
this.addText( "." );
break;
case 11:
this.addText( "-" );
break
}
var lastP = this.getText().length;
this.setSelection( lastP, (lastP+1) );
}
]]></method>
<!-- @END: métodos do inputtext -->
</inputtext>
</view>
</canvas>