![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: May 2008
Сообщений: 41
|
Тема эта поднималась уже где-то на форуме, но хотелось бы более подробного объяснения затронутого вопроса, желательно на пальцах. К примеру есть папка my_cat, в ней исходник фотогалереи my.fla, папка с картинками images и файл my.xml с описанием структуры галереи. Таким образом, картинки не внедряются в .swf, а подгружаются с помощью .xml. Как правильно прописать пути к картинкам и .xml, чтобы после копмпиляции в Zinc, эти картинки подгружались в экзешник также, как и в .swf? Знаю, есть свойство mdm.Application.path, но не могу разобраться, как его нужно правильно использовать.
|
|
|||||
|
listener
|
mdm.Application.path - абсолютный путь к папке, из которой был запущен цинк-ехе. Допустим, "с:\my_cat".
Хмл лежит в той же папке. URL для хмл будет "с:\my_cat\my.xml" или mdm.Application.path + "my.xml". В хмл в пишете < path="images/foto1.jpg" ...>. Путь к картинке mdm.Application.path + "images\\foto1.jpg". Т.е. содержание атрибута path надо добавить к абсолютному пути до рабочей папки. Вообще, может работать и с относительными путями. Но лучше все-таки использовать абсолютные. Для того, чтобы вычислить налету абсолютный путь и предназначен mdm.Application.path. |
|
|||||
|
Регистрация: May 2008
Сообщений: 41
|
Однако, не пойму. Порассуждаем: если в своем исходнике я имею такую переменную,
то правильная загрузка xml (пока без Цинка) выглядит следующим образом Теперь, имея в виду дальнейшую обработку в Zinc, вместо последней строчки пытаемся написать (заранее сомневаясь): и конечно же, ничего не работает. SWF не компилируется: "Error opening URL ". Очевидно, что так: mdm.Application.path+xmlFile - писать неправильно. Очевидно, что надо дать swf нормально загрузить xml, используя свои инструменты, а потом уже, во время компиляции Цинком должны отработать скрипты mdm. В этом, собственно и состоял вопрос: понимаю, как должен загружаться xml без цинка; думаю, что понимаю, как работает mdm.Application.path, но не разберусь, как правильно обеспечить взаимосвязь скриптов. |
|
|||||
|
listener
|
Цитата:
Флэш не воспринимает в скрипте ничего, что начинается с mdm., для него это пустой звук - undefined. Все эти mdm-вставки начинают работать только после компиляции в цинке, тогда флэш все mdm. видит как надо и выполняет что нужно. Я таки рекомендую использовать абсолютные пути. Последний раз редактировалось alexcon314; 16.01.2009 в 03:26. |
|
|||||
|
Регистрация: May 2008
Сообщений: 41
|
Кажется, получилось. И все оказалось проще, чем представлялось. Вот старое объявление переменной с адресом основного xml в оригинальном исходнике (исходник взят где-то на форуме. Автор - участник форума Wolsh):
меняем на
Теперь разбираемся с адресом папки с картинками. Переменная, хранящая ссылку на необходимый узел XML:
Искомая переменная с адресом папки с картинками. Было:
Стало
pageXML здесь - переменная, хранящая содержимое нашего xml, imageFolder - атрибут узла xml, содержащий адрес папки с картинками в виде :"images/". И все. Вот это я называю объяснением "на пальцах". Конечно, галерея не доделана, здесь грузятся только превьюшки, но картинки снаружи, они грузятся, и это главное.
Спасибо, alexcon314. Хотел бы задать еще один вопрос по поводу управления дочерними формами. Заранее извиняюсь за offtopic, да и вообще, за столь пространное сообщение, но не хочется плодить темы на одно сообщение, тем более вопросы, в некотором роде, перекликаются. Итак. Здесь на форуме в faq-е читаем: Цитата:
Так неправильно? И еще. Что фактически происходит, когда мы используем show() или hide(). Включаем-выключаем форму, делая ее при hide() абсолютно безразличной к манипуляциям с активной формой, как будто нажимая на значок закрытия окна, или просто невидимой. но каким-то образом реагирующей на движения и щелчки мыши? |
|
|||||
|
listener
|
Сказанное в цитате относится к другому контексту. Так следует делать, когда вторая форма сразу нужна для работы с ней из основной формы, например через Flash.cаllFunction или еще что-то, а именно это и нужно делать в контексте поста, откуда вы взяли цитату.. Это просто особенность (можно назвать и косяк) цинка - дочерняя форма недоступна для работы с ее содержимым, пока она не будет хотя бы раз отображена нормально...
Хиде форма помещается в точку с координатами -30000,-30000, так во всяком случае ведут себя обычные окна. Она просто "висит" там, никак не проявляя себя и не реагируя ни на какие манипуляции. Однако, если она уже была хотя бы один раз показана (см. выше), то загруженный в нее ролик продолжает жить нормальной жизнью, производятся вычисления, с ним можно "общаться" и т.д. Цитата:
.Замечу, что все сказанное мной в отношении цинка на этом форуме за редким исключением относится, главным образом, к версии цинка 2.5.0.34. |
|
|||||
|
Регистрация: May 2008
Сообщений: 41
|
Большое спасибо. Но как же все таки насчет show() и hide()? Правильно ли будет считать, что выполняя mdm.Forms.SubForm.hide(), я как бы "выключаю" форму (аналог нажатия кнопки закрытия окна), а не просто прячу ее? Другими словами, после применения этой команды, если я совершаю какие-нибудь действия с главной, активной формой, реагирует ли на эти действия скрытая форма? Интересуюсь, главным образом потому, что хочу вызывать дочернюю форму без Caption, а закрывать ее с помощью hide(). Может вместо hide-show, нужно для этих целей использовать другие команды?
Цитата:
Последний раз редактировалось starserfer; 16.01.2009 в 23:39. |
|
|||||
|
listener
|
Сокрытие формы скорее аналогично нажатию кнопки "свернуть" для окна. Но при использовании hide() она еще и с таскбара пропадает.
Цитата:
Другие команды использовать можно, например, mdm.Forms.SubForm.x = -5000 (или 8000 или 10000 или...). Но тоже самое происходит при команде hide(). Я не помню только точно ли отображается в цинке дочерняя форма на таскбаре, но вроде там это можно отключить вручную, через установку какого-то флажка..если уж вам ее надо совсем скрыть)). |
|
|||||
|
Регистрация: May 2008
Сообщений: 41
|
Наконец, понял. "Хиде" меня вначале озадачило из поста №6. Спасибо.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 21:12. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|