PDA

Просмотр полной версии : Динамическая подгрузка внешнего скрипта


ak_s
11.10.2006, 10:18
Госпада, каким образом можно заставить swf сосать внешний скрипт из энного места .as ( ну или .js или еще какого в этом случае можно ), чтоб каждый раз не компилить новую версию swf а менять только файл скрипта.

Nirth
11.10.2006, 10:30
Никак

FourSide
11.10.2006, 11:23
А с помощью Flex'а можно?

Nirth
11.10.2006, 11:44
Нельзя

aksios
11.10.2006, 12:14
Глобально - никак. Но сдается мне, что проект предусматривает использование n-го количества команд - тогда можно встроить в флеш интерпретер. Но в силу проблем с расходом ресурсов речь идет о премитивных по сути вещах. Вообще, зачем это нужно - не ну просто интересно - окромя образовательных целей?

Nirth
11.10.2006, 12:19
Я так понимаю, автору просто надоедает ждать пока компилятор флэш, откомпилит все.

Можно юзать MTASC, он компилит в пару сотен раз быстрее, правда цена за это - 100% AS2 код.

Stepan_nsk
11.10.2006, 12:59
Нет, на самом деле просто тут предполагается сделать такую услугу типа создания роликов юзерами - сделать интерфейс управления кадрами лялятополя и короче чтоб все параметры от их действий сохранялись в некий скрипт ( типа, загрузил картинку -приписал траекторию движения/масштаб в %/альпху - написал текст - приписал траекторию движения/масштаб в %/альпху ), который потом будет в swf исполняться и выдаваться в виде ролика.

за образец мне выдали такой вот такую штуку:
http://flash-creations.com/notes/dynamic_drawingapi.php

там же есть и подгрузка всякая и лялятополя но чет там так все замучено что я ниче не понял

з.ы сорри тему открыл с логина сотоварища по работе

vooparker
11.10.2006, 13:03
вообще ничто не мешает записать действия пользователя в xml файл со всеми параметрами которые тебе необходимы, дальше написать парсер к этому xml и все. думаю принцип ясен.

Nirth
11.10.2006, 13:07
А так ли нужно загружать скрипт? нельзя загрузить данные(координаты и тип действия)

Например есть код

function moveBehavior(oldX:Number,oldY:Number,newX:Number,newY:Number):Void
{
//implementation
}

function rotationBehavior(oldAngle:Number,newAngle:Number):Void
{
//implementation
}

function resizeBehavior(oldW:Number,oldH:Number,newW:Number,newH:Number):Void
{
//implementation
}


Так же есть метод-менеджер всего этого дела


function proccessBehavior(actionType:String,params:Array):Void
{
if(actionType = "resize")
{
resizeBehavior.apply(null,params);
}else if(actionType="rotate")
//and so on and so forth....
}
}


Ну и данные содержатся в хмле


<actions>
<action type="move" oldX="5" ...... />
</actions>

aksios
11.10.2006, 13:24
В примере написано - runtime, а чего там замучено?
В общем, 2 варианта решения:
1. см. у Nirth выше.
2. пользовать серверные скрипты чтоб генерить swf.

Stepan_nsk
11.10.2006, 13:25
Nirth хм. ну вот предположим так:

- у меня в руте в первом кадре помещен мувиклип "part1", а так же команда Stop()
- внутри "part1" мувиклипа еще один мувиклип "holder" в который грузится динамический имадж с которым, скажем, нужно произвести движение влево в течение 10 сек а потом сработать команда _root.play чтоб таймлайн рута перешел на второй кадр в котором будет "part2" c "holder2" и так далее по схеме

вот не сильно нагло будет спросить как тогда конкретно для этой ситуации будет выглядить твой скрипт именно во флеше? :) и где он будет помещаться

Nirth
11.10.2006, 13:35
Будет нагло, как видно я даже абстрактный код написал сокращенно=)


В принципе пару часиков посидев в google.com, и насмотревшись примеров вы сами поймете, если есть конечно опыт программирования.

Stepan_nsk
11.10.2006, 13:51
нету... дизанер я :) рисую...

Nirth
11.10.2006, 13:55
Тогда скорее всего будет два сценария

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

Второй вариант, я пишу для вас на АС1, но мне это надоедает быстрее, ибо я его не люблю, и потом вы ничего без меня не можете сделать.

Я советую нанять кодера, или стать кодером, чтобы стать советую сначала взять цели менее амбициозные.

flash33
11.10.2006, 14:58
Пользуйтесь библиотекой MING на здоровье, 8-й флеш вроде пока не генерит, а семерку за милую душу. Тактика такова - юзер пишет свои функции, скрипт на пхп преобразует это в ас код и генерирует swf.
Все элементарно, Ватсон

Stepan_nsk
11.10.2006, 15:11
Ну, че дали с тем и разбираюсь... Не моя это затея... :)

flash33
12.10.2006, 21:43
Вот на досуге сделал пример с генерацией swf на динамически созданом AS

Stepan_nsk
13.10.2006, 15:26
Ой б*я... Пойти повешаться с таких механизмов :) Мой рисовальный мозг не выдежит такой матрицы...

Nirth
13.10.2006, 16:11
Советую объяснить шефу\заказчику, что у вас другая специализация.