Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 30.08.2006, 01:05
тарзан вне форума Посмотреть профиль Отправить личное сообщение для тарзан Найти все сообщения от тарзан
  № 1  
Ответить с цитированием
тарзан
[+ 1.7 20.03.06]
 
Аватар для тарзан

Регистрация: Mar 2006
Сообщений: 182
По умолчанию Как запустить ролик на начало

Есть флешка иллюстрирующая алгоритм сортировки
у меня на баттоне Control весит весь код этой флешки
Всего на сцене 1 кадр
Что мне нужно повесить на кпопку - Кнопка "Сначала"
чтобы анимация запустилась с начала (т.е. так же как и при пуске флешки)
gotoAndPlay(); - не помогает
Вложения
Тип файла: rar search.rar (18.8 Кб, 61 просмотров)

Старый 30.08.2006, 04:57
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 2  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Все что у тебя записано в onClipEvent (load){} вынеси в отдельную ф-цию которая будет по твоему желанию восстанавливать все переменные в исходное значение (предварительно удалив все созданное в процессе работы). Проблема в том, что онЛоад вызывается всего 1 раз, когда клип загружается (наверное именно поэтому она так и называется %).
К сожалению все написано очень запутано, много лишнего, очень тяжело разобраться не смотря на то, что задача очень простая...
Если нет времени переделывать, а флешку планируешь показывать в ХТМЛ странице, то проще обратится из флешки к жаваскрипту и попросить перезагрузится, чем возится и приводить код в нормальное состояние...
Ну или аналогично можно всю флешку грузить в другую, пустую, опять же при втором варианте, почти наверняка возникнут проблемы с областью видимости переменных, так что не советую...

Просто в качестве пожелания:
- никогда не писать код на кнопках.
- не использовать кнопки.
- не использовать on(event), onClipEvent(clipEvent)
- объявлять все функции как свойства _root или объектов какого-то из классов (если какая-нибудь "забытая" функция в давным-давно удаленном клипе запустит setInterval() например - потом иди ищи откуда оно взялось %)
- однотипные объекты создавать програмно, ссылки на них для простоты обращения хранить опять же в _root.
- не создавать функций и переменных в них с именами идентичными названию функции - это дико усложняет понимание написанного =(

ну и под конец... это вот вообще безумие...
Код:
MovePointer = function (yPos)
    {
        this._parent.pointer._y = yPos;
        return(undefined);
    };
Зачем нужна функция которая всегда возвращает undefined (если ты специально ничего не будешь возвращать, то undefined получишь в любом случае)? При том, что нет ни одного вызова, где бы тебе требовалось, чтобы эта функция вообще что-то возвращала...
__________________
Hell is the possibility of sanity

Старый 30.08.2006, 08:52
тарзан вне форума Посмотреть профиль Отправить личное сообщение для тарзан Найти все сообщения от тарзан
  № 3  
Ответить с цитированием
тарзан
[+ 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);
    };
}
И теперь нажав кнопку "Сначала" для объявления всех переменных и после этого нажав кнопку "Control" ничего не происходит

И Как его теперь загрузить этот код при загрузке клипа (или можно как-то съэмитировать нажатие кнопки "Сначала")
Вложения
Тип файла: rar search.rar (19.0 Кб, 53 просмотров)

Старый 30.08.2006, 23:53
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 4  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Код:
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.
Старый 31.08.2006, 14:58
тарзан вне форума Посмотреть профиль Отправить личное сообщение для тарзан Найти все сообщения от тарзан
  № 5  
Ответить с цитированием
тарзан
[+ 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();
....}
4) и на экземпляр кнопки But (он внутри кнопки "Control") написал код для паузы и воспроизведение звука с места паузы
Код:
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.fla - все работает - запускается при старте звук и работает пауза звука и его воспроизведение с места паузы

Теперь помещаю откомпелированный файл search.swf в папку где у меня main.swf
запускаю этот main.swf и вижу что звук не проигрывается - ни с самого запуска, ни с нажатия на кнопку Пауза-Плей

В чем проблема??? Значит он не видит мой звук или что???

Прикрепляю все эти файлы - ТОЛЬКО В ФАЙЛ search.fla НУЖНО СРАЗУ ИМПОРТИРОВАТЬ КАКОЙ-НИТЬ ЗВУК(я его пока его вырезал, т.к. с ним флешка много весит и сюда его нельзя прикрепить)
И В LINKAGE ЗВУКА НАПИСАТЬ Music для того чтобы можно было проверить его работу
Вложения
Тип файла: rar Files.rar (33.5 Кб, 48 просмотров)

Старый 03.09.2006, 17:15
тарзан вне форума Посмотреть профиль Отправить личное сообщение для тарзан Найти все сообщения от тарзан
  № 6  
Ответить с цитированием
тарзан
[+ 1.7 20.03.06]
 
Аватар для тарзан

Регистрация: Mar 2006
Сообщений: 182
Почему нет звука - он его не видит что ли, или как???
можно ли как-нить подрубить звук в моем случае???

Старый 05.09.2006, 21:04
тарзан вне форума Посмотреть профиль Отправить личное сообщение для тарзан Найти все сообщения от тарзан
  № 7  
Ответить с цитированием
тарзан
[+ 1.7 20.03.06]
 
Аватар для тарзан

Регистрация: Mar 2006
Сообщений: 182
Цитата:
Сообщение от wvxvw
Все что у тебя записано в onClipEvent (load){} вынеси в отдельную ф-цию которая будет по твоему желанию восстанавливать все переменные в исходное значение (предварительно удалив все созданное в процессе работы).
попробовал так сейчас сделать:
перенес весь код в несколько функций в первый кадр слоя Action Script
в функцию Zapolnenie(); прописал восстанавление всех переменных в исходное значение

и вызываю ее кнопкой "Сначала"
Код:
on(release){
Zapolnenie();
}
но что-то она некорректно работает
Нужно наверное еще предварительно удалить все созданное в процессе работы. Как мне это сделать???
Вложения
Тип файла: rar file.rar (17.1 Кб, 51 просмотров)

Создать новую тему Ответ Часовой пояс GMT +4, время: 13:28.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 13:28.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.