?? stylesheetreader.as
字號:
package com.teknision.data
{
import com.teknision.data.events.StyleSheetReadEvent;
import flash.events.EventDispatcher;
public class StyleSheetReader extends EventDispatcher
{
import flash.net.*;
import mx.rpc.http.*;
import mx.rpc.events.*;
import flash.text.StyleSheet;
import flash.events.*;
private var __urlLoader:URLLoader;
public function readStyleSheet(i_styleSheet:String):void{
var request:URLRequest = new URLRequest(i_styleSheet);
__urlLoader = new URLLoader(request);
__urlLoader.addEventListener(Event.COMPLETE,handleFileRead);
__urlLoader.load(request);
}
private function handleFileRead(event:Event):void{
var data:String = __urlLoader.data.split(String.fromCharCode(13)).join("").split(String.fromCharCode(10)).join("").split(String.fromCharCode(9)).join("").split(" ").join("");
var css_styleObj:Object = new Object();
if(data.length > 0){
var styleTitleName:String = new String();
var propertyObj:Object = new Object();
var propertyName:String = new String();
var propertyValue:String = new String();
for(var i:uint=0;i<data.length;i++){
if(data.charAt(i) == "{"){
styleTitleName = this.getPreviousWord(data,i);
// REMOVE THE . FROM THE BEGINNING OF THE STYLE TITLE
if(styleTitleName.charAt(0) == "."){
styleTitleName = styleTitleName.slice(1,styleTitleName.length);
}
}
if(data.charAt(i) == ":"){
propertyName = this.getPreviousWord(data,i);
}
if(data.charAt(i) == ";"){
propertyValue = this.getPreviousWord(data,i);
propertyObj[propertyName] = propertyValue;
}
if(data.charAt(i) == "}"){
css_styleObj[styleTitleName] = propertyObj;
propertyObj = null;
propertyObj = new Object();
}
}
}
var newStyleSheetEvent:StyleSheetReadEvent = new StyleSheetReadEvent(css_styleObj);
this.dispatchEvent(newStyleSheetEvent);
}
// Pass a string and a string index and this method will return the string
// that appears before the index but after the characters in the break points array.
private function getPreviousWord(i_str:String,i_charNum:Number):String{
var breakPoints:Array = ["{",":",";","}"];
for(var i:Number=(i_charNum-1); i>(-1); i--){
for(var x:uint=0;x<breakPoints.length;x++){
if(i_str.charAt(i) == breakPoints[x] || i == 0){
if(i == 0){
return i_str.slice(0,i_charNum);
}
return i_str.slice((i+1),i_charNum);
}
}
}
return undefined;
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -