grahhics/skin

2023-10-18 19:18
文章标签 skin grahhics

本文主要是介绍grahhics/skin,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

sprite.graphics 现在内存中画图,知道endFill()才渲染到桌面

 

BitmapData.draw(...)可以取出内存中的图片

 

private function dataGridStyleFunction(

data:Object, column:AdvancedDataGridColumn):Object {

return { color: "blue" };

       }

 

private function columnStyleFunction(

data:Object, column:AdvancedDataGridColumn):Object {

return { color: "red" };

 

 

● ProgrammaticSkin: Implementation of IFlexDisplayObject,ILayoutManagerClient,IInvalidating,ISimpleStyleClient interface. It is the easiest and common superclass.

● Border: the sub-class of ProgrammaticSkin, has been added the property of borderMetrics. If the skin has the border property could use this class.

● RectangularBorder: the sub-class of Border, supports the backgroundImage style.

● UIComponent: Implementation of IStateCleint interface. Easily to produce multi-state skin component

 

 

    DashBorder {

      dashlen: 20;

      gaplen: 20;

    }  

    .tightDashBorder {

      dashlen: 2;

      gaplen: 2;

    }

    .tightDashWideGapBorder {

      dashlen: 2;

      gaplen: 20;

    }

    .wideDashTightGapBorder {

      dashlen: 20;

      gaplen: 2;

    }

 

 

 

import mx.core.UIComponent;

 

  public class DashBorder extends UIComponent{

    private var dashlen:Number = 5;

    private var gaplen:Number = 5;

 

    public function DashBorder(){

      super();

    }

 

    override protected function updateDisplayList

      (unscaledWidth:Number, unscaledHeight:Number):void{

 

      super.updateDisplayList(unscaledWidth, unscaledHeight);

 

      var borderThickness:int = getStyle("borderThickness");

      var borderColor:int = getStyle("borderColor");

 

      graphics.clear();

      graphics.lineStyle(borderThickness, borderColor, 1)

 

      if (getStyle("dashlen")) {

           this.dashlen = getStyle("dashlen");

      }

      if (getStyle("gaplen")) {

           this.gaplen = getStyle("gaplen");

      }

 

      drawBorder(this.x, this.y, unscaledWidth, unscaledHeight,

        this.dashlen, this.gaplen);

    }

 

    public function drawLine(x1:Number, y1:Number, x2:Number, y2:Number,

      dashlen:Number, gaplen:Number): void {   

      if((x1 != x2) || (y1 != y2)){

        var incrlen:Number = dashlen + gaplen;

 

        var len:Number = Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));

        var angle:Number = Math.atan((y2 - y1) / (x2 - x1));

        var steps:uint = len / (dashlen + gaplen);

 

        var dashstepx:Number = dashlen * Math.cos(angle);

        if (x2 < x1) dashstepx *= -1;

 

        var dashstepy:Number = dashlen * Math.sin(angle);

 

        var gapstepx:Number = gaplen * Math.cos(angle);

        if (x2 < x1) gapstepx *= -1;

 

        var gapstepy:Number = gaplen * Math.sin(angle);

        var stepcount:uint = 0;

 

        while ((stepcount++) < steps) {      

 

          var dashstartx:Number;

          var dashstarty:Number;

          var dashendx:Number;

          var dashendy:Number;

 

          if(x1 == x2 && y1 != y2){

            dashstartx = dashendx = x1;

            if(y2 > y1){

              dashstarty = y1 + ((stepcount-1) * (dashlen + gaplen));            

              dashendy = dashstarty + dashlen;

            }else{

              dashstarty = y1 - ((stepcount-1) * (dashlen + gaplen));            

              dashendy = dashstarty - dashlen;

            }

          }else if(y1 == y2 && x1 != x2){

            dashstarty = dashendy = y1;

            if(x2 > x1){

              dashstartx = x1 + ((stepcount-1) * (dashlen + gaplen));

              dashendx = dashstartx + dashlen;

            }else{

              dashstartx = x1 - ((stepcount-1) * (dashlen + gaplen));

              dashendx = dashstartx - dashlen;

            }

          }

          graphics.moveTo(dashstartx, dashstarty);

          graphics.lineTo(dashendx, dashendy);

        }

      }

    }

 

    private function drawBorder(x1:Number, y1:Number, width:Number, height:Number,

      dashlen:Number, gaplen:Number) : void {

      drawLine(x1, y1, x1 + width, y1, dashlen, gaplen);

      drawLine(x1 + width, y1, x1 + width, y1 + height, dashlen, gaplen);

      drawLine(x1 + width, y1 + height, x1, y1 + height, dashlen, gaplen);

      drawLine(x1, y1 + height, x1, y1, dashlen, gaplen);

    }  

  }

 

 

 

 

 

 

