Вверх ↑
Этот топик читают: Гость
Ответов: 37
Рейтинг: 0
#181: 2017-10-16 01:25:23 ЛС | профиль | цитата
Здраствуйте. Мне потребовалось просмотреть обучалки (42 штуки, примерно 5 часов) в swf (flash) формате. В роликах не встроены функция перемотки, и, есть много моментов, которые мне не интересны. Я мог бы обернуть их в свой плеер во флеше. Но, хочется сделать это средсвами HiAsm (ибо "грызу науку"). Знаю точно, что плеер может "увидеть" длину погружаемого ролика, его fps и width - heigth. Не могу понять как эти данные вытащить из плеера в HiAsm. Помогите, пожалуйста. Схема (в стадии наброска):

Add(Flash,8773348,938,154)
{
Width=1025
Height=797
link(onPlay,6580578:doTimer,[(1010,160)(1010,200)(856,200)(856,216)])
link(FileName,9022962:Value,[(944,135)(818,135)])
}
Add(MainForm,2953706,203,91)
{
Left=10
Top=10
Width=1033
Height=809
WinStyle=1
Caption="SWFPlay"
BorderStyle=4
MouseCapture=0
}
Add(DoData,9256555,735,217)
{
link(onEventData,8773348:doGoToFrame,[(829,223)(829,181)])
link(Data,12883620:Position,[(741,211)(692,211)(692,256)(636,256)])
}
Add(ODialog,14197408,686,84)
{
Filter="Flash|*.swf"
Title="SWF OPEN"
FileName=""
Point(FileName)
link(onExecute,9679040:doEvent1,[])
}
Add(Memory,9022962,812,84)
{
link(onData,13173456:doEvent1,[(856,90)(856,146)])
}
Add(Timer,6580578,868,210)
{
Interval=10
link(onTimer,10260684:doText,[])
}
Add(Edit,10260684,938,210)
{
Top=762
Width=1027
Height=23
Align=4
Color=-16777216
Enabled=1
KeyPreview=1
HintManager="Кадр"
Text="0"
Alignment=1
ReadOnly=0
link(onChange,12883620:doPosition2,[(991,216)(991,275)(618,275)(618,230)])
link(Str,8773348:CurrentFrame,[])
}
Add(Button,5460109,512,139)
{
Left=940
Top=765
Width=25
Height=15
Caption="||"
link(onClick,8773348:doPause,[(741,145)(741,167)])
}
Add(Button,3989721,512,181)
{
Left=965
Top=765
Width=25
Height=15
Hint="Stop"
Caption="[ ]"
link(onClick,8773348:doStop,[(741,187)(741,174)])
}
Add(Button,3691303,757,104)
{
Left=915
Top=765
Width=25
Height=15
Hint="Play"
Caption=">"
link(onClick,13173456:doEvent2,[(805,110)(805,153)])
}
Add(Hub,13173456,875,140)
{
InCount=2
OutCount=1
link(onEvent1,8773348:doPlay,[(913,146)(913,160)])
}
Add(TrackBar,12883620,630,217)
{
Left=30
Top=765
Width=885
Height=15
TabOrder=1
Max=3000
TickCount=10
PageSize=10
Point(doMax)
link(onPosition,9256555:doData,[])
}
Add(DropFile,11757932,686,21)
{
link(onDropFile,9679040:doEvent2,[(730,27)(730,97)])
}
Add(Hub,9679040,742,84)
{
InCount=2
OutCount=1
link(onEvent1,9022962:doValue,[])
}
Add(StyleXP,9082326,147,91)
{
}
Add(Button,3996349,511,84)
{
Left=5
Top=765
Width=25
Hint="Open File"
Caption="O"
link(onClick,14197408:doExecute,[])
}
Add(PointHint,10086156,14,322)
{
Info=#112:Это свойство я хотел бы изменить в зависимости от длины (в кадрах или милисекундах) открываемого swf файла. КАК?|
Width=631
Height=25
link(Event,12883620:doMax,[(657,334)(657,296)(599,296)(599,237)])
}

