Flash获取当前文件名、路径名
其实这个功能没有什么大用,很简单;只是最近在做一些课件时,并不知道这节课将来属于某个年级,即便知道,现在的教材这么混杂,也有可能更换。
为了方便课件使用,我决定,用目录与文件名来设定是哪节课,如课件放在“\小学\语文\3年级\上册”目录下时,打开课件,会自动显示“小学语文三年级上册”;课件的文件名称写为“12.春.swf”,则打开课件时,课堂标题会显示为“第十二课 《春》”。
实现如上效果,无法是判断课件所处的路径与文件名,并将数字转到汉字就行了。
如下是一个完整的类。
class FileName extends MovieClip {//构造方法
function FileName() {
}
//获取文件路径
function getPath():String {
var filePath:String = _root._url;
return filePath.substring(0, filePath.lastIndexOf("/"));
}
//获取当前文件名
function getFileName():String {
var filePath:String = _root._url;
return filePath.substring(filePath.lastIndexOf("/")+1, filePath.length);
}
//获取课程名称
function getCaseName():String {
//取出文件名
var fileName:String = this.getFileName();
//取出课程名称
if (fileName.indexOf(".")>-1) {
var tName = fileName.substring(fileName.indexOf(".")+1, fileName.lastIndexOf("."));
return unescape(tName);
}
return "";
}
//获取课程编号,即第几节课
function getCaseNumber():Number {
//取出文件名
var fileName:String = this.getFileName();
//取出课程编号
if (fileName.indexOf(".")>-1) {
var tNum = fileName.substring(0, fileName.indexOf("."));
var caseNum = Number(tNum);
if (isNaN(caseNum)) {
caseNum = 100;
}
return caseNum;
}
return 0;
}
//获取课程中文编号,即第几节课,如第十节,第二十一节;
function getCaseChineseNumber(num):String {
var caseNum = num;
//中文课程编号
var chinaNum:String;
var arrNum:Array = new Array("零", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "百");
if (caseNum<=10) {
//个位数
chinaNum = arrNum[caseNum];
} else {
//取十位
var tNum = Math.floor(caseNum/10);
if (caseNum%10 == 0) {
//十位整数,如20,30,50
chinaNum = arrNum[tNum]+"十";
} else {
if (caseNum>10 && caseNum<20) {
//十至20
tNum = caseNum-tNum*10;
chinaNum = "十"+arrNum[tNum];
} else {
chinaNum = arrNum[tNum];
chinaNum += arrNum[10];
//取个位
tNum = caseNum-tNum*10;
chinaNum += arrNum[tNum];
}
}
}
return chinaNum;
}
//获取科目
function getSubject() {
var filePath:String = this.getPath();
//去除上下册
filePath = filePath.substring(0, filePath.lastIndexOf("/"));
//去除年级
filePath = filePath.substring(0, filePath.lastIndexOf("/"));
return filePath.substring(filePath.lastIndexOf("/")+1, filePath.length);
}
//获取年级
function getLevel() {
var filePath:String = this.getPath();
//去除上下册
filePath = filePath.substring(0, filePath.lastIndexOf("/"));
return filePath.substring(filePath.lastIndexOf("/")+1, filePath.length);
}
//获取上下册
function getBook() {
var filePath:String = this.getPath();
return filePath.substring(filePath.lastIndexOf("/")+1, filePath.length);
}
//获取当前课件的名称,并返回“第N课 (课程名)”
public function getCaseTitle() {
//中文课程编号
var chinaNum:String = this.getCaseChineseNumber(this.getCaseNumber());
//课程名称
var caseName:String = this.getCaseName();
caseName = "第"+chinaNum+"课 \n《"+caseName+"》";
caseName = unescape(caseName);
return caseName;
}
//获取当前课件的主标题,如“小学语文一年级上册”
public function getTitle():String {
var title = this.getSubject();
var level = this.getLevel();
var book = this.getBook();
//
if (level.length>0) {
var t = level.substring(0, 1);
level = this.getCaseChineseNumber(Number(t))+level.substring(1);
}
var reTitle = title+level+book;
if (reTitle == "" || reTitle.length<1||reTitle.indexOf("%")>-1) {
return "该课件存放位置错误!";
}
return reTitle;
}
}

没有评论:
发表评论