推荐设备MORE

怎么制作图标—微信正式开源

怎么制作图标—微信正式开源

公司新闻

商城系统订制型网站-Flash技巧教程:as3把2D图片分

日期:2021-04-16
我要分享
--------

商城系统订制型网站

------- Webjx关键提醒:一篇在手机游戏开发设计中常见到的作用就是运用as3把2D照片剖析成文字文字作用,下面大家来看看实际的实际操作全过程与as完成编码吧。

一篇在手机游戏开发设计中常见到的作用就是运用as3把2D照片剖析成文字文字作用,下面大家来看看实际的实际操作全过程与as完成编码吧。
针对一个像素的随意点,能够得到他的灰度值。灰度值测算公式
getR(color) * 0.299 + getG(color) * 0.587 + getB(color) * 0.114;

而每个文本也有其对应的明暗,例如实心的一个球,就要比空心的显得更暗,由于它更为的密不可分,求文本明暗的方式

private function getDensity(t:String):Number {
  var ttf:TextField = new TextField;
  ttf.autoSize = TextFieldAutoSize.LEFT;
  ttf.text = t;
 
 
  var bmd:BitmapData = new BitmapData(ttf.width, ttf.height, false, 0xffffff);
  bmd.draw(ttf);
  var c:int = 0;
  for (var x:int = 0; x bmd.width;x++ ) {
  for (var y:int = 0; y bmd.height;y++ ) {
  if (bmd.getPixel(x,y)!=0xffffff) {
  c++;
  }
  }
  }
  return c / ttf.width / ttf.height;
  }

详细编码

package
 
{
  import flash.display.Bitmap;
  import flash.display.BitmapData;
  import flash.display.Loader;
  import flash.display.Sprite;
  import flash.events.Event;
  import flash.geom.Rectangle;
  .FileReference;
  import flash.text.TextField;
  import flash.text.TextFieldAutoSize;
  import flash.text.TextFormat;
  import sliz.miniui.Button;
  import sliz.utils.UIUtils;
  /**
  * ...
  * @author lizhi
  */
 
  public class TestText extends Sprite
  {
  private var fonts:Array = [];
  private var tf:TextField;
 
 
  private var file:FileReference;
  private var loader:Loader;
  public function TestText()
  {
  tf = new TextField;
  var tfm:TextFormat = new TextFormat;
  tfm.size = 10;
  tfm.leading = -2;
  tf.defaultTextFormat = tfm;
  tf.autoSize = TextFieldAutoSize.LEFT;
  var text:String =
  var min:int = 32;
  var max:int = 120;
  while (++min max) {
  var c:String = String.fromCharCode(min);
  text += c;
  }
  text +=   .' *#@%+-)(TiI? ~
  for (var i:int = 0; i text.length;i++ ) {
  c = text.charAt(i);
  fonts.push({d:getDensity(c),t:c});
  }
  fonts.sortOn( d , Array.NUMERIC|Array.DESCENDING);
 
 
  //[Embed(source = '123.png')]var ic:Class;
  //var bmd:BitmapData = (new ic as Bitmap).bitmapData;
  //render(bmd);
  addChild(tf);
 
 
  UIUtils.changeStage(stage);
 
 
  var explorer:Button = new Button( explorer image , 2, 20, this, browse);
 
 
  loader = new Loader();
  loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoad2);
  }
 
 
  private function render(bmd:BitmapData):void {
  tf.width = 1000;
  tf.height = 1000;
  var x:int = 0;
  var y:int = 0;
  tf.text =
  while (y bmd.height) {
  while (x bmd.width) {
  var gray:Number = getGray(bmd.getPixel(x, y)) / 0xff;
  var index:int = int((fonts.length - 1) * gray);
  tf.appendText(fonts[index].t);
  var r:Rectangle = tf.getCharBoundaries(tf.text.length - 1);
  x += r.width;
  }
  tf.appendText( n
  y = r.bottom
  x = 0;
  }
  }
 
 
  private function getDensity(t:String):Number {
  var ttf:TextField = new TextField;
  ttf.autoSize = TextFieldAutoSize.LEFT;
  ttf.text = t;
 
 
  var bmd:BitmapData = new BitmapData(ttf.width, ttf.height, false, 0xffffff);
  bmd.draw(ttf);
  var c:int = 0;
  for (var x:int = 0; x bmd.width;x++ ) {
  for (var y:int = 0; y bmd.height;y++ ) {
  if (bmd.getPixel(x,y)!=0xffffff) {
  c++;
  }
  }
  }
  return c / ttf.width / ttf.height;
  }
 
 
  private function getR(color:uint):uint {
  return color 8
  }
  private function getG(color:uint):uint {
  return color 16
  }
  private function getB(color:uint):uint {
  return color 24
  }
  private function getGray(color:uint):uint {
  return getR(color) * 0.299 + getG(color) * 0.587 + getB(color) * 0.114;
  }
 
 
  private function browse(e:Event):void {
  file = new FileReference();
  file.browse();
  file.addEventListener(Event.SELECT, onSelect);
  }
 
 
  private function onSelect(e:Event):void {
  file.load();
  file.addEventListener(Event.COMPLETE, onLoad);
  }
 
 
  private function onLoad(e:Event):void {
 
 
  loader.loadBytes(file.data);
 
 
  }
 
 
  private function onLoad2(e:Event):void {
  var content:Bitmap = loader.contentLoaderInfo.content as Bitmap;
  render(content.bitmapData);
  }
  }
 
 
}

---------

商城系统订制型网站

------------