![]() |
|
||||||||||
|
|||||
|
Видел в какой-то галерее кнопочку, сохранить картинку... Галерея флюшевая. Отсюда вопрос - как реализовать фичу с jpg и можно ли тем же способом сохранять к себе из проекта pdf doc и прочих зверюшек?
|
|
|||||
|
Регистрация: Nov 2003
Сообщений: 128
|
Если через сервер - то без проблем. getURL, кажется. Просто открывай документ отдельно.
|
|
|||||
|
Нет не с сервера.
Покопался по форумам нашел тему - через Zinc, SWF2kit и проч. Юзаю Цинк. Нашел функцию mdm.copyfile - все торчком. Вот только копирует он в строго заданную папку :/ а мне бы чтобы юзер браузнул сам куда ему картинку качать. Никто не в курсе? |
|
|||||
|
Регистрация: Dec 2002
Адрес: Сочи
Сообщений: 2,819
|
От Роста -
var fileRef = new flash.net.FileReference(); fileRef.browse(); Будет катить в 8ке....... |
|
|||||
|
спасибо,
скоро ждать 8-ки? )). зы. от роста (это что?) |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
Уже вышла бета версия. Но как уже говорил, требуется время на то чтобы плеер начал активно использоваться. Что толку от того что ты сделал флеш самыми новыми фичами, когда ее могут посмотреть единицы?
От Роста - это значит Ростислава (Флеш-потрошитель) |
|
|||||
|
Только текст:
function saveText(){ userText.data.Doc = textWindow; } function loadText(){ textWindow = userText.data.Doc; } userText = SharedObject.getLocal("userText"); |
|
|||||
|
Ветеран форума
|
Цитата:
__________________
BestMasterиZация |
|
|||||
|
MDM Support ответил следующим образом:
hi PYatka, welcome to the boards! it's quite complex task you want to do, it take me some time to make fully fledged code for all of us wanting to do similiar thing, I've attached files so you can compile them and simply start testing, follow code comments to learn how it works: //
mdminit();
//
import mx.controls.Button;
/**
simply one button makes
entire GUI
*/
var browseBtn:Button;
/**
variables used later in code
to remember:
- last folder selected by user
- last file name selected (entered) by user
- last extension of last file name
*/
var lastSelectedFolder:String = null;
var lastSelectedFile:String = null;
var lastUsedExtension:String = null;
/**
button click handler
*/
function clickHandler(evt:Object):Void {
if (evt.target != browseBtn) {
return;
}
browseBtn.enabled = false;
selectFileToCopy();
}
/**
that funciton open browse dialog
allowing user to select file to copy
(target file path is returned to callback function)
*/
function selectFileToCopy(userNotCancelled:String):Void {
if (userNotCancelled == "false") {
return;
}
var folder = getLastSelectedFolder();
var title = "Select file to copy";
var filterList = "jpeg doc pdfs|*.jpg;*.doc;*.pdf";
var filterText = "File types";
var buttonText = "Select";
mdm.browsefiledir(folder);
mdm.browsefiletitle(title);
mdm.browsefile_filterlist(filterList);
mdm.browsefile_filtertext(filterText);
mdm.browsefile_buttontext(buttonText);
mdm.browsefile(sourceFileSelected);
//
browseBtn.enabled = true;
}
/**
callback function for selectFileToCopy
check what user entered simpy by checking
if file exists
*/
function sourceFileSelected(filePath:String):Void {
if (filePath == "" || filePath == "false") {
return;
}
lastSelectedFile = getFileName(filePath);
lastSelectedFolder = getFolderName(filePath);
//
mdm.fileexists(filePath, checkFilePathBeforeProceeding);
}
/**
that callback function checks if selected file
exists on machine - user can enter some non-existing
file names in dialog
*/
function checkFilePathBeforeProceeding(exists:String):Void {
if (exists == "false") {
lastSelectedFile = null;
var promptText = "please select existing file!!!";
var promptType = "okcancel";
var promptStyle = "alert";
mdm.prompt_modal(promptText, promptType, promptStyle, selectFileToCopy);
return;
}
selectPathWhereToCopy();
}
/**
that function open browse dialog (SAVE AS)
allowing user to select path where
file should be copied (user can enter new name)
*/
function selectPathWhereToCopy(userNotCancelled:String):Void {
if (userNotCancelled == "false") {
return;
}
var folder = getLastSelectedFolder();
var title = "Select new location (Save As) for "+getLastSelectedFile();
var defaultFileName:String = getLastSelectedFile();
var currentExtension:String = getFileExtension(getLastSelectedFile());
switch (currentExtension) {
case ".doc" :
lastUsedExtension = ".doc";
var filterList = "word files|*.doc";
break;
case ".jpg" :
lastUsedExtension = ".jpg";
var filterList = "jpeg files|*.jpg";
break;
case ".pdf" :
lastUsedExtension = ".pdf";
var filterList = "Acrobat files|*.pdf";
break;
}
var filterText = "File types";
var buttonText = "Save";
mdm.browsefiledir(folder);
mdm.browsefiletitle(title);
mdm.browsefile_filterlist(filterList);
mdm.browsefile_filtertext(filterText);
mdm.browsefile_buttontext(buttonText);
mdm.browsefile_def(defaultFileName, targetPathSelected);
}
/**
that callback function checks what is returned
from browse dialog to select target file
not allowed: spaces in names,
names consisting only with extensions
overriding existing file if target path == source path
*/
function targetPathSelected(filePath:String):Void {
if (filePath == "" || filePath == "false") {
return;
}
var targetFolder:String = getFolderName(filePath);
var targetFile:String = getFileName(filePath);
var targetFileExtension:String = getFileExtension(targetFile);
var hasSpaces:Boolean = (targetFile.indexOf(" ") != -1);
var nameEqualsExtension:Boolean = (targetFile == getLastUsedExtension());
var hasValidExtension:Boolean = (targetFileExtension == getLastUsedExtension());
// # 1 no spaces
if (hasSpaces == true) {
var promptText = "no spaces allowed in file name";
var promptType = "okcancel";
var promptStyle = "alert";
mdm.prompt_modal(promptText, promptType, promptStyle, selectPathWhereToCopy);
return;
}
// # 2 name should have at least one character not only extension
if (nameEqualsExtension == true) {
var promptText = "file name should have at least one character";
var promptType = "okcancel";
var promptStyle = "alert";
mdm.prompt_modal(promptText, promptType, promptStyle, selectPathWhereToCopy);
return;
}
// # 3 automatically add correct extension if missed
if (hasValidExtension == false) {
targetFile = targetFile+getLastUsedExtension();
}
// #4 don't copy if target==source
var sourcePath:String = getLastSelectedFolder()+getLastSelectedFile();
var targetPath:String = targetFolder+targetFile;
var isToOverride:Boolean = (sourcePath == targetPath);
if (isToOverride == true) {
var promptText = "file cannot override itself - choose another location!";
var promptType = "okcancel";
var promptStyle = "alert";
mdm.prompt_modal(promptText, promptType, promptStyle, selectPathWhereToCopy);
return;
}
// GO copy file
lastSelectedFolder = targetFolder;
mdm.copyfile(sourcePath, targetPath);
}
/**
return last selected folder
*/
function getLastSelectedFolder():String {
if (lastSelectedFolder == null) {
return _level0.mdm_desktop;
}
return lastSelectedFolder;
}
/**
here is a couple of helper functions
used accros a code
*/
/**
return last selected file
*/
function getLastSelectedFile():String {
return lastSelectedFile;
}
/**
return file name from file path
*/
function getFileName(fullPath:String):String {
var sep:String = _level0.mdm_appdir.substr(-1);
return fullPath.substr(fullPath.lastIndexOf(sep)+1);
}
/**
return folder name from file path
*/
function getFolderName(fullPath:String):String {
var sep:String = _level0.mdm_appdir.substr(-1);
return fullPath.substr(0, fullPath.lastIndexOf(sep)+1);
}
/**
return extension from fileName
*/
function getFileExtension(fileName:String):String {
return fileName.substr(fileName.lastIndexOf("."));
}
/**
return last extension used in filter
*/
function getLastUsedExtension():String {
return lastUsedExtension;
}
/**
simply resize button when needed
*/
function onResize():Void {
browseBtn.move(10, 10);
browseBtn.setSize(Stage.width-20, Stage.height-20);
}
//
// go baby
//
Stage.scaleMode = "noScale";
Stage.align = "TL";
Stage.addListener(this);
//
browseBtn.label = "Click to choose an file";
browseBtn.move(10, 10);
browseBtn.setSize(Stage.width-20, Stage.height-20);
browseBtn.addEventListener("click", clickHandler);
enjoy hth, regards, peter |
|
|||||
|
Цитата:
Тогда вопрос такой. SWFKit и ZINC будут понимать синтаксис 8ки? |
![]() |
![]() |
Часовой пояс GMT +4, время: 07:26. |
|
|
« Предыдущая тема | Следующая тема » |
|
|