карма: 0

0
Ответов: 2059
Рейтинг: 131
#182: 2017-10-16 10:02:26 ЛС | профиль | цитата

Add(MainForm,5480995,371,98)
{
Left=10
Top=10
Width=1033
Height=809
WinStyle=1
Caption="SWFPlay"
BorderStyle=4
MouseCapture=0
}
Add(ODialog,14197408,854,91)
{
Filter="Flash|*.swf"
Title="SWF OPEN"
FileName=""
Point(FileName)
link(onExecute,9679040:doEvent1,[])
}
Add(Memory,9022962,980,91)
{
link(onData,13173456:doEvent1,[(1024,97)(1024,153)])
}
Add(Timer,6580578,1057,217)
{
Interval=10
link(onTimer,10260684:doText,[])
}
Add(Edit,10260684,1106,217)
{
Top=762
Width=1027
Height=23
Align=4
Color=-16777216
Enabled=1
KeyPreview=1
HintManager="Кадр"
Text="0"
Alignment=1
ReadOnly=0
link(onChange,12883620:doPosition2,[(1159,223)(1159,282)(786,282)(786,237)])
link(Str,11678112:CurrentFrame,[(1112,177)(1140,177)])
}
Add(Button,5460109,680,146)
{
Left=940
Top=765
Width=25
Height=15
Caption="||"
link(onClick,11678112:doPause,[(923,152)(923,118)])
}
Add(Button,3989721,680,188)
{
Left=965
Top=765
Width=25
Height=15
Hint="Stop"
Caption="[ ]"
link(onClick,11678112:doStop,[(923,194)(923,125)])
}
Add(Button,3691303,925,111)
{
Left=915
Top=765
Width=25
Height=15
Hint="Play"
Caption=">"
link(onClick,13173456:doEvent2,[(973,117)(973,160)])
}
Add(Hub,13173456,1043,147)
{
InCount=2
OutCount=1
link(onEvent1,11678112:doPlay,[(1095,153)(1095,111)])
}
Add(TrackBar,12883620,798,224)
{
Left=30
Top=765
Width=885
Height=15
TabOrder=1
Max=3000
TickCount=10
PageSize=10
Point(doMax)
link(onPosition,11678112:doGoToFrame,[(982,230)(982,132)])
}
Add(DropFile,11757932,854,28)
{
link(onDropFile,9679040:doEvent2,[(898,34)(898,104)])
}
Add(Hub,9679040,910,91)
{
InCount=2
OutCount=1
link(onEvent1,9022962:doValue,[])
}
Add(StyleXP,9082326,315,98)
{
}
Add(Button,3996349,679,91)
{
Left=5
Top=765
Width=25
Hint="Open File"
Caption="O"
link(onClick,14197408:doExecute,[])
}
Add(PointHint,10086156,182,329)
{
Info=#112:Это свойство я хотел бы изменить в зависимости от длины (в кадрах или милисекундах) открываемого swf файла. КАК?|
Width=631
Height=25
}
Add(FlashEx,11678112,1134,105)
{
Left=180
Top=10
Width=835
Height=735
link(onPlay,8229168:doEvent1,[(1178,111)(1178,149)(961,149)(961,188)])
link(FileName,9022962:Value,[(1140,93)(1063,93)(1063,135)(986,135)])
}
Add(DoData,16184148,623,280)
{
link(onEventData,12883620:doMax,[(727,286)(727,244)])
link(Data,11678112:TotalFrames,[(629,208)(1147,208)])
}
Add(Hub,8229168,973,182)
{
link(onEvent1,16184148:doData,[(999,188)(999,237)(611,237)(611,286)])
link(onEvent2,6580578:doTimer,[(1011,195)(1011,223)])
}


Редактировалось 1 раз(а), последний 2017-10-16 10:39:27
карма: 6

