#12004/11/23 15:22:24
我这里有一个文件,他里面用了一个插件“Enhancer”我找到了使用它的命令,但是好像只有他还不好使
命令如下:
--Dir Sys システム系ムービースクリプト
-----------------------------------------------------------------------------------------------start
--自動解像度変更(ステージサイズの異なるムービー間の移動対応) ver.2.2
-- 2004.05.12 OfficeMove Corp. by.LUGE
--ResolutionChange
--* Xtra enhancer
--
--プロジェクタ作成オプション
--『オプション』>『フルスクリーン』
--『ステージサイズ』>『個々のムービーの設定を使用』(中央ON)(←自動でONになります)
-----------------------------------------------------------------------------------------------start
global Gres --解像度変更に使用
global gDisplaySize --ムービーの画面サイズを記憶
on ResolutionChange
if the runMode contains "Projector" then --プロジェクタなら
--ステージサイズを調べ、最適な解像度を設定(640*480,800*600,1024*768,1280*1024まで対応)
stageWidth = the stage.rect.right - the stage.rect.left
stageHeight = the stage.rect.bottom - the stage.rect.top
if stageWidth <= 640 and stageHeight <= 480 then
stageWidth = 640
stageHeight = 480
else if stageWidth <= 800 and stageHeight <= 600 then
stageWidth = 800
stageHeight = 600
else if stageWidth <= 1024 and stageHeight <= 768 then
stageWidth = 1024
stageHeight = 768
else if stageWidth <= 1280 and stageHeight <= 1024 then
stageWidth = 1280
stageHeight = 1024
else
alert "ムービーサイズが1280*1024を超えているため、解像度を変更できません。"
exit
end if
nowSize = stageWidth&","&stageHeight
if(gDisplaySize<>nowSize)or(gDisplaySize=void) then --画面サイズが空もしくは違ったら
(the stage).visible = 0 --解像度の切り替えが終わるまで画面表示をしない
the centerStage = 0 --centerStageの機能をOFF
initDzlv(stageWidth,stageHeight) --解像度を変更
end if
(the stage).visible = 1 --画面を表示
the centerStage = 1 --centerStageの機能をON
end if
end ResolutionChange
on initDzlv(stageWidth,stageHeight) --解像度を変更
buf = "AAENXP-46131-58482-14126"
Gres = new(Xtra "Enhancer",buf)
--各解像度で32,24,16bitのいずれかに変更
if Gres.test_resolution(stageWidth,stageHeight,32) = 1 then
Gres.set_resolution(stageWidth,stageHeight,32)
else if Gres.test_resolution(stageWidth,stageHeight,24) = 1 then
Gres.set_resolution(stageWidth,stageHeight,24)
else if Gres.test_resolution(stageWidth,stageHeight,16) = 1 then
Gres.set_resolution(stageWidth,stageHeight,16)
else
alert "解像度が変更できません。"
if Gres.directX8_installed() = 1 then
else
alert "DirectX8以上をインストールしてください。"
end if
end if
gDisplaySize = stageWidth&","&stageHeight --画面サイズを保存
-- Gres.center_stage()
--解像度を切り替えた際にステージが中央に来ないため、同じ場所へジャンプし直す。
--問題が起こる場合は、同じステージサイズのダミーファイルを経由して回避
go to the frame of Movie the movie
end initDzlv
-----------------------------------------------------------------------------------------------end
-----------------------------------------------------------------------------------------------end
-----------------------------------------------------------------------------------------------start
--ステージ位置移動(複数ムービー&マルチウィンドウ対応) ver.1.0
-- 2004.05.12 OfficeMove Corp. by.LUGE
--ReplaceStage(type)
--引数1 type (省略可) デフォルト "set" 例:"input"ステージ位置を保存 "set"ステージ位置を設定
--
--prepareMovie に入れておくと複数のムービーを使用していてもOK
--ムービーへジャンプする際にステージの位置を記憶させてください
--切り替わる瞬間に一瞬画面が非表示になります
--単に中央に表示したのであれば、the centerStage を0にして1に戻せばOK
--
--プロジェクタ作成オプション
--『オプション』>『ウィンドウ内に表示』
--『ステージサイズ』>『個々のムービーの設定を使用』(中央ON)
--(中央ONでもOFFでも構いませんが初期同時に一瞬この位置に表示されます)
-----------------------------------------------------------------------------------------------start
global gStageRect --ステージの位置を記憶
on ReplaceStage(type)
if the runMode contains "Projector" then --プロジェクタなら
if(type="input")then
gStageRect = (the stage).rect --現在位置を保存
(the stage).visible = 0 --画面を非表示
else
the centerStage = 0 --centerStageの機能をOFF
(the stage).visible = 0 --画面を非表示
if(gStageRect<>void)then
set (the stage).rect = gStageRect
else
if (the stage).rect.height >= (the deskTopRectList)[1].height then
(the stage).rect = rect(0,0,(the stage).rect.width, (the stage).rect.height)
else
winLeft = (the deskTopRectList)[1].left + ((the deskTopRectList)[1].width / 2) - ((the stage).rect.width / 2)
winTop = (the deskTopRectList)[1].top + ((the deskTopRectList)[1].height / 2) - ((the stage).rect.height / 2)
(the stage).rect = rect(winLeft, winTop, winLeft+(the stage).rect.width, winTop+(the stage).rect.height)
end if
end if
(the stage).visible = 1 --画面を表示
gStageRect = (the stage).rect --現在位置を保存
end if
end if
end
-----------------------------------------------------------------------------------------------end
-----------------------------------------------------------------------------------------------end
-----------------------------------------------------------------------------------------------start
--split関数 ver.2.2
-- 2004.03.25 OfficeMove Corp. by.LUGE
--sprit(str,chara[,type])
--引数1 str 分割したい文字列
--引数2 chara 区切り文字(省略可) デフォルト ,カンマ? 例:"," "/" ":" TAB
--引数3 type 格納タイプ デフォルト string文字列 例:"integer" "number" "num"
--戻り値 [配列]
-----------------------------------------------------------------------------------------------start
on split(str,chara,type)
if (str<>void)and(str<>Empty) then --引数1がある場合
str = string(str) --文字列に変換
set tmp = the itemDelimiter --初期状態の区切り文字設定を保存
if (chara<>void) then the itemDelimiter = chara --第二引数があれば区切り文字に設定
lis = []
cnt = str.item.count
repeat with n = 1 to cnt
if(str.item[n]<>Void)and(str.item[n]<>Empty)then
if(type="integer")or(type="number")or(type="num") then --引数3が数値指定だった場合
theStr = Integer(str.item[n]) --数式化
if(integerP(theStr))then lis.add(theStr) --格納
else nothing
else
theStr = string(str.item[n]) --文字列化
if(theStr<>void)and(theStr<>Empty) then lis.add(theStr) --格納
end if
end if
end repeat
the itemDelimiter = tmp --区切り文字設定を元に戻す
-- put "split="&lis&" str="&str
return lis
end if
end split
-----------------------------------------------------------------------------------------------end
-----------------------------------------------------------------------------------------------end
-----------------------------------------------------------------------------------------------start
--NumberList関数 ver.1.5
-- 2004.03.25 OfficeMove Corp. by.LUGE
--NumberList(str,cut)
--引数1 str 数値配列化したい文字列 例:"1-8" "1,3,5" "2,5-8"
--引数2 cut 重複を削除 例:"TRUE" "1"
--戻り値 [配列] soatしたIntegerとして出力
-----------------------------------------------------------------------------------------------start
on NumberList(str,cut)
if (str<>void)and(str<>Empty) then --引数1がある場合
numList = []
lis = split(str,",")
repeat with i in lis
if offset("-",i) then
tmp = split(i,"-","num")
if(tmp.count=2)then
tmp.sort()
if (tmp[1]=tmp[2])then
if(integerP(tmp[1]))then numList.add(tmp[1])
else nohting
else
repeat with j = tmp[1] to tmp[2]
j = integer(j)
if(integerP(j))then numList.add(j)
end repeat
end if
end if
else
i = integer(i)
if(integerP(i))then numList.add(i)
end if
end repeat
numList.sort()
-- put "NumberList="&numList&" in="&str
return numList
end if
end NumberList
-----------------------------------------------------------------------------------------------end
-----------------------------------------------------------------------------------------------end
-----------------------------------------------------------------------------------------------start
--ListDupCut関数 ver.1.0
-- 2004.03.14 OfficeMove Corp. by.LUGE
--ListDupCut(lis,dup)
--引数1 str lis配列内の重複データを削除したい配列
--引数2 dup lis配列内の重複データを2次元配列の2つめの配列に残す 例:"TRUE" "1"
--戻り値 [重複削除後配列](,[重複データ])
-----------------------------------------------------------------------------------------------start
on ListDupCut(lis,dup)
localList = []
dupList = []
listString = ""
listCount = lis.count
repeat with i = 1 to listCount
listString = listString&lis[i]&RETURN
end repeat
delete the last char of listString
repeat with i = 1 to listCount
theData = lis[i]
if localList.getPos(theData) then
if not dupList.getPos(theData) then
dupList.append(theData)
end if
else
localList.append(theData)
end if
end repeat
if (dupList.count())and(dup) then
-- put [localList, dupList]
return [localList, dupList]
else
-- put localList
return localList
end if
end ListDupCut
-----------------------------------------------------------------------------------------------end
-----------------------------------------------------------------------------------------------end
编辑历史:[此帖最近一次被 ccloveaa 编辑过(编辑时间:2004-11-23 15:44:08)]