![]() |
Balls, Balls and again Balls!
Доброго времени суток, Уважаемые форумчане! Возник вопрос по поводу реализации в коде повтора проигрыша анимации пузырков.
Код на ActionScript 3 выглядит следующим образом: import com.greensock.*; import flash.events.Event; import com.greensock.TimelineMax; var tl : TimelineMax = new TimelineMax(); var arr : Array = new Array; var l : int = 0; Balls(); function Balls() : void { for (l=0; l<500; l++) { arr[l] = new ball(); arr[l].x=Math.random()*stage.stageWidth; arr[l].y=stage.stageHeight; var inerTL : TimelineMax = new TimelineMax(); //arr[l].alpha=0; inerTL.insert(TweenMax.to(arr[l], 1, {y:0, onComplete : onDelete, onCompleteParams : [arr[l]]})); inerTL.insert(TweenMax.to(arr[l], 0.3, {alpha:1})); addChild(arr[l]); tl.append(inerTL, -(Math.random()*10)); } } function onDelete(e : MovieClip) : void { removeChild(e); e=null; } tl.append(inerTL, -(Math.random()*10)); В глобальную линию анимации tl добавляются наши анимации движения шариков. Есть предположения может быть у данной функции есть какое нибудь событие onComplete в котором бы я вызывал новое исполнение функции Balls(); или можно реализовать как то по другому. Посоветуйте, как решить данную проблему. На всякий случай прикрепляю исходник. Заранее спасибо. |
Вы там, это, по осторожнее с названием темы! А то у людей, посмотревших мультик про Бивиса и Баттхеда, при слове Balls возникают несколько не те ассоцияицы!
|
Greshnick, Action Script установить не удалось, т.ч. извините, здесь я не помощник.
|
lxa85 да вроде сам разобрался. Только вот не нравится, одна вещь растет память когда идет новая итерация всплытия. хотя все шарики были до этого удалены из памяти и со сцены и созданы снова. Среда программирования Adobe Flash Professional CS5
|
XPEHOMETP, да у меня у самого "ассацияицы" c одноименной игрушкой для Андройд. Может помните...
|
Цитата:
К слову сказать, Microsoft таки добавила в конце концов в WSH/JScript метод «CollectGarbage()», принудительно запускающий процесс. Попробуйте порыться в: Adobe Flash Professional CS5 Garbage Collector - Поиск в Google, может что и будет. |
Iska, lxa85, XPEHOMETP, не хотелось бы начинать новую тему. Но просто проект связан делаю и интерфес и кодирую логику в делфи. Вопрос в следующем. Делфи изучаю ну года 4 наверное. До сегодняшнего дня все время работал на access и знать не хотел никакие xml. Но изучив логику работы с xml и ее интеграцию и простоту использования как языками web-сферы так и прикладного. Решил проект создавать на xml т.к. в дальнейшем планирую сделать сайт на основе этой базы. Да и легко использовать на хостингах. php-скриптик + xml вот тебе готовый сервер для запросов к базе данных и легкая упаковка и использование прикладными программами созданными на делфи или С++, при локальном использовании на компе пользователя. Для парсинга xml использую стандартный xmlDocument уже разобрался и с созданием и добавлением дочерних ветвей в файл. Но вот удаление не могу понять как реализовать нашел на просторах интернета на другом форуме запись об удалении дочерней ветви но постановка задачи стоит что ветвь одна, а у меня их несколько и может доходить до 100 и более. И как удалить конкретно 5 или 30 ветвь в структуре не могу найти.
xml структура файла следующая: <?xml version="1.0" encoding="utf-8"?> <images> <image id="1"></image> <image id="2"></image> <image id="3"></image> <image id="4"></image> .... </images> код для удаления одной ветви выглядит следующим образом: var XML: IXMLDocument; begin //загружаю исходный xml файл XML := LoadXMLDocument('Example1.xml'); //вот здесь происходит удаление ветви, когда их несколько удаляется только первая, а как удалить последующие? XML.DocumentElement.ChildNodes.Remove(XML.ChildNodes['images'].ChildNodes['image'].AttributeNodes.Nodes['1']); //сохранение результата в измененый xml файл XML.SaveToFile('Exmple2.xml'); end; |
Greshnick, используйте XPath для получения потребного по порядку или по атрибуту элемента (пример на VBScript):
Код:
Option Explicit |
Iska, все оказалось достаточно тривиально)))
procedure TForm1.Button6Click(Sender: TObject); var XML: IXMLDocument; begin XML := LoadXMLDocument('Example1.xml'); //вот получение необходимой мне ветви из списка. В данном случае я удаляю 4 элемент т.к. счет идет от 0. XML.DocumentElement.ChildNodes.Remove(XML.DocumentElement.ChildNodes.Nodes[3]); XML.SaveToFile('Exmple2.xml'); end; База полностью на xml не будет основана xml используется для хранения портфолио людей. Т.к. ACCESS и flash я как то не думал их связывать. Т.е. у нас есть флешка в которой ярко и красочно сделано оформление портфолио. Во флешку при помощи ExternalCall я передаю путь и имя xml файла для подключения. Флеш принимает и строит список людей и выводит из базы данные в компоненты. Основной удар будет на access т.к. там будут расчеты различных показателей. |
Время: 11:32. |
Время: 11:32.
© OSzone.net 2001-