Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   3 важных вопроса :) (http://www.flasher.ru/forum/showthread.php?t=81641)

Carmack 23.06.2006 17:30

3 важных вопроса :)
 
Первым делом хочу поблагодарить всех участников этого форума за все те советы которые они дают. Благодаря вам я многому научился.
Я делаю сайт и уменя появилось несколько "ламерских" вопросов. Не знаю может тему я создал не в том разделе, а надо было открывать в програмировании... но это уже пусть решают модеры :)

1. На многих флешсайтах я видел что можно выбирать несколько фоновых треков. Меня интересует способ, где есть допустим 3 кнопки, и нажимая на одну начинает играть музыка. Нажимая на следующую первая музыка выключается и начинает играть следующая. Так же хотелось бы чтоб эти треки загружались с сайта. Я искал в поиске подобные темы и нашел несколько. Но там они "обрывались" и в итоге понять мне как ламеру было сложно что и как.
2. Допустим ролик состоит из 5 сцен. 1 сцена - прелоадер. 2 сцена - интро. 3 - сцена вариант меню, 4 - сцена второй вариант меню, 5 - сцена третий вариант меню.
Задача - сделать так что бьы после сцены с интро рандомно выбиралась следующая сцена из трех возможных. Т.е. при каждой загрузке ролика игрались разные сцены :) ну вы поняли... я не думаю что это очень сложно (ошибаюсь?) но мои ламерские познания не дают мне это сделать.
3. Меня интересует как можно сделать так - что у ролика был фоновый звук и он не зависел от тех музыкальных треков. Т.е. он выключался отдельно от них, нажатием на подобную кнопку :)

может быть некоторые скажут что я слишком много хочу... но мне бы хотелось все-таки получить ответ на мои вопросы ;)
Заранее спасибо за любой отклик!

BigDan 23.06.2006 17:53

1.Почитай про класс Sound
2.Основной совет:читать хелп.
Воспользоватся Math.random. Например:
if(Math.random>=someNumber){
gotoAndPlay(....);
}
3.Найдя ответ на первый вопрос ты узнаешь ответ на этот вопрос.

Carmack 26.06.2006 05:10

1. ок буду читать
2.
Тут все сложнее :)
я ламер.. пытался разобраться со всеми этими if-ами и нифига не получилось вроде код пишу правильно но не пашет...
но поидее есть же более простой способ такой:
Код:

gotoAndstop("Scene"+random(3), 1);
но не пашет! И выдает ошибку:
Цитата:

**Error** Scene=test, layer=Layer 1, frame=1:Line 1: Scene name must be quoted string
gotoAndstop("Scene"+random(3), 1);

Total ActionScript Errors: 1 Reported Errors: 1
сцены названы у меня правильно scene0,scene1,scene2
в чем проблема?
подскажите какой-нибудь код пожалуйста :( я не могу разобраться

Morozov1982 26.06.2006 05:34

Ну, во-первых: не gotoAndstop, а gotoAndStop, а дальше, лучше всего будет посмотреть на твой исходник, а то не совсем понятно, что у тебя там получается :)

BigDan 26.06.2006 12:54

random(3)-такого не существует во флеше:Math.random

Carmack 26.06.2006 14:30

Вложений: 1
Исходник простой
4 сцены.
1 сцена с одним кадром и этим кодом (уже измененным):
Код:

gotoAndStop("Scene"+Math.ceil(Math.random()*3), 1);
и три сцены где по одному кадру и все :)
не фига не переходит и пишет такую же ошибку...
Я очень плохо знаю AS но все же...
если задать переменную значение которой будет рандомно генерится при каждой загрузке ролика... и исходя из этого значения будет выбираться сцена - то код должен выглядить как?
так?
Код:

var x = Math.ceil(Math.random()*3);
if (x = 1) { gotoAndPlay("Scene1", 1);
}
if (x = 2) {gotoAndPlay("Scene2", 1);
}
if (x = 3) {gotoAndPlay("Scene3", 1);
}

но если это вставить в первый кадр то нифига не пашет :) ошибок никаких нет... просто ничего не происходит

motor4ik 26.06.2006 14:34

Цитата:

Сообщение от BigDan
random(3)-такого не существует во флеше:Math.random

учим флэш, прежде чем говорить что-то! устное замечание.

Цитата:

Flash Player 4. This function was deprecated in Flash 5 in favor of Math.random().

Usage
random(value)

Example
The following use of random() returns a value of 0, 1, 2, 3, or 4:

random(5);


BigDan 26.06.2006 15:04

Ну, sorry.

Vertax 26.06.2006 15:15

Цитата:

var x = Math.ceil(Math.random()*3);
if (x = 1) { gotoAndPlay("Scene1", 1);
}
if (x = 2) {gotoAndPlay("Scene2", 1);
}
if (x = 3) {gotoAndPlay("Scene3", 1);
}
Вспомни разницу между "=" и "==".

Carmack 26.06.2006 15:22

БОЛЬШОЕ СПАСИБО :)
респект тебе! ;)
теперь работает :) я уж думал я безнадежный дурак и никогда не смогу написать даже такого простого скрипта.. ;)
спасибо

mr.N 26.06.2006 15:35

