Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - Balls, Balls and again Balls!

Ответить
Настройки темы
Разное - Balls, Balls and again Balls!

Пользователь


Сообщения: 75
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: Greshnick
Дата: 21-07-2013
Доброго времени суток, Уважаемые форумчане! Возник вопрос по поводу реализации в коде повтора проигрыша анимации пузырков.

Код на 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(); или можно реализовать как то по другому. Посоветуйте, как решить данную проблему. На всякий случай прикрепляю исходник. Заранее спасибо.

Отправлено: 17:00, 16-07-2013

 

Ветеран


Сообщения: 1853
Благодарности: 146

Профиль | Отправить PM | Цитировать


Вы там, это, по осторожнее с названием темы! А то у людей, посмотревших мультик про Бивиса и Баттхеда, при слове Balls возникают несколько не те ассоцияицы!

Отправлено: 11:35, 17-07-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для lxa85

Необычный


Contributor


Сообщения: 4466
Благодарности: 995

Профиль | Сайт | Отправить PM | Цитировать


Greshnick, Action Script установить не удалось, т.ч. извините, здесь я не помощник.

Отправлено: 15:31, 17-07-2013 | #3


Пользователь


Сообщения: 75
Благодарности: 0

Профиль | Отправить PM | Цитировать


lxa85 да вроде сам разобрался. Только вот не нравится, одна вещь растет память когда идет новая итерация всплытия. хотя все шарики были до этого удалены из памяти и со сцены и созданы снова. Среда программирования Adobe Flash Professional CS5

Последний раз редактировалось Greshnick, 21-07-2013 в 19:20.


Отправлено: 20:36, 18-07-2013 | #4


Пользователь


Сообщения: 75
Благодарности: 0

Профиль | Отправить PM | Цитировать


XPEHOMETP, да у меня у самого "ассацияицы" c одноименной игрушкой для Андройд. Может помните...

Отправлено: 20:38, 18-07-2013 | #5


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата Greshnick:
хотя все шарики были до этого удалены из памяти »
Удаление объектов ещё не приводит к освобождению памяти. Память освободится, когда движок соизволит провести «сборку мусора».

К слову сказать, Microsoft таки добавила в конце концов в WSH/JScript метод «CollectGarbage()», принудительно запускающий процесс.

Попробуйте порыться в: Adobe Flash Professional CS5 Garbage Collector - Поиск в Google, может что и будет.

Отправлено: 21:46, 18-07-2013 | #6


Пользователь


Сообщения: 75
Благодарности: 0

Профиль | Отправить PM | Цитировать


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;

Отправлено: 10:24, 19-07-2013 | #7


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Greshnick, используйте XPath для получения потребного по порядку или по атрибуту элемента (пример на VBScript):
Код: Выделить весь код
Option Explicit

Dim objXMLDocument
Dim objXMLElement

Set objXMLDocument = WScript.CreateObject("MSXML2.DOMDocument")

If objXMLDocument.load("E:\Песочница\0297\0001.xml") Then
	' Элемент с указанным значением атрибута
	Set objXMLElement = objXMLDocument.selectSingleNode("/images/image[@id='3']")
	WScript.Echo objXMLElement.attributes.item(0).nodeValue
	
	'Третий элемент, нумерация с нуля!
	Set objXMLElement = objXMLDocument.selectSingleNode("/images/image[2]")
	WScript.Echo objXMLElement.attributes.item(0).nodeValue
	
	' Удаляем элемент
	objXMLElement.parentNode.removeChild objXMLElement
	
	Set objXMLElement = Nothing
	
	' Смотрим результат
	WScript.Echo objXMLDocument.xml
End If

Set objXMLDocument = Nothing

WScript.Quit 0
Пользование xml в качестве базы данных — весьма, весьма не лучший выбор с точки зрения производительности.
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:52, 19-07-2013 | #8


Пользователь


Сообщения: 75
Благодарности: 0

Профиль | Отправить PM | Цитировать


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 т.к. там будут расчеты различных показателей.

Отправлено: 12:17, 19-07-2013 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - Balls, Balls and again Balls!

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Flying Balls-7 2.0 OSZone Software Новости программного обеспечения 0 23-06-2010 13:30
Eyes Balls 1.0 OSZone Software Новости программного обеспечения 0 31-01-2010 22:30




 
Переход