1. mx.graphics.BitmapFill
package { import flash.geom.Rectangle; import mx.graphics.BitmapFill; import mx.skins.ProgrammaticSkin; public class RepeatBackground extends ProgrammaticSkin { [Embed(source="Repeater.png")] private var embedclass:Class; public function RepeatBackground() { } override protected function updateDisplayList(w:Number, h:Number):void { super.updateDisplayList(w,h); graphics.clear(); var b:BitmapFill = new BitmapFill(); b.source = embedclass; b.begin(graphics,new Rectangle(0,0,w,h)); graphics.drawRect(0,0,w,h); b.end(graphics); } } }
<?xml version="1.0"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()"> <mx:Style> Application { border-skin:ClassReference("RepeatBackground"); } </mx:Style> <mx:Script> <![CDATA[ ]]> </mx:Script> </mx:Application>
2.package mx.core.ApplicationGlobal
import flex.core.ApplicationGlobals private var app:ApplicationGlobals.application;
3.package mx.core.ClassFactory
<?xml version="1.0"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" initialize="init()"> <mx:Style> .myC{ backgroundColor:#cccccc; } </mx:Style> <mx:Script> <![CDATA[ import mx.containers.Canvas; import flash.display.Graphics; import flash.geom.Rectangle; import mx.graphics.GradientEntry; import mx.graphics.LinearGradient; private function init():void { var c:ClassFactory = new ClassFactory(Canvas); var ob:Object = { width : 300, height : 600, styleName : "myC" } c.properties = ob; complete(c); } private function complete(c:ClassFactory):void { var canvas:Canvas = c.newInstance() as Canvas; addChild(canvas); } ]]> </mx:Script> </mx:Application>
4.package mx.core.ComponentDescriptor
编译器生成代码
/** * Generated by mxmlc 2.0 * * Package: * Class: test2 * Source: D:\桌面临时\test2\src\test2.mxml * Template: flex2/compiler/mxml/gen/ClassDef.vm * Time: 2009.03.30 21:21:20 CST */ package { import flash.accessibility.*; import flash.debugger.*; import flash.display.*; import flash.errors.*; import flash.events.*; import flash.external.*; import flash.filters.*; import flash.geom.*; import flash.media.*; import flash.net.*; import flash.printing.*; import flash.profiler.*; import flash.system.*; import flash.text.*; import flash.ui.*; import flash.utils.*; import flash.xml.*; import mx.binding.*; import mx.core.Application; import mx.core.ClassFactory; import mx.core.DeferredInstanceFromClass; import mx.core.DeferredInstanceFromFunction; import mx.core.IDeferredInstance; import mx.core.IFactory; import mx.core.IPropertyChangeNotifier; import mx.core.UIComponentDescriptor; import mx.core.mx_internal; import mx.events.FlexEvent; import mx.styles.*; [Frame(extraClass="_test2_FlexInit")] [Frame(factoryClass="_test2_mx_managers_SystemManager")] // begin class def public class test2 extends mx.core.Application { // instance variables // type-import dummies // Container document descriptor private var _documentDescriptor_ : mx.core.UIComponentDescriptor = new mx.core.UIComponentDescriptor({ type: mx.core.Application }) // constructor (Flex display object) /** * @private **/ public function test2() { super(); mx_internal::_document = this; // our style settings // ambient styles mx_internal::_test2_StylesInit(); // properties // events this.addEventListener("initialize", ___test2_Application1_initialize); } // initialize() /** * @private **/ override public function initialize():void { mx_internal::setDocumentDescriptor(_documentDescriptor_); super.initialize(); } // scripts // <Script>, line 10 - 34 import mx.containers.Canvas; import flash.display.Graphics; import flash.geom.Rectangle; import mx.graphics.GradientEntry; import mx.graphics.LinearGradient; private function init():void { var c:ClassFactory = new ClassFactory(Canvas); var ob:Object = { width : 300, height : 600, styleName : "myC" } c.properties = ob; complete(c); } private function complete(c:ClassFactory):void { var canvas:Canvas = c.newInstance() as Canvas; addChild(canvas); } // end scripts // supporting function definitions for properties, events, styles, effects /** * @private **/ public function ___test2_Application1_initialize(event:mx.events.FlexEvent):void { init() } // initialize style defs for test2 mx_internal static var _test2_StylesInit_done:Boolean = false; mx_internal function _test2_StylesInit():void { // only add our style defs to the StyleManager once if (mx_internal::_test2_StylesInit_done) return; else mx_internal::_test2_StylesInit_done = true; var style:CSSStyleDeclaration; var effects:Array; // myC style = StyleManager.getStyleDeclaration(".myC"); if (!style) { style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".myC", style, false); } if (style.factory == null) { style.factory = function():void { this.backgroundColor = 0xcccccc; }; } StyleManager.mx_internal::initProtoChainRoots(); } // embed carrier vars // end embed carrier vars // end class def } // end package def }
5.package mx.skins.ProgrammaticSkin \
protected function rotatedGradientMatrix(x:Number, y:Number, width:Number, height:Number, rotation:Number):Matrix protected function drawRoundRect( x:Number, y:Number, width:Number, height:Number, cornerRadius:Object = null, color:Object = null, alpha:Object = null, gradientMatrix:Matrix = null, gradientType:String = "linear", gradientRatios:Array /* of Number */ = null, hole:Object = null):void
6.package mx.manager.SystemManagerGlobals
public static var topLevelSystemManagers:Array = []; public static var bootstrapLoaderInfoURL:String
7. mx.utils.LoaderUtil
public static function normalizeURL(loaderInfo:LoaderInfo):String