Зачем сцены?
Переходи на кадры, а музыкальные файлы вставляй программно.
Например, вот такой код:

Код:

ss0="background.mp3"
ss1="background2.mp3"
ss2="background3.mp3"

soundsource=this["ss"+random(3)];

backsound = new Sound();
backsound.loadSound(soundsource, false);
backsound.onLoad=function(){
backsound.start();
}

Вставь всё это в руте одной сцены которая идёт после интры, то есть не нужно три разных сцены с разными мелодиями, этот код автоматически тебе загрузит случайную мелодию.
Вроде всё работает, сейчас проверил.

Carmack 26.06.2006 15:46

Вложений: 1
Код:

stop();
var x:Number = new Number(Math.ceil(Math.random()*3));
if (x == 1) { gotoAndPlay("ra1", 1);
}
else if (x == 2) {gotoAndPlay("ra2", 1);
}
else if (x == 3) {gotoAndPlay("ra3", 1);
}

вот такой код работает :) и рандомно выбираются сцены
правда я не знаю stop нужен или нет...
Правда здесь есть странный глюк
когад я скопировал этот код в свой основной проект :) там он не пашет...
начинает проигрываться просто следующая сцена после той, где должно рандомом решить что будет играть... почему так не знаю
может кто подскажет?
mr.n такой вариант мне не совсем подходит, но все равно спасибо!

mr.N 26.06.2006 15:52

поменяй на gotoAndStop и всё нормально будет

Vertax 26.06.2006 15:53

Слухай, вложенный файл работает как надо. В чем проблема? Поконкретней...

mr.N 26.06.2006 15:57

Слухай, вложенный файл работает как надо. В чем проблема? Поконкретней...

Он переходит сразу на последнюю сцену, а должен на случайную.

Vertax 26.06.2006 15:58

Ты не поверишь, но у меня переходит на случайную.
Парадокс блин :-)

mr.N 26.06.2006 16:35

Действительно?А
у меня нет, но всё равно лучше для надёжности сделать gotoAndStop, а то делать gotoAndPlay, а потом в кадре писать stop() как-то неразумно.

Carmack 26.06.2006 16:58

все правильно код должен работать
но если я использую этот код в флешке со сложной анимацией и множеством объектов на этих сценах он не работает
включается просто следующая сцена которая идет за той, где находится этот код
я к сожалению не могу предоставить исходник того фала
но как вы думаете почему так происходит?
там 50 кадров с анимацией
много объектов и тд... в конце каждой сцены (из который должно выбирать) есть код gotoAndPlay(1) играть сцену сначала...
:)

Carmack 26.06.2006 17:58

Преобразовал эту всю анимацию в movie клипы.. сделал так же как в этом тестовом файле в сценах два слоя (один слой с клипом другой с кодом) всего продолжительность - 1 кадр
в итоге - стопы не работают и играется всегда последняя сцена :(
убираю клипы и больше ничего не меняю и теперь все работает
убрал стопы поменял gotoAndPlay на gotoAndStop и теперь вместо перехода на сцены показывается просто белое окно (фон моего ролика) такой сцены даже у меня нет чистой!
в movie клипах нет кода никакого!
почему может быть такой глюк?

Vertax 26.06.2006 18:02

Скорее всего это не глюк, а ты что-то делаешь не так. Но что именно, боюсь, на данный момент тебе никто не скажет.

Carmack 26.06.2006 18:03

ок
а какие тогда можно попробовать другие способы рандомного выбора следующей сцены?

Vertax 26.06.2006 18:06

А почему именно сцены?

Carmack 26.06.2006 18:07

ну ок кадров
просто как мне кажется так сложнее будет сделать все то, что я хотел сделать со звуком

Vertax 26.06.2006 18:14

Ты написал что преобразовал всю анимацию в клипы.
ОК. В первом кадре вставь только анимацию 1 сцены, 2 - 2, 3 - 3.
И в первом кадре добавь код:
Код:

var x:Number = new Number(Math.ceil(Math.random()*3));
gotoAndStop(x);

Enjoy.

P.S. Звук вставляй в клипы.

Carmack 26.06.2006 18:33

Вложений: 1
все равно глючит :(
я пытался понять что не так в этих мувиклипах обрезал их :) и нифига... вот выкладываю исходник с этим глюком там в клипах только фон
и все равно виден такой же глюк

Vertax 26.06.2006 18:54

Помоему у тебя файл немного битый.
Выдели все на таймлайне->Copy Frames. Далее создаешь новый документ и Paste Frames.
После этого у меня все заработало.

Carmack 26.06.2006 21:48

у меня все равно глючит :(
выложи плиз рабочий исходник!

Carmack 28.06.2006 23:30

Спасибо всем :) я разобрался

Ребят пожалуйста помогите мне сделать вот что:
есть кнопка стоп (квадратик) есть кнопка плей (треугольник)
есть допустим три кружочка кнопки (нажимая на каждую играет музыка)
как мне все это реализовать и плюс желательно что бы были лоадеры этих треков. Т.е. я жму на кружочек и под кружкам к примеру :) есть полоска прогресса загрузки
пожайлуста помогите подскажите
у меня вообще никаких мыслей нет :( не могу ничего придумать
может есть исходники какие-нибудь с подобным?


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

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