Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   {mdm}Zinc (http://www.flasher.ru/forum/showthread.php?t=81193)

alexcon314 14.06.2006 14:59

{mdm}Zinc
 
Привет все! Кто как и при каких обстоятельствах использовал mdm zinc?
Недавно ознакомился с мануалом, есть конкретный проект, где зинк-навороты были бы оочень кстати... Реализовал проект на Perl+Apache+AS+MySQL, но хочется большего особенно в области работы с файловой системой и запуском из флеша win-приложений. Простая компиляция готового swf че-то не то выдает, точнее все вроде работает но не до конца как было ..В swf-e идет переключение между кадрами по кнопкам, а в exe-шнике при запуске все кадры прокручиваются до конца и данные не обновляются динамически после коннекта с сервером, только после перезапуска видны изменения в записях в базе. Но в swf-e все как по маслу...Кто-нибудь понимает в чем дело?
Простенькие приложения на зинке вроде работают что и манит..

KUZEN 14.06.2006 21:29

Так сказать мало что можно, нужно смотреть файлы да и собственно знать как что и для чего было сделано, вот только разгребать большие проэкты нет не времени ни желания , выкладывай может кто нибудь посоветует, что нибудь полезное ...

alexcon314 15.06.2006 02:01

Не надо разгребать!
 
В swf-е работает а в Цинке нет: по щелчку вызывается функция обновления таблицы с данными после редактирования(включает .sendAndLoad() ..ни больше ни меньше.. вопрос почему так может быть в принципе? Или перед компиляцией в Цинке код надо как-то "подготовить"? Может его (Цинка) родные классы использовать для передачи данных? С прокруткой разгреб уже..

alexcon314 16.06.2006 01:56

Получилось...
 
В Цинке есть встроенный дебуггер: трейсит переменные при запуске экзешника что твой флэш ..приятно, только в код надо вставить
mdm.Exeption.trace(); в нужном месте как с функцией флэша trace()...Неплохо вобщем, но до флэшевского дебуггера конечно далеко..
Расколол я запару с обновлением таблицы данных, короче. Если интересно, докладаю: AS-класс LoadVars, который использовался в скрипте имеет метод load() и метод sendAndLoad(). Так вот в скрипте в том месте где был баг стоял load()...когда писал там не было нужды использовать sendAndLoad()(неточно выразился когда формулировал вопрос ранее). При первом прогоне участка кода уже в экзешнике все работает строка с сервера подгружается а потом как будто работает кэш: функция где вызывается load() повторно работает но данные почему-то не обновляются .. причем в самом массиве свойств прнимающего объекта ( for ..in..) все остается как прежде хоть он и инициализируется заново... вобщем надо еще подумать и покрутить.. Заменил на sendAndLoad() просто с фиктивной строкой запроса на сервер (принимаемая строка осталась без изменений) и все стало как надо ..уфф!
Чем дальше тем интереснее..
Кстати, облазил некоторое количество тематических форумов - про Цинк глухо, так кое-где кое-как не интересно...Неужто невостребован такой продукт? Или просто труден или просто лажа? Насчет лажи я конечно не думаю что так..

iNils 16.06.2006 02:02

А на родном форуме был?

alexcon314 16.06.2006 12:07

форумы с Цинком
 
В смысле MDM Support Forum? Был .. я имею в виду в рунете .. пообщаться толком не найду с кем.. Думаю тема интересная, можно ее развить.

iNils 16.06.2006 12:15

Цитата:

Сообщение от alexcon314
В смысле MDM Support Forum? Был .. я имею в виду в рунете .. пообщаться толком не найду с кем.. Думаю тема интересная, можно ее развить.

Полгода назад у меня было много вопросов по зинку в плане работы с файловой системой. Половину ответов нашел сам, половину на их форуме. В России ничего нужного мне не попадалось, но может плохо искал.

alexcon314 16.06.2006 17:37

По ходу и правда глухо... Ты не пропадай:)) Я тут проект на Цинке завернул.. может совет какой спрошу

alexcon314 27.06.2006 11:56

Открыл новый ресурс по цинку http://mdm-zinc.narod.ru

alexcon314 07.07.2006 09:43

iNils, у меня вопрос по работе с файловой системой в цинке. При вызове mdm.FileSystem.deleteFolder(); папака успешно удаляется, только если она пустая. Ты с этим сталкивался?

alexcon314 07.07.2006 12:08

