上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。




標準のImageコントロールを使用して画像を読み込んだとき、アンチエイリアスを有効に出来ないためImageのカスタムコントロールを作成してアンチエイリアスを有効にする方法を記載します。




ExImage.as



package
{
import flash.display.Bitmap;
import flash.display.Loader;
import flash.events.Event;

import mx.controls.Image;
import mx.core.mx_internal;

use namespace mx_internal;

public class ExImage extends Image {

/**
* デフォルトコンストラクタ
*/
public function ExImage():void {
super();
}

/**
* ロード完了イベント
* smoothingを有効に設定
*/
override mx_internal function contentLoaderInfo_completeEventHandler(event:Event):void {
var smoothLoader:Loader = event.target.loader as Loader;
var smoothImage:Bitmap = smoothLoader.content as Bitmap;
smoothImage.smoothing = true;

dispatchEvent(new Event(Event.COMPLETE));
super.contentLoaderInfo_completeEventHandler(event);
}
}
}


Main.mxml



<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:custom="*" layout="vertical">

<mx:HBox verticalAlign="middle" horizontalAlign="center">
<mx:Label text="拡大・縮小" fontWeight="bold" />
<mx:HSlider id="hsliderSmooth" value="1.0" minimum="1.0" maximum="30.0" />
</mx:HBox>

<mx:Panel title="Smoothあり" width="300" height="300" verticalAlign="middle" horizontalAlign="center">
<custom:ExImage width="100" height="100" source="./Ex1.jpg"
scaleContent="true" scaleX="{hsliderSmooth.value}" scaleY="{hsliderSmooth.value}" />
</mx:Panel>

<mx:Panel title="Smoothなし" width="300" height="300" verticalAlign="middle" horizontalAlign="center">
<mx:Image width="100" height="100" source="./Ex1.jpg"
scaleContent="true" scaleX="{hsliderSmooth.value}" scaleY="{hsliderSmooth.value}" />
</mx:Panel>

</mx:Application>



スライダーを使用して画像を拡大するとアンチエイリアスが有効となっていることが
よくわかると思います。

実行結果は以下のようになります



以下のサイトを参考に作成しています。
Smooth Image 少しでも参考になれば応援お願いします。












上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。