这篇关于grahhics/skin的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/234615

相关文章

王立平--Unity中的GUI Skin

C#脚本: public class NewBehaviourScript2 : MonoBehaviour { public Texture t; public GUISkin skin; // Use this for initialization void Start () { }  void OnGUI(){ GUILayout.BeginArea(new Rect(0, 0, Scr

How to: Add and Customize the Ribbon Skin List and Skin Gallery

皮肤列表和皮肤库允许用户选择皮肤。本文介绍如何在功能区中显示“皮肤列表”或“皮肤库”并对其进行自定义。 DevExpress演示中心中的大多数应用程序都允许您选择皮肤。例如,运行XtraGrid演示并导航到皮肤功能区页面以更改当前皮肤。 在功能区UI中显示皮肤列表或皮肤库 使用以下栏项将相应的UI元素添加到功能区UI:“Skin List, Skin Gallery”、“Skin Palet

积少成多Flash(9) - Flex 3.0 布局控件, 样式(css), 皮肤(skin)

[索引页][源码下载] 积少成多Flash(9) - Flex 3.0 布局控件, 样式(css), 皮肤(skin) 作者:webabcd介绍演示 Flex 3.0 中的布局控件的应用,样式和皮肤的应用  布局控件 - Flex 中常用的布局控件一览 样式 - 通过 css 控制 Flex 中各个控件的样式 皮肤 - 使用 Flash 开发的 swf 做控件的皮肤 在线DEMOh

UI界面设计------skin++

具体见:http://www.uipower.com/index.php使用方法 /*    1、将SkinPPWTL.lib  skinppwtl.dll SkinPPWTL.h三个文件及相应皮肤拷贝至工程文件夹下 */ // 2、在StdAfx.h文件中加入#include "SkinPPWTL.h"     // ..      #endif   //  _AFX_NO_AFXCMN

Android换肤原理和Android-Skin-Loader框架解析

前言 Android换肤技术已经是很久之前就已经被成熟使用的技术了,然而我最近才在学习和接触热修复的时候才看到。在看了一些换肤的方法之后,并且对市面上比较认可的Android-Skin-Loader换肤框架的源码进行了分析总结。再次记录一下祭奠自己逝去的时间。 文章目录 前言换肤介绍换肤方式一:切换使用主题Theme换肤方式二:加载资源包 Android换肤知识点换肤相应的APIAs

skin magic

典型组合是3个文件:SkinMagicTrial.h 头文件,在需要换肤的类定义文件中包含SkinMagicTrial.lib 静态库文件,在需要换肤的类定义文件中引入SkinMagicTrial.dll 动态库文件,放在项目输出目录(exe所在目录)或系统目录中参考SkinMagic的Demo例程就能看出用法很简单// 初始化SkinMagic库InitSkinMagicLib

【PyTorch】Kaggle深度学习实战之Skin Cancer MNIST: HAM10000

目录 数据集概述DescriptionOverviewOriginal Data SourceFrom Authors 初次尝试 (CNN)利用imblearn库处理不平衡样本第二次尝试 (CNN)my_dataset.pytrain_CNN.py 第三次尝试 (ResNet18预训练模型)train_ResNet18.py 数据集概述 本次实战练习的数据集来自Kaggle的

VS2005 使用SKIN皮肤库

预处理: 破解版本SKIN 只支持ANSI  而现在的工程一般为UNICODE 修改: 将:SKINPPWTL_API BOOL  skinppLoadSkin(TCHAR* szSkinFile,BOOL bFromIni = FALSE); 改成:SKINPPWTL_API BOOL  skinppLoadSkin(CHAR* szSkinFile,BOOL b

Flex4 css中skin设置报错解决

Flex4 css中skin设置 header-background-skin:"MySkin"; 运行时报错: TypeError: Error #1034: 强制转换类型失败:无法将 "MySkin" 转换为 Class。 at mx.controls.dataGridClasses::DataGridHeader/updateDisplayList()[E:/dev/hero_priv