![]() |
|
||||||||||
|
|||||
|
[+ 1.7 20.03.06]
Регистрация: Mar 2006
Сообщений: 182
|
Есть флешка иллюстрирующая алгоритм сортировки
у меня на баттоне Control весит весь код этой флешки Всего на сцене 1 кадр Что мне нужно повесить на кпопку - Кнопка "Сначала" чтобы анимация запустилась с начала (т.е. так же как и при пуске флешки) gotoAndPlay(); - не помогает |
|
|||||
|
Modus ponens
|
Все что у тебя записано в onClipEvent (load){} вынеси в отдельную ф-цию которая будет по твоему желанию восстанавливать все переменные в исходное значение (предварительно удалив все созданное в процессе работы). Проблема в том, что онЛоад вызывается всего 1 раз, когда клип загружается (наверное именно поэтому она так и называется %).
К сожалению все написано очень запутано, много лишнего, очень тяжело разобраться не смотря на то, что задача очень простая... Если нет времени переделывать, а флешку планируешь показывать в ХТМЛ странице, то проще обратится из флешки к жаваскрипту и попросить перезагрузится, чем возится и приводить код в нормальное состояние... Ну или аналогично можно всю флешку грузить в другую, пустую, опять же при втором варианте, почти наверняка возникнут проблемы с областью видимости переменных, так что не советую... Просто в качестве пожелания: - никогда не писать код на кнопках. - не использовать кнопки. - не использовать on(event), onClipEvent(clipEvent) - объявлять все функции как свойства _root или объектов какого-то из классов (если какая-нибудь "забытая" функция в давным-давно удаленном клипе запустит setInterval() например - потом иди ищи откуда оно взялось %) - однотипные объекты создавать програмно, ссылки на них для простоты обращения хранить опять же в _root. - не создавать функций и переменных в них с именами идентичными названию функции - это дико усложняет понимание написанного =( ну и под конец... это вот вообще безумие... Зачем нужна функция которая всегда возвращает undefined (если ты специально ничего не будешь возвращать, то undefined получишь в любом случае)? При том, что нет ни одного вызова, где бы тебе требовалось, чтобы эта функция вообще что-то возвращала...
__________________
Hell is the possibility of sanity |
|
|||||
|
[+ 1.7 20.03.06]
Регистрация: Mar 2006
Сообщений: 182
|
перенес весь код из onClipEvent (load){} на кнопку "Сначала"
on (release)
{
function MoveJ(j)
{
this._parent.JVal.val.text = "j=" + j;
this._parent.JVal._x = ObjArray[j]._x;
MovePointer(this._parent.for_j._y);
if (j > 1)
{
moveJ = true;
} // end if
} // End of the function
function MoveI(i)
{
this._parent.IVal.val.text = "i=" + i;
this._parent.IVal._x = ObjArray[i]._x;
MovePointer(this._parent.for_i._y);
if (i > 0)
{
moveI = true;
} // end if
} // End of the function
////////////
ArrayToSort = new Array(5, 7, 2, 3, 0, 8, 5, 2);
ObjArray = new Array(this._parent.obj1, this._parent.obj2, this._parent.obj3, this._parent.obj4, this._parent.obj5, this._parent.obj6, this._parent.obj7, this._parent.obj8);
i = 0;
j = 0;
k = 0;
l = 0;
MoveJ(j);
MoveI(i);
timeToColor = 0;
timeToColormax = 15;
timeToMoving = 0;
timeToMovingmax = 30;
gotoAndPlay(nextFrame);
standart = true;
changePointer = false;
goToR = false;
goOutOfR = false;
changePlace = false;
counter = 0;
playingVar = true;
MovePointer = function (yPos)
{
this._parent.pointer._y = yPos;
return(undefined);
};
}
И Как его теперь загрузить этот код при загрузке клипа (или можно как-то съэмитировать нажатие кнопки "Сначала") |
|
|||||
|
Modus ponens
|
function init() {
_root._arr2sort = [];
var _l1:MovieClip = _root.createEmptyMovieClip("holder_mc", 0);
for (i=0; i<8; i++) {
_l1.attachMovie("ball", "ball"+i+"_mc", i*2, {_y:10, _x:10+i*65, _cnt:Math.floor(Math.random()*10)});
_l1["ball"+i+"_mc"].c_txt.text = _l1["ball"+i+"_mc"]._cnt;
_root._arr2sort.push(_l1["ball"+i+"_mc"]._cnt);
}
_root._l1 = _l1;
}
init();
function sortArr_fn() {
trace(_root._arr2sort);
var counter:Number = 0;
_root.onEnterFrame = function() {
for (i=counter; i<_root._arr2sort.length; i++) {
var checked:Number = _root._arr2sort[counter];
var evaluated:Number = _root._arr2sort[i+1];
trace("checked "+checked+" evaluated "+evaluated);
if (checked>evaluated) {
_root._arr2sort[counter] = evaluated;
_root._arr2sort[i+1] = checked;
}
}
counter++;
counter>_root._arr2sort.length ? delete _root.onEnterFrame : _root.resetBalls();
trace(_root._arr2sort);
};
}
function resetBalls() {
for (c=0; c<_root._arr2sort.length; c++) {
_root._l1["ball"+c+"_mc"].c_txt.text = _root._arr2sort[c];
}
}
ld_btn.b_txt.text = "Reload array";
go_btn.b_txt.text = "Sort array";
ld_btn.onRelease = function(){
_root.init();
}
go_btn.onRelease = function(){
_root.sortArr_fn();
}
Вложение 15083
__________________
Hell is the possibility of sanity Последний раз редактировалось wvxvw; 27.04.2008 в 22:15. |
|
|||||
|
[+ 1.7 20.03.06]
Регистрация: Mar 2006
Сообщений: 182
|
wvxvw, спасибо за помощь
Вот что я сделал: 1) я ничего не менял во search.fla я сделал еще одну флешку main.fla в кадре которого добавил _root.createEmptyMovieClip("search", _root);
_root.search.loadMovie("search.swf");
this.Reload.swapDepths(_root.getNextHighestDepth());
this.graph.swapDepths(_root.getNextHighestDepth());
on (release)
{
if (this._parent.search == Number(this._parent.search))
{
unloadMovieNum(this._parent.search);
}
else
{
this._parent.search.unloadMovie();
} // end if
_root.createEmptyMovieClip("search", 0);
_root.search.loadMovie("search.swf");
}
во флешке search.fla я добавил звук: 1) В библиотеку добавил звук 2) прописал для этого звука в Linkage - Music 3) на кнопку "Control" я добавил еще инициализацию звука и его запуск при запуске флешки onClipEvent (load)
{...
var my_sound = new Sound();
var cur_offset = 0;
music_on = true;
my_sound.attachSound("Music");
my_sound.start();
....}
on (release)
{
if (this._parent.playingVar & this._parent.music_on)
{
trace("Воспроизведение остановлено.");
_root.cur_offset = this._parent.my_sound.position;
this._parent.my_sound.stop();
this._parent.playingVar = false;
this._parent.music_on = false;
this._parent._parent.sgraph._alpha = 100;
this._parent._parent.pgraph._alpha = 0;
}
else
{
trace("Воспроизведение начато.");
this._parent.my_sound.start(_root.cur_offset / 1000, 1);
this._parent.playingVar = true;
this._parent.music_on = true;
this._parent._parent.sgraph._alpha = 0;
this._parent._parent.pgraph._alpha = 100;
} // end if
}
Теперь помещаю откомпелированный файл search.swf в папку где у меня main.swf запускаю этот main.swf и вижу что звук не проигрывается - ни с самого запуска, ни с нажатия на кнопку Пауза-ПлейВ чем проблема??? Значит он не видит мой звук или что??? Прикрепляю все эти файлы - ТОЛЬКО В ФАЙЛ search.fla НУЖНО СРАЗУ ИМПОРТИРОВАТЬ КАКОЙ-НИТЬ ЗВУК(я его пока его вырезал, т.к. с ним флешка много весит и сюда его нельзя прикрепить) И В LINKAGE ЗВУКА НАПИСАТЬ Music для того чтобы можно было проверить его работу |
|
|||||
|
[+ 1.7 20.03.06]
Регистрация: Mar 2006
Сообщений: 182
|
Почему нет звука - он его не видит что ли, или как???
можно ли как-нить подрубить звук в моем случае??? |
|
|||||
|
[+ 1.7 20.03.06]
Регистрация: Mar 2006
Сообщений: 182
|
Цитата:
перенес весь код в несколько функций в первый кадр слоя Action Script в функцию Zapolnenie(); прописал восстанавление всех переменных в исходное значение и вызываю ее кнопкой "Сначала" но что-то она некорректно работает Нужно наверное еще предварительно удалить все созданное в процессе работы. Как мне это сделать??? |
![]() |
![]() |
Часовой пояс GMT +4, время: 13:28. |
|
|
« Предыдущая тема | Следующая тема » |
|
|