0
Ответов: 16884
Рейтинг: 1239
#183: 2017-10-16 11:04:52 ЛС | профиль | цитата
Элемент FlashEx не найден!
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 2059
Рейтинг: 131
#184: 2017-10-16 12:25:17 ЛС | профиль | цитата
Tad писал(а):
Элемент FlashEx не найден!

Виноват, исправлюсь!
http://forum.hiasm.com/getfile/38220

Воланд писал(а):
Что же это у вас, чего ни хватишься, ничего нет!


Редактировалось 1 раз(а), последний 2017-10-16 13:27:51
карма: 6

0
Ответов: 37
Рейтинг: 0
#185: 2017-10-17 00:48:15 ЛС | профиль | цитата
Спасибо, уважаемый flint2! За "сеанс черной магии с полным её разоблачением".
карма: 0

0
Ответов: 37
Рейтинг: 0
#186: 2017-10-20 00:56:55 ЛС | профиль | цитата
Прошу прощения! Надоел уже... Но, есть еще вопрос. В одном из примеров на форуме я обнаружил вот такой компонент ("FilePart" Версия: 1.1 Автор: Dilma):


Add(FilePart,1038836,536,145)
{
}
HiAsm его видит, значит он у меня установлен. Но, я его не вижу! Не могу найти его ни на одной панели, ни через поиск компонентов. Чую, что это затупище со мной случилось...
карма: 0

0
Ответов: 2059
Рейтинг: 131
#187: 2017-10-20 01:39:56 ЛС | профиль | цитата
Fangir, найди файл c:\..\HiAsm\Elements\Delphi\conf\FilePart.ini и перетащи его на панель конструктора HiAsm.
карма: 6

0
Ответов: 37
Рейтинг: 0
#188: 2017-10-20 01:43:12 ЛС | профиль | цитата
Спасибо, добрый человек! Нашел еще парочку подобных. Компоненты из старых версий? Или это я так обновился?
карма: 0

0
Ответов: 2059
Рейтинг: 131
#189: 2017-10-20 01:54:42 ЛС | профиль | цитата
Категорически не советую делать общее обновление!!! Много чего можно потерять! Делай резервные копии для отката!
При необходимости можно шлёпнуть на компоненте в палитре правой кнопкой мыши и выбрать "Обновление SVN".

Редактировалось 1 раз(а), последний 2017-10-20 01:56:31
карма: 6

0
Ответов: 37
Рейтинг: 0
#190: 2017-10-20 02:16:45 ЛС | профиль | цитата
Хороший совет, однако... Запоздалый, однако... Спасибо!

...Конферансье плакал, ловил в воздухе что-то руками, бормотал:
— Отдайте мою голову! Голову отдайте! Квартиру возьмите, картины возьмите, только голову отдайте!
карма: 0

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#191: 2017-10-20 03:45:44 ЛС | профиль | цитата
Fangir писал(а):
Компоненты из старых версий?

Это скрытые компоненты. Они оставлены в пакете для совместимости, но использовать их крайне не желательно, и они не поддерживаются.
карма: 22

0
Ответов: 37
Рейтинг: 0
#192: 2017-10-20 09:34:59 ЛС | профиль | цитата
nesco писал(а):

Это скрытые компоненты. Они оставлены в пакете для совместимости, но использовать их крайне не желательно, и они не поддерживаются.

Спасибо.
карма: 0

0
Ответов: 37
Рейтинг: 0
#193: 2017-10-23 10:29:44 ЛС | профиль | цитата
Здравствуйте. Такой вопрос: как правильно работать с маской в MT_String? Чем отличается от использывания маски в FormatStr? Например, как можно (и можно ли?) избавиться от пробелов в таблице в приведенной ниже схеме при извлечении строк из МТ потока? (Избавиться именно с помощью маски, без дополнительных ухищрений). И, как сформировать подачу в Memo, чтобы результат был подобен тому который делает FormatStr? (опять таки, с помощью только лишь маски, если это возможно).