c удалением файлов проблем нет ..т.е. папку надо удалять рекурсией что-ли?:(
пробовал дополнить цинк соответствующим методом через mdm.Extensions выбрав функцию в kernel32.dll ... тест проходит но в триале нет экспорта:((

iNils 07.07.2006 12:18

Цитата:

Сообщение от alexcon314
iNils, у меня вопрос по работе с файловой системой в цинке. При вызове mdm.FileSystem.deleteFolder(); папака успешно удаляется, только если она пустая. Ты с этим сталкивался?

Главное что бы ни одно приложение не использовало эту папку. Если ты в проводнике заходишь в нее и пытаешь флешкой(+зинк) папку удалить, то у тебя это не получится.

alexcon314 07.07.2006 14:33

да..была ведь такая мысль..щас попробую..

alexcon314 07.07.2006 15:23

попробовал.. чего-то не работает..может все-таки в триале дело? по идее расширить цинк несложно если доступна опция экспорта расширений а в триал заложили чтоб помучились, чего попроще..

alexcon314 07.07.2006 15:32

вообще я пытаюсь файловый менеджер сваять:) ..для малого предприятия с сетью дабы автоматизировать стандартные действия юзеров ну и контроль за их действиями наладить в духе систем документооборота.. есть исходник небольшой может глянешь?:) Хочу прицепить туда методы mdm.FIleSystem для начала .. и вот на первой же такая запара... хотя copy make вроде работают ничего..

alexcon314 12.07.2006 17:07

выяснил, что удаляется папка только если она пустая, независимо от того работает с ней еще какая программа или нет. пришлось удалять рекурсивно:) помедленнее, чем в проводнике но в разумных пределах...

alexcon314 16.07.2006 02:36

mdm.DLL();
 
в триальном цинке есть возможность обойти некоторые трудности с созданием расширений:
Код:

btn.onPress = function() {
  myDLL = new mdm.DLL("C:\\WINDOWS\\system32\\kernel32.dll");
  var frequency = myDLL.addParameter("integer", "1000");
  var duration = myDLL.addParameter("integer", "1000");
  myDLL.call("boolean", "Beep");
};

или..
Код:

btn.onPress = function() {
  myDLL = new mdm.DLL("C:\\WINDOWS\\system32\\kernel32.dll");
  var in_file = myDLL.addParameter("string", "c:\\myfile.log");
  var out_file = myDLL.addParameter("string", "c:\\var\\filemy.log");
  myDLL.call("boolean", "MoveFileA");
};

все пищит и перемещается :)
или даже
Код:

btn.onPress = function() {
        myDLL = new mdm.DLL("C:\\WINDOWS\\system32\\kernel32.dll");
        var deleteDir = myDLL.addParameter("string", "c:\\myDir");
        myDLL.call("boolean", "RemoveDirectoryA");
};

однако, эта виндовая функция удаляет опять же только пустые папки!!! :)

iNils 16.07.2006 02:56

У меня папки и не пустые удалялись.

alexcon314 17.07.2006 00:34

еще вопрос (не сочти за нахальство:)): ты пользовательский интерфейс какой-нибудь делал для работы с файлами ( во флэше само собой)? Цинковые объекты mdm.FileExplorer(); меня не совсем устраивают из-за их ярко выраженной "виндовости" и с функционалом у них что-то не то...
на пример, drag'n'drop не работает и не только это.. у меня есть наработки по использованию mx.controls.Tree для отображения дерева папок. На сайте Макромедии нашел расширенный вариант этого компонента с функционалом drag'n'drop, но... пока в раздумьях, есть проблемы. Ничего не посоветуешь?:) о креативном дизайне и исполнении речь не идет пока..

alexcon314 17.07.2006 01:15

да..еще. Смотрел твое портфолио - понравилось:) . самопроигрывающийся сайт меня прямо вдохновил..:) своё показать не могу:(

alexcon314 01.10.2006 01:16

Здравствуйте все. Долго отсутствовал - работал. С цинком. Поюзал много чего из его встроенных классов. Впечатление вполне положительное. Сетевой файл-менеджер сделал со всеми необходимыми функциями(copy,del,rename, recent,sendfile и т.д + общалка в стиле miranda + mysql -аккаунтинг). Начал делать под цинк dll-ки на VC++...:-)

Zone71 07.10.2006 18:29

Уважаемые флешеры!!! подскажите, где можно раздобыть этот ***** (в смысле ****** версию). Trial версию нашел но **** на нее не идет. *****************************************

iNils 07.10.2006 22:59

Zone71, читаем 3-ий пункт правил http://www.flasher.ru/forum/rules.php

Zone71 08.10.2006 21:41

Не могу понять, чем я противоречу этой правиле?

Kyber Anton 08.10.2006 23:40

Желание большой халявы возбраняется.

alexcon314 22.11.2006 00:22

Здравствуйте. Нет ли у кого опыта использования Flash Communication Server? В паре с цинком, конечно. Неплохие перспективы вырисовываются как будто.. По-общаемся?

KUZEN 23.11.2006 15:01

У меня тут другой вопросец ... как узнать координаты самого окошка в винде ... и можно ли программно управлять положением окошка?

