PDA

Просмотр полной версии : If и дидактическая игра.


genyus
06.04.2008, 21:50
Подскажите, пожалуйста, как сделать, чтобы при перетаскивании ребенком соответствующего текста на картинку, включался соответствующий звук.
На стейже 3 картины, три разных текста и в библиотеке три разных звука (лебеди, журавли, чайки).

MrPoma
07.04.2008, 02:27
Ребенка от компьютера убрать! Код в студию!

qazwsx
07.04.2008, 08:02
hitTest(), sound()

Mr. Fixit
07.04.2008, 08:47
Читайте в хелпе про класс Sound и MovieClip. =)

genyus
07.04.2008, 16:14
К сожалению, мы не программисты, а просто воспитатели http://www.scuolarussamilano.com/igrydetsad.htm , и без помощи профессионалов нам точно не разобраться. Мы попробовали
код на тексте:

on (press) {
if ((_root.lebedi._droptarget == "/textlebedi")) {

.attachSound( "zvukLebedi" )
}или для звука надо LoadMovieNum?

iNils
07.04.2008, 16:46
genyus, для оформления своего кода надо использовать теги .

genyus
07.04.2008, 16:59
Спасибо.

genyus
07.04.2008, 21:26
Посмотрите, пожалуйста, что здесь не так:
в слое action:

s = new Sound();
s.attachSound("zvukLebed");
.

и на тексте:

onClipEvent (mouseUp) {
if (_root.textlebedi._droptarget == "lebedi") {
_root.s.start();
} else {
_root.s.stop();
}
}.

MrPoma
07.04.2008, 21:58
ХитТеста нету.

genyus
08.04.2008, 00:00
источник здесь:http://www.scuolarussamilano.com/iniziative/PtizyViktorinaDetsad.fla
Куда и как оформлять этот hitTest? Так?

onClipEvent (mouseUp) {
if (hitTest (_root.textlebedi._droptarget == "lebedi") {
_root.s.start();
} else {
_root.s.stop();
}
}
.

qazwsx
08.04.2008, 07:17
Пример из хелпа (Для справки хелп открывается если нажать F1).

The following example uses hitTest() to determine if the circle_mc movie clip overlaps or intersects the square_mc movie clip when the user releases the mouse button:

square_mc.onPress = function() {
this.startDrag();
};
square_mc.onRelease = function() {
this.stopDrag();
if (this.hitTest(circle_mc)) {
trace("you hit the circle");
}
};

genyus
08.04.2008, 15:24
Спасибо. А как сделать, чтобы после выполнения условия if (this.hitTest(lebedi)), включался sound?

qazwsx
08.04.2008, 15:34
Все тот же F1
The following example attaches the sound logoff_id to my_sound. A sound in the library has the linkage identifier logoff_id.

var my_sound:Sound = new Sound();
my_sound.attachSound("logoff_id");
my_sound.start();
Как это не парадоксально звучит но F1 решает 99% вопросов

genyus
08.04.2008, 16:09
попробовали поставить этот код на кнопку с текстом - говорит, ошибка. поставили на mc, в котором кнопка с текстом, пишет, что код только для кнопок.
textlebedi.onPress = function() {
this.startDrag();
};
textlebedi.onRelease = function() {
this.stopDrag();
if (this.hitTest(lebedi)) ;
};
var my_sound:Sound = new Sound();
my_sound.attachSound("zvuklebed");
my_sound.start();
.
Наверняка, достаточно несколько строк кода, только мы не знаем как его составить и куда ставить.

lexa2000lexa
08.04.2008, 18:20
этот код нужно разместить не на кнопке и не на клипе, а на кадре в котором находиться кнопка-клип.

genyus
08.04.2008, 19:21
сделали, но так текст вообще больше не перемещается.

lexa2000lexa
08.04.2008, 19:24
а выложить исходник можете?

genyus
08.04.2008, 22:40
спасибо! попытки наши здесь:
http://www.scuolarussamilano.com/iniziative/PtizyViktorinaF.fla

http://www.scuolarussamilano.com/iniziative/PtizyViktorinaDetsad.fla

qazwsx
09.04.2008, 08:56
У вас на сцене 2 обьекта с названием textlebedi 1 кнопка 1 мувиклип. Удалите кнопку и все будет работать

var my_sound:Sound = new Sound();

function sPlay(arg:String):Void{
my_sound.attachSound(arg);
my_sound.start();
}

textlebedi.onPress = function() {
this.startDrag();
};

textlebedi.onRelease = function() {
this.stopDrag();

if (this.hitTest(lebedi)) {
sPlay("zvukLebed");
}
};

genyus
09.04.2008, 15:54
Check Syntax выдает ошибку в 3 и 6 строчке - скобки ему не нравятся. Без скобок тоже ему не подходит.
А для оставшихся двух мувиклипов с текстом код ставить вместе с первым в тоже самое окошко action?
Спасибо огромное за помощь!

qazwsx
09.04.2008, 16:18
Уберите :Void правда не понимаю в чем вдруг дело стало...
Да для оставшихся код вставлять тамже, и для проигрывания звка использовать функцию sPlay() где аргумент функции строка название проигрываемого файла.

genyus
10.04.2008, 17:25
мы вставили код, сделали линкейдж, но все равно не работает. Где ошибка, никак не найдем. http://www.scuolarussamilano.com/iniziative/PtizyViktorinaF.fla

var my_sound:Sound = new Sound();

function sPlay(arg:String) {
my_sound.attachSound(arg);
my_sound.start();
}

textlebedi.onPress = function() {
this.startDrag();
};

textlebedi.onRelease = function() {
this.stopDrag();

if (this.hitTest(lebedi)) {
sPlay("zvukLebed");
}
};
textJuravli.onPress = function() {
this.startDrag();

};
textJuravli.onRelease = function() {
this.stopDrag();

if (this.hitTest(juravli)) {
sPlay("zvukJuravli");
}
};
textChayki.onPress = function() {
this.startDrag();

};
textChayki.onRelease = function() {
this.stopDrag();

if (this.hitTest(chayki)) {
sPlay("zvukChayki");
}
};

qazwsx
11.04.2008, 09:09
А так у вас AS1, player 6 Змените sPlay(arg:String) на sPlay(arg)

genyus
11.04.2008, 14:28
Спасибо огромное! Как поменяли в настройках AS1 на AS2 все заработало!http://www.scuolarussamilano.com/igryGenius/PtizyViktorinaF.html
Еще раз огромнейшее спасибо Вам, qazwsx !!!