![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Dec 2006
Сообщений: 17
|
Здравствуйте, читал форум, но не нашёл точно того что мне надо.
Суть дела: давно мечтал написать модуль библиотеки, а тут друг подогнал мне хостинг, но без пхп Думал про JS, но решил попробовать на флеш+хмл — сразу появилась масса вопросов (Fl:10, AS:3)![]() 1) наверно, очень наивный вопрос: Не имея серверного обработчика (PHP, ColdFusion) загрузить файлы на сервер нереально? (я только через ФТП могу, ну может ещё Шелл) 2) попроще: получая имя файла оно бъётся на автора и название, по разделителю (= или -) но текстовые поля не реагируют на получение текста, иными словами CHANGE EVENT не наступает ((( Это видно на картинке: текст появился, но в errorer textField пусто, да и счётчики в углу по нулям ( function err_text(event:Event):void { if(event.target == f_author){ author_counter.text=f_author.length+"/"+f_author.maxChars } if(event.target == f_book){ book_counter.text=f_book.length+"/"+f_book.maxChars } var a:String=f_author.text; var b:String=f_book.text; var d:String="комментария нет"; if((f_desc.text!="your desc here\r") || (f_desc.text!="")){d="есть комментарий"} //а вот наконец и сам текст: errorer.htmlText="<font color=\"#999999\" face=\"Arial\" size=\"-4\">Автор: </font><a>"+a+"</a><font color=\"#999999\" face=\"Arial\" size=\"-4\">, Книга:</font> \u00ab"+b+"\u00bb "+s+", "+d; } addEventListener(FocusEvent.FOCUS_IN, light); addEventListener(FocusEvent.FOCUS_OUT, out); //добавлю таймер - буду знать сколько мин. заполняю одну форму var myTimer:Timer = new Timer(1000); myTimer.start(); function timerHandler(event:TimerEvent):void{ var cc = myTimer.currentCount; if (cc>9){ var min:int = cc/60; var sec:int = cc-(min*60); var secD:int = sec/10 var secU:int = sec-(secD*10) }else{ secD=0; secU=cc; } timer.text =min+":"+secD+secU; } myTimer.addEventListener(TimerEvent.TIMER, timerHandler); //поле комментариев — на картинке не показано function desc_type(event:Event):void{ desc_length.text=f_desc.length+" из "+f_desc.maxChars; } f_desc.addEventListener(Event.CHANGE, desc_type); //хмм, а еще такой же листенер на др функцию етсь - объединить бы их //выбор файла и загрузка — для первой кнопки function up_list(event:Event):void{ var archTypes:FileFilter = new FileFilter("ZIP files", "*.zip"); var textTypes:FileFilter = new FileFilter("Text Files (txt rtf html htm fb2 fb3)", "*.txt; *.rtf; *html; *htm; *.fb2; *.fb3"); var noType:FileFilter = new FileFilter("All files", "*.zip; *.txt; *.rtf; *html; *htm; *.fb2; *.fb3"); var fileRef:FileReference = new FileReference(); fileRef.addEventListener(Event.SELECT, selectHandler); fileRef.addEventListener(ProgressEvent.PROGRESS, progressHandler); fileRef.addEventListener(Event.COMPLETE, completeHandler); var myShape:Shape = new Shape(); this.addChild(myShape); try{ fileRef.browse([noType, archTypes, textTypes]); } catch (error:Error){ trace("Unable to browse for files."); } function selectHandler(event:Event):void { var request:URLRequest = new URLRequest("http://127.0.0.1/library/fileUploadScript.php") //создание серой линии прогрессбара на случай загрузки ещё файла with(myShape.graphics){ lineStyle(4, 0xcccccc); moveTo(9, 64); lineTo(289, 64); } //проверка на 3 Мб на загрузку — не больше if(fileRef.size>3145728){ errorer.htmlText="Извините, файл больше 3 МБ, загрузка невозможна =(";} else if(fileRef.type==".zip"){ errorer.htmlText="Извините, zip пока не поддерживаем"; } else{ try{ //попытка разбыить на имя и название var delimiter:Array = new Array(" = "," - "); for each (var item in delimiter){ if(fileRef.name.search(item)!==-1){ f_author.text=fileRef.name.substring(0,fileRef.name.search(item)); //начиная от = и до расширения - это имя книги f_book.text=fileRef.name.substring(fileRef.name.search(item)+3,fileRef.name.length-4); //errorer.htmlText.appendText(" угу!!"); } } //аплоад перенести на кнопку сабмит fileRef.upload(request); trace("selected"); } catch (error:Error) { trace("Unable to upload file."); } } } //зелёная линия прогрессБара function progressHandler(event:ProgressEvent):void { var file:FileReference = FileReference(event.target); myShape.graphics.lineStyle(4, 0x00aa00); myShape.graphics.moveTo(9, 64); myShape.graphics.lineTo(9+(event.bytesLoaded/event.bytesTotal*280),64); } function completeHandler(event:Event):void { trace("uploaded"); //раз загружено - линия прогрессбара становится синей myShape.graphics.lineStyle(4, 0x0075bf); myShape.graphics.moveTo(9, 64); myShape.graphics.lineTo(289, 64); } } up_file.addEventListener(MouseEvent.CLICK, up_list); //при ручной записи автора, в errorer появится текст f_author.addEventListener(Event.CHANGE, err_text); f_book.addEventListener(Event.CHANGE, err_text); f_desc.addEventListener(Event.CHANGE, err_text); ![]()
+ Если у меня явные косяки в коде — подскажите где плз и как оптимизировать, я не так давно этим занимаюсь ![]() Последний раз редактировалось mike711; 06.10.2009 в 15:34. |
|
|||||
|
Регистрация: Dec 2006
Сообщений: 17
|
если он установит ПХП, пропадёт смысл Флеша — и с архивами и с загрузкой и с БД он работает лучше — смогу использовать MySQL и т.д.
|
|
|||||
|
Регистрация: Dec 2006
Сообщений: 17
|
я надеюсь, fzip мне поможет с архивами
а поскольку «БД» только для меня, устроит и XML, —я просто ищу наилучшее решение, не включающее php Гораздо сложнее с загрузкой файла — тут хошь не хошь, я так понял, серверный скрипт нужен ![]() Я понимаю, что взялся закручивать молотком шурупы, но всё-таки, не надо меня холиварить, кто-нибудь, ответьте пожалуйста, по существу 3-х моих вопросов Последний раз редактировалось mike711; 06.10.2009 в 17:20. |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:03. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| php , upload |
|
|