Страница 54 из 56

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

Добавлено: 10 апр 2013, 09:04
Ugly
Александр
это экземпляры мувиклипов. windowInfo имелось ввиду уже выведен на сцену, в него я добавил needMoreGold.
Что ж, странно, буду разбираться. Спасибо)

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

Добавлено: 16 апр 2013, 11:03
Ugly
Упс, что-то я темы попутал и не туда отправил...

Ладно, повторю тут.
Вот такой вопрос созрел: есть слушатель мыши на событие MOUSE_WEEL, который реагирует на прокрутку колесика (к примеру, у меня он отвечает за скроллинг карты), но есть проблема - помимо прокрутки карты в самой флешке так же прокручивается всё окно браузера. Можно ли это как-то изменить?
И заодно - MOUSE_WEEL не работает в IE8 и в мозиле, но работает в хроме - это нормально или у меня где-то баг?

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

Добавлено: 05 май 2013, 04:20
112

Код: Выделить всё

var mc = new mc_rec();function Main() {addChild(mc);}  Main()stage.addEventListener(MouseEvent.CLICK,function (event:MouseEvent){                        mc.x=100;            addChild(mc);            trace(mc.numChildren);             })  
mc -мувик в библиотеке ,при addChild он добавляется только один раз.Возможно ли сделать чтобы он мог добавляться на сцену таким образом много раз,и как ими можно будет управлять(т.е идентифицировать)?

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

Добавлено: 05 май 2013, 08:13
Casperovskii
112
Один и тот же мувик - нельзя. Нужно сделать массив мувиков и каждый раз создавать новый мувиклип, а затем обращаться к нему через массив.

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

Добавлено: 05 май 2013, 10:19
sasha^
выше правильно сказано... а теперь в действии :)
например, такой код будет добавлять на сцену мувики по клику, смещяя каждый на 100 пикс. (учитывая что в библиотеке привязанный класс - mc_rec)

Код: Выделить всё

var mcs:Array = new Array(); //ссылки на клипыstage.addEventListener(MouseEvent.CLICK, clickF);function clickF(e:MouseEvent):void {   var mc:MovieClip = MovieClip(new mc_rec());   mc.x = mcs.length * 100;   mcs.push(mc);   addChild(mc);}

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

Добавлено: 05 май 2013, 13:59
112
sasha^
как мне теперь к нему правильно обратиться?
Я допустим хочу удалить его

Код: Выделить всё

removeChildAt(mcs.mc); 
Если как то так ,то она начинает все подряд со сцены удалять

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

Добавлено: 05 май 2013, 15:36
sasha^
112
mcs - массив, хранящий ссылки на мувиклипы, которые отображаются на сцене..., а обращаться можно по индексам массива..
удалить первый мувиклип можно так:

Код: Выделить всё

removeChild(mcs[0]);
но даже после этого в массиве будет ссылка на этот мувик,не отображаемый, но который будет занимать память..
для того чтобы очистить - нужно удалить первый элемент массива, а остальное - дело сборщика мусора :)

например, этот код на экран выводит мувик, но каждый раз со смещением 100пх. и в массиве хранить всего одну ссылку - на этот мувик, а остальные - удаляет...

Код: Выделить всё

var i:uint = 0;var mcs:Array = []; //ссылки на клипыstage.addEventListener(MouseEvent.CLICK, clickF);function clickF(e:MouseEvent):void {   var mc:MovieClip = MovieClip(new mc_rec()); // создаем мувик   mc.x = i * 100; i++; // устанавливаем его х и инкрементируем счетчик   mcs.push(addChild(mc)); // добавляем на сцену и в массив   delF();// удаляем если нужно, оставляя всего только-что добавленный}function delF():void {    if(int(mcs.length/2) > 0) { //если один мувик - ничего не делаем        removeChild(mcs.shift()); // удаляем первый элемент из массива и сцены    }}

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

Добавлено: 20 июн 2013, 14:51
AlexQW
Можно ли как-то сделать так что бы запустилось нужное количество клипов?
надо вместо кк что то.

private function onMC(e:MouseEvent){
var i:int=4; //Сюда приходит число из базы от 1 до 10
for (i; i>0; i--);
e.currentTarget.kk.play(); // Может что то типа ["kk"+i]
}

Или так нельзя?
p.s. kk1,kk2,kk3... это имена экземпляров созданых в самом флеше. В коде они не добавляются.

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

Добавлено: 21 июн 2013, 12:17
AlexQW
getChildByName() как оказлось решает мою проблему :)

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

Добавлено: 21 июн 2013, 15:05
IndieGD
AlexQW, можно и так
e.currentTarget["kk"+i].play();