Fl00r 23.11.2006 15:25

Кузен в правильную сторону мыслишь. Хороший вопрос.

Очень уважаю мультидмедию за их некогда благородный жест по отношению ко мне. Они мне бесплатно выслали программу с ключами, так как мы никак не могли перевести деньги в доллары/евры. Очень адекватные люди оказались.

iNils 23.11.2006 16:48

Цитата:

Сообщение от KUZEN
У меня тут другой вопросец ... как узнать координаты самого окошка в винде ... и можно ли программно управлять положением окошка?

******
Сорри, у меня был PDF файл с хелпом и данные я взял от туда, но потом заметил там странные вещи и потом решил перепроверить в хелпе на сайте, а там такого не нашел.

Fl00r 23.11.2006 16:49

А как вернуть эти координаты?

KUZEN 23.11.2006 16:51

Вопрос решён mdm.Forms.MainForm.x

alexcon314 23.11.2006 18:38

Как же с темой Zinc + FCS? Я извиняюсь за возможную навязчивость.
В доках по FCS говорится, что server-side скрипты можно оформлять и как .asc и как .js файлы. Что это означает? С .asc понятно, а с .js - что это, файлы javascript? Тогда, далее, можно ли написав javascript-файл заставить сервак работать с его локальной файловой системой при помощи объектов javascript? Или я совсем не туда уперся? Про sharedObject я не говорю - тут ясно. Или если вернуться к .asc файлам: сработает ли fscommand в таком файле? И по встроенным as-классам - допускается ли их использование в .asc сценариях?
Понимаю, что все можно проверить и прочитать где надо самому, но на что тогда форумы :) ?

KUZEN 23.11.2006 23:20

Я в этом вопросе не компетентен, подождём тех кто уже делал подобное

Dendroid 24.11.2006 06:28

Цитата:

Сообщение от alexcon314
Как же с темой Zinc + FCS? Я извиняюсь за возможную навязчивость.

Тут главное понимать, что FCS - это просто сервер для realtime collaboration, поддержки асинхронных соединений между сервером и флэшем - очень нишевый продукт. Его нельзя рассматривать как "универсальное средство для написания серверных частей на AS".
Цитата:

Сообщение от alexcon314
В доках по FCS говорится, что server-side скрипты можно оформлять и как .asc и как .js файлы. Что это означает? С .asc понятно, а с .js - что это, файлы javascript? Тогда, далее, можно ли написав javascript-файл заставить сервак работать с его локальной файловой системой при помощи объектов javascript?

Очень странные выводы. Способность понимать какой-то скриптовый язык не переносит автоматически всю функциональность этого языка и его объекты работы с окружением на интрепретатор - это просто средство оформления потока исполнения. FCS не предназначен и не может работать с сервером и его файловой системой, для этого исплользуются getaways - шлюзы для вызова серверных приложений: Coldfusion, Amfphp, Flash Remoting. Нравится javascript - смотрите в сторону ASP.
Цитата:

Сообщение от alexcon314
Или я совсем не туда уперся? Про sharedObject я не говорю - тут ясно. Или если вернуться к .asc файлам: сработает ли fscommand в таком файле? И по встроенным as-классам - допускается ли их использование в .asc сценариях?

На самом деле .asc имеет весьма отдалённое сходство с .as (по большому счёту, это всего лишь типы данных, ключевые слова и объект Math). Даже вызовы к sharedObject оформляются по-другому, и работает он немного иначе, и формат на диске у него другой. Ни о каких fscommand и речи нет, чего там вызывать, и главное - у кого? А переделать .as в .asc - обычно задача нетривиальная, если там не просто абстрактные математические функции...
Цитата:

Сообщение от alexcon314
Понимаю, что все можно проверить и прочитать где надо самому, но на что тогда форумы :) ?

:bye:

alexcon314 24.11.2006 08:31

Спасибо за исчерпывающий ответ. Вы сэкономили мне массу времени :) . Что-то подобное я и подозревал.
А почему флэш (macromedia) так чурается работы с файловой системой? (глупый вопрос)

alexcon314 26.11.2006 21:11

К FCS думаю еще вернемся. А сейчас хотелось бы обсудить возможностей классов mdm Script таких как mdm.FTP() mdm.HTTP(), а также объектов класса mdm.Network(HTTPD, Mail, UDP, TCP, UDP.TFTP, UDP.Socket, TCP.FileServer). С сокетами я работал вполне успешно. А вот по серверам FTP, FTPD, HTTP, TCP.FileServer вопрос такой: насколько они надежны и стабильны в работе? как обстоят дела с количеством подключений, держат ли они нагрузку какую? Все применительно к локальной сети. Дело в том, что манит простота их организации, но не обманет ли? :)