Add(Memo,11850206,833,385)
{
Left=300
Top=10
Width=310
Height=345
}
Add(MainForm,2953706,84,35)
{
Width=631
Height=402
Caption="Учу я строки и МТ потоки"
}
Add(Edit,11519275,259,70)
{
Left=10
Top=10
Width=85
Text="Первый"
ClearAfterEnter=1
}
Add(Edit,543972,322,70)
{
Left=105
Top=10
Width=85
Text="Второй"
ClearAfterEnter=1
}
Add(StringTable,15927352,476,427)
{
Left=5
Top=135
Width=280
Height=220
Columns=#3:one|3:duo|5:tresa|
StrDelimiter="~"
}
Add(Edit,12970079,378,70)
{
Left=200
Top=10
Width=85
Text="Третий"
ClearAfterEnter=1
}
Add(Edit,14053045,357,308)
{
Left=10
Top=65
Width=275
Text="Отсюда в таблицу"
ClearAfterEnter=1
link(onEnter,7439464:doEvent1,[(404,321)(404,433)])
}
Add(Button,14948934,602,427)
{
Left=5
Top=100
Caption="из МТ"
link(onClick,3695003:doAdd,[])
}
Add(Button,1130384,175,210)
{
Left=10
Top=40
Caption="В поле"
link(onClick,8584740:doEvent1,[])
}
Add(VisualStrings,5906690,448,70)
{
Lines=#2:~.|
}
Add(StrCat,16642886,259,210)
{
link(Str1,11027055:Var2,[])
link(Str2,15813284:Var1,[(272,166)])
}
Add(StrCat,12923074,322,210)
{
link(Str1,5024658:Var2,[])
link(Str2,15813284:Var2,[])
}
Add(GetDataEx,15813284,329,161)
{
Angle=1
link(Data,5906690:Text,[(454,166)])
}
Add(StrCat,8123914,378,210)
{
link(Str1,14413957:Var2,[])
}
Add(Hub,8584740,224,210)
{
OutCount=4
link(onEvent1,16642886:doStrCat,[])
link(onEvent2,12923074:doStrCat,[(280,223)(280,216)])
link(onEvent3,8123914:doStrCat,[(312,230)(312,216)])
link(onEvent4,3995192:doStrCat,[(253,237)(253,265)])
}
Add(StrCat,3995192,294,259)
{
link(onStrCat,7136541:doStrCat,[])
link(Str1,16642886:Result,[(300,251)(265,251)])
link(Str2,12923074:Result,[(307,251)(328,251)])
}
Add(StrCat,7136541,357,259)
{
link(onStrCat,14053045:doText,[(395,265)(395,300)(345,300)(345,314)])
link(Str2,8123914:Result,[(370,251)(384,251)])
}
Add(MT_AddData,3695003,658,427)
{
Count=3
link(onAdd,16291004:doEvent1,[])
link(Data1,4546224:Var3,[(664,145)])
link(Data2,3143795:Var3,[(671,131)])
link(Data3,2985414:Var3,[(678,110)])
}
Add(GetDataEx,11027055,259,140)
{
link(Data,11519275:Text,[])
}
Add(GetDataEx,5024658,322,126)
{
link(Data,543972:Text,[])
}
Add(GetDataEx,14413957,378,105)
{
link(Data,12970079:Text,[])
}
Add(MT_String,9969259,245,427)
{
Delimeter="."
Mask="%1~ "
Point(doStrMask)
link(onResult,12590412:doEvent1,[])
}
Add(Label,15852741,217,350)
{
Left=115
Top=85
Width=167
Height=17
Caption="Enter, чтобы добавить в таблицу"
}
Add(Hub,7439464,420,427)
{
InCount=2
OutCount=1
link(onEvent1,15927352:doAdd,[])
}
Add(Hub,12590412,294,427)
{
link(onEvent1,14053045:doText2,[(323,433)(323,321)])
link(onEvent2,7439464:doEvent2,[])
}
Add(MT_String,1279050,756,406)
{
Delimeter="."
Mask="%1 Как изменить этот коммент?\r\n%2 "
Point(doStrMask)
link(onResult,14546397:doWork2,[])
}
Add(Hub,16291004,707,427)
{
link(onEvent1,1279050:doStrMask,[])
link(onEvent2,9969259:doStrMask,[(730,440)(730,481)(238,481)(238,454)])
}
Add(InfoTip,13048988,168,189)
{
Info=#6:В поле|
Width=50
Height=60
}
Add(InfoTip,6916196,98,343)
{
Info=#14:Нажмите Enter,|14:чтобы добавить|9:в таблицу|
HAlign=0
Width=162
Height=46
Margin=3
}
Add(InfoTip,2263429,595,406)
{
Info=#5:из МТ|
Width=50
Height=60
}
Add(FormatStr,15295985,567,168)
{
DataCount=3
Mask="Комментарий к ПЕРВОМУ элементу %1\r\nКомментарий ко ВТОРОМУ элементу %2\r\nКомментарий к ТРЕТЬЕМУ элементу %3"
link(onFString,14546397:doWork1,[(816,174)])
link(Str1,4546224:Var2,[])
link(Str2,3143795:Var2,[])
link(Str3,2985414:Var2,[])
}
Add(GetDataEx,4546224,567,140)
{
Angle=3
link(Data,11027055:Var3,[])
}
Add(GetDataEx,3143795,574,126)
{
Angle=3
link(Data,5024658:Var3,[])
}
Add(GetDataEx,2985414,581,105)
{
Angle=3
link(Data,14413957:Var3,[])
}
Add(Button,14708473,504,168)
{
Left=225
Top=40
Caption="В текст"
link(onClick,15295985:doString,[])
}
Add(HubEx,14546397,812,406)
{
link(onEvent,11850206:doText,[])
}
Add(InfoTip,8181122,497,154)
{
Info=#7:В текст|
Width=50
Height=60
}

