Вверх ↑
Администрация
Ответов: 15294
Рейтинг: 1518
#1: 2007-01-12 05:24:06 ЛС | профиль | цитата
Nic, да все верно. Это не ошибка, просто пока у компонента метод Init не вызывается.

tsdima писал(а):
Я предлагаю разделить код элемента на клиентский и серверный. Более того, допускаю, что реализация точки может быть как для клиентского, так и для серверного скрипта (возможно, даже две реализации одновременно), т.е. в зависимости от того, с какой точкой-событием есть связь (клиентской или серверной).


Немного подумал - напрашивается примерно такая схема:

Add(MultiElementEx,14481033,399,287)
{
link(onClick,16548331:GetData,[])
}
BEGIN_SDK
Add(EditMultiEx,4781561,3,3)
{
WorkCount=#7:doPrint|
EventCount=#7:onPrint|
DataCount=#7:onClick|
}
END_SDK
Add(EventFromData,16548331,399,224)
{
link(onEvent,13298588:doMessage,[])
}
Add(Message,13298588,462,224)
{
}
Add(PointHint,437416,189,301)
{
Info=#23:Основное тело программы|
Width=162
Height=18
link(Event,14481033:doPrint,[(375,310)(375,293)])
}

предположим тут MultiElementEx это один из компонент-тегов с добавленным событием onClick в виде data-точки. EventFromData - это ключевой элемент, после которого идут компоненты так называемой клиентской части. Он умеет правильно вставлять код клиента в страницу и в качестве результата возвращает например имя ф-ции. Message - это один из элементов палитры для вывода сообщения.

Коды элементов в такой трактовке могут быть примерно такими:

MultiElementEx:
func doPrint
   print('echo ', "<a onclick='return " & onclick & "';>")
event(onPrint)
end

EventFromData
func GetData
  print("?>")
setLanguage("java")
print("<script>")
print("function func" & _id_ & "() {")
event(onEvent)
print("}")
print("</script>")
print("<?php")
setLanguage("php")
return("func" & _id_ & "()")
end

Message:
func doMessage
  if( langIs("java") )       // реализуем клиентский код элемента
print('alert(', Message, ');')
elseif( langIs("php") ) // реализуем серверный код элемента
print('echo ', Message, ';')
end
event(onMessage)
end
карма: 26
0