alexcon314 26.11.2006 23:24

C классами mdm.FTP и mdm.HTTP я пожалуй погорячился. С их помощью в приложение можно встроить соответствующих клиентов, не более, если верить документации. А вот по поводу объектов в классе mdm.Network вопрос остается открытам.. Меня, как вы, наверно, поняли, интересует возможность организации собственного сервера на этих объектах. Есть мысли по поводу mdm.Network.TCP.FileServer и mdm.Network.UDP.TFTP - использовать их для работы с файловой системой сервера или как дополнение к FCS для тех же целей.

alexcon314 28.11.2006 17:04

Из приведенных выше классов и объектов mdm меня наиболее вдохновил
mdm.Network.HTTPD - на его основе реально поднять свой сервер приложений(!). По крайней мере, в принципе. Насколько это будет реальный сервак - нужно экспериментировать, а может кто уже и сталкивался? Отзовитесь :)! Кому интересно даю ссылку на топик в форуме mdm, где приводится кусок рабочего кода - заготовки для такого сервера: http://www.mdmforum.com/forum/index....13492&hl=httpd. Интересный результат получится если его немного поправить:
getThis = "c:\\var\\Apache2\\htdocs\\index.htm";
mdm.Network.HTTPD.setResponse(mdm.FileSystem.loadFile(getThis), ASYNC);
Если ввести в адресную строку браузера http://127.0.0.1:8080/, то будет возвращена страница из htdocs апача! (путь к хтмл-у конечно может быть и другой :)). А если http://127.0.0.1:8080/<что-нибудь>?<par1=..&par2=..> можно видеть как "сервак" "парсит" строку запроса..
Не знаю как на остальных, а на меня это произвело неизгладимое впечатление :). Кроме того, в строке запроса можно напрямую отдавать команды свф-у внутри цинк-экзешника-сервера. Круто!

alexcon314 28.11.2006 23:12

Здравствуйте еще раз. Если кто посмотрел скрипт в топике mdm форума (см. выше), возможно задался вопросом: что за константа ASYNC такая? В доках о ней вроде я ничего не видел (надо еще глянуть :)). Неожиданно быстро получил ответ на том же форуме:
"mdm.ASYNC is a switch, it should does not matter what value it has, it imply a constant that could be provided as last argument (additional to required arguments in given method) - if provided ZINC tries to execute invoked method in async way - that is wrapper return immadiately letting next line of flahs code to execute, it is appliable only for methods that are type of Void - that is they do not return anything, using it for methods
that are expected to provide results (say like mdm.Database.MSAccess.getData()) does not make sense - because there
is no other way to get results from {mdm} script v.2 methods in async way (unless explicitely introduced by "events" methods for some objects - say like mdm.Browser.onDocumentComplete)"
B еще :
"Synchronous API Considerations (When changing to {mdm}script v2)
While {mdm}script 2.0 by default is synchronous, in some cases you might want to make the calling of a method asynchronous. This allows the flash player to continue its playback and scripting while the Zinc method is busy.
To make any {mdm}script 2.0 call asynchronous, you must add one more parameter to the end which defines it as such:

Synchronous call: mdm.Dialogs.prompt(“Hello”);
Asynchronous call: mdm.Dialogs.prompt(“Hello”,mdm.ASYNC);
NOTE: {mdm}script 1.0 calls are Asynchronous."
А здесь http://www.mdmforum.com/forum/index....73&#entry81773 есть отличный пример использования с progressbar'ом. Без ASYNC привязать процесс к progressbar'у в цинке наверно не получится..

alexcon314 15.01.2007 17:17

Здравствуйте. Небольшое сообщение на тему "правая кнопка" (наверно, перемещать не стоит)
Код:

onEnterFrame=function(){
        if (Key.isDown(2)) {
        //(code) by ex.: your_ShowMenu_function(); or broadcasterObj.broadcastMessage("onRightClick");
        }
}

Известный, наверное, многим способ отлова правого клика. Например, чтобы задействовать контекстное меню.
В цинке есть свой объект контекстного меню, но оно имеет сугубо виндовый внешний вид и не поддается кустомизации, вложенный пункт в него не встроишь... Но что хорошо в цинке - напрочь глушится стандартное контекстное меню проигрывателя :). Вышеприведенный код позволяет вывыводить меню любого вида (какое нарисуете) и любого содержания. Я, например, использую mx.controls.Menu. Надо только при компиляции в цинке указать Right Mouse Button Ignored. Именно, Ignored. Иначе, стандартное меню вывалится-таки.. Вобщем, цинк здесь на высоте :).
Есть еще пример, как прикрутить прогрессбар к файловым операциям и примерчик типа "hello world" на тему разработки своих dll для цинка, но не сейчас..


Часовой пояс GMT +4, время: 18:20.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.