Перечитал правила форума http://forum.hiasm.com/wiki/530, и, рискнул залить картинку. Если ошибся -- удалите, пожалуйста.
MT.gif
Буду очень благодярен, если "фткнёти мине носам" на очевидный источник информации по даннму вопросу.
Однако, даже стыдно: Форум писал(а) "fangir - ответов: 10" . Должно быть так: fangir вопросов: 4, спасибов: 6, ответов:0.
карма: 0

0
Ответов: 37
Рейтинг: 0
#194: 2017-10-23 22:02:23 ЛС | профиль | цитата
Кажется разобрался. Если кому-то интересно, пример от nesko http://forum.hiasm.com/getfile/18900 вот из этой ветки http://forum.hiasm.com/topic/9563/3. Вот мои выводы: метод doStrMask элемента MT_String воспринимает любой блок соответствующим маске %1, т.е. не воспринимает %2, %3 и т.д.

Редактировалось 1 раз(а), последний 2017-10-23 22:14:12
карма: 0

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#195: 2017-10-23 22:39:49 ЛС | профиль | цитата
Fangir писал(а):
Вот мои выводы: метод doStrMask элемента MT_String воспринимает любой блок соответствующим маске %1, т.е. не воспринимает %2, %3 и т.д.

Не, неправильно понял. В методе doStrMask не ищется никакое соответствие маске, и кроме %1 это свойство не понимает больше никаких значений, если написать %2, %3 и тд, то они так и останутся без изменения. При наличии %1, оно будет заменено на текущий элемент MT, и к нему будет приплюсовано все, что стоит дальше. Это прекрасно видно из примера. Для чего это предусмотрел автор компонента, останется тайной, известной только автору, нам не удалось раскрыть сей тайный замысел.
карма: 22

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)