📄 filesavepanel.mxml
字号:
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml"
width="400"
title="Save File"
showCloseButton="true"
paddingLeft="10" paddingTop="10"
paddingRight="10" paddingBottom="10"
close="closeHandler(event)">
<mx:Script>
<![CDATA[
import mx.events.FileEvent;
import flash.filesystem.File;
import mx.core.Application;
import mx.events.CloseEvent;
import mx.events.MenuEvent;
import mx.managers.PopUpManager;
//----------------------------------------------------------------------
//
// Class methods
//
//----------------------------------------------------------------------
public static function show(directory:File = null,
name:String = null):FileSavePanel
{
var panel:FileSavePanel =
FileSavePanel(PopUpManager.createPopUp(
DisplayObject(mx.core.Application.application),
FileSavePanel, true));
PopUpManager.centerPopUp(panel);
panel.setup(directory, name);
return panel;
}
//----------------------------------------------------------------------
//
// Properties
//
//----------------------------------------------------------------------
//------------------------------
// cancelButtonLabel
//------------------------------
[Bindable]
public var cancelButtonLabel:String = "Cancel";
//------------------------------
// openDirectoryButtonLabel
//------------------------------
[Bindable]
public var openDirectoryButtonLabel:String = "Open";
//------------------------------
// saveFileButtonLabel
//------------------------------
[Bindable]
public var saveFileButtonLabel:String = "Save";
//----------------------------------------------------------------------
//
// Methods
//
//----------------------------------------------------------------------
public function setup(directory:File = null,
name:String = null):void
{
if (!directory)
directory = FileSystemList.COMPUTER;
fileSystemList.directory = directory;
fileSystemList.resetHistory(directory);
if (name)
fileNameTextInput.text = name;
}
private function updateSaveButton():void
{
var listHasFocus:Boolean =
fileSystemList.focusManager.getFocus() == fileSystemList;
saveButton.label = listHasFocus && fileSystemList.canNavigateDown ?
openDirectoryButtonLabel :
saveFileButtonLabel;
saveButton.enabled =
fileSystemList.directory != FileSystemList.COMPUTER &&
fileNameTextInput.text != "";
}
private function dispatchSelectEvent():void
{
var selectEvent:FileEvent = new FileEvent(FileEvent.SELECT);
selectEvent.file =
fileSystemList.directory.resolve(fileNameTextInput.text);
dispatchEvent(selectEvent);
}
//----------------------------------------------------------------------
//
// Event handlers
//
//----------------------------------------------------------------------
private function closeHandler(event:CloseEvent):void
{
dispatchEvent(new Event(Event.CANCEL));
PopUpManager.removePopUp(this);
}
private function backButton_clickHandler(event:MouseEvent):void
{
fileSystemList.navigateBack();
}
private function backButton_itemClickHandler(event:MenuEvent):void
{
fileSystemList.navigateBack(event.index);
}
private function forwardButton_clickHandler(event:MouseEvent):void
{
fileSystemList.navigateForward();
}
private function forwardButton_itemClickHandler(event:MenuEvent):void
{
fileSystemList.navigateForward(event.index);
}
private function fileSystemComboBox_changeHandler(event:Event):void
{
fileSystemList.navigateTo(File(fileSystemComboBox.selectedItem));
}
private function upButton_clickHandler(event:MouseEvent):void
{
fileSystemList.navigateUp();
}
private function fileSystemList_directoryChangeHandler(event:FileEvent):void
{
updateSaveButton();
}
private function fileSystemList_focusInHandler(event:FocusEvent):void
{
updateSaveButton();
}
private function fileSystemList_focusOutHandler(event:FocusEvent):void
{
updateSaveButton();
}
private function fileSystemList_selectHandler(event:Event):void
{
}
private function fileNameTextInput_changeHandler(event:Event):void
{
updateSaveButton();
}
private function fileNameTextInput_enterHandler(event:Event):void
{
dispatchSelectEvent();
PopUpManager.removePopUp(this);
}
private function saveButton_clickHandler(event:MouseEvent):void
{
dispatchSelectEvent();
PopUpManager.removePopUp(this);
}
private function cancelButton_clickHandler(event:MouseEvent):void
{
dispatchEvent(new Event(Event.CANCEL));
PopUpManager.removePopUp(this);
}
]]>
</mx:Script>
<mx:HBox width="100%">
<mx:FileSystemHistoryButton id="backButton" width="40" label="<" toolTip="Back"
enabled="{fileSystemList.canNavigateBack}"
dataProvider="{fileSystemList.backHistory}"
click="backButton_clickHandler(event)"
itemClick="backButton_itemClickHandler(event)"/>
<mx:FileSystemHistoryButton id="forwardButton" width="40" label=">" toolTip="Forward"
enabled="{fileSystemList.canNavigateForward}"
dataProvider="{fileSystemList.forwardHistory}"
click="forwardButton_clickHandler(event)"
itemClick="forwardButton_itemClickHandler(event)"/>
<mx:FileSystemComboBox id="fileSystemComboBox" width="100%" toolTip="Current Directory"
directory="{fileSystemList.directory}"
change="fileSystemComboBox_changeHandler(event)"/>
<mx:Button id="upButton" width="22" label="^" toolTip="Up"
enabled="{fileSystemList.canNavigateUp}"
click="upButton_clickHandler(event)"/>
</mx:HBox>
<mx:FileSystemList id="fileSystemList" width="100%" rowCount="10"
directoryChange="fileSystemList_directoryChangeHandler(event)"
focusIn="fileSystemList_focusInHandler(event)"
focusOut="fileSystemList_focusOutHandler(event)"
select="fileSystemList_selectHandler(event)"/>
<mx:HBox width="100%">
<mx:Label text="File name:"/>
<mx:TextInput id="fileNameTextInput" width="100%"
change="fileNameTextInput_changeHandler(event)"
enter="fileNameTextInput_enterHandler(event)"/>
</mx:HBox>
<mx:HBox width="100%" horizontalAlign="center">
<mx:Button id="cancelButton" width="80" label="{cancelButtonLabel}"
click="cancelButton_clickHandler(event)"/>
<mx:Button id="saveButton" width="80"
click="saveButton_clickHandler(event)"/>
</mx:HBox>
</mx:TitleWindow>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -