私はスキニングを始めたばかりで、他の何よりも難しいと感じています。フレックス4モバイル。私はflexモバイルボタンをスキンしようとしているので、actionscriptで行う必要があります。ここで私はこれまで持っているものです(それが唯一の背景色を変更、非常に少ないん)actionscriptのスキニングボタン - 境界線を追加する
package skins {
import flash.display.GradientType;
import flash.geom.Matrix;
import mx.utils.ColorUtil;
import spark.components.supportClasses.StyleableTextField;
import spark.skins.mobile.ButtonSkin;
import spark.skins.mobile.supportClasses.MobileSkin;
public class CustomButtonSkin extends ButtonSkin {
public function CustomButtonSkin() {
super();
layoutPaddingLeft = 10;
layoutPaddingRight = 10;
layoutPaddingTop = 2;
layoutPaddingBottom = 2;
layoutCornerEllipseSize = 1;
}
private static var colorMatrix:Matrix = new Matrix();
private static const CHROME_COLOR_ALPHAS:Array = [1, 1];
private static const CHROME_COLOR_RATIOS:Array = [0, 127.5];
override protected function drawBackground(unscaledWidth:Number, unscaledHeight:Number):void {
super.drawBackground(unscaledWidth, unscaledHeight);
var chromeColor:uint = getStyle("chromeColor");
if (currentState == "up") {
graphics.beginFill(0x1C1C1C);
}
else{
var colors:Array = [];
colorMatrix.createGradientBox(unscaledWidth, unscaledHeight, Math.PI/2, 0, 0);
colors[0] = 0xFFFFFF;//ColorUtil.adjustBrightness2(chromeColor, 70);
colors[1] = 0xEEEEEE;//chromeColor;
graphics.beginGradientFill(GradientType.RADIAL, colors, CHROME_COLOR_ALPHAS, CHROME_COLOR_RATIOS, colorMatrix);
graphics.endFill();
}
}
}
}
ActionScriptで純粋のFlexモバイルコンポーネントをスキニングのマニュアルの方法で、多くのがあるように思えません。たとえば、ボーダーを追加するにはどうすればよいですか?もし誰かが自分のカスタムフレックスモバイルスキンを投稿できたら、それは大いに評価されるでしょう!
モバイル用に最適化されていないため、モバイルスキンにBorderContainerを追加しないでください。パフォーマンスが低下する可能性があります。最適化されたActionScriptスキンの場合は、グラフィックスオブジェクトに描画することをお勧めします。 –
@Steven Shongrunden良い点! BorderContainerの提案を削除するために私の答えを修正しました。 – JeffryHouser