![]() |
|
||||||||||
|
|||||
|
Раздела для начинающих не нашел, так что осмелюсь спросить тут
![]() Есть мовики (model1, model2, model3 ....), идущие в ряд, я создал массив с данными мувиками var models:Array = new Array(); models[0] = model1; models[1] = model2; models[2] = model3; models[3] = model4; Я попытался сделать так: for each (var obj in models)
{
obj.addEventListener(MouseEvent.CLICK, function handler(event:MouseEvent):void { moveModel(obj);});
}
Подскажите пожалуйста..!! |
|
|||||
|
Modus ponens
|
var models:Array = new Array();
models[0] = new Mod();
models[1] = new Mod();
models[2] = new Mod();
models[3] = new Mod();
var i:uint = 0;
var j:uint = 0;
for each (var obj:Mod in models)
{
obj.buttonMode = true;
obj.x = i;
i += obj.width + 5;
obj.__id = ++j;
addChild(obj);
obj.addEventListener(MouseEvent.CLICK, moveModel);
}
function moveModel(event:Event):void {
trace(event.target.toString());
trace(event.target.x);
trace(event.target.__id);
}
__________________
Hell is the possibility of sanity |
|
|||||
|
Регистрация: Aug 2007
Сообщений: 467
|
Если тебе нравится так писать, то зделай так:
Последний раз редактировалось 2morrowMan; 15.01.2008 в 23:06. |
|
|||||
|
Сделал следующим образом, прошу оценить верно ли решение и насколько оно коряво.
В этом мувике добавил еще один кадр, и: var models:Array = new Array();
models[0] = model1;
models[1] = model2;
models[2] = model3;
var output:uint;
var i:uint = 0;
var j:uint = 0;
if(output!=1){#Это чтобы при каждом входе во фрейм объекты заново
#не выстраивались
for each (var obj in models) {
obj.x = i;
obj.st_x = i;
i += obj.width + 5;
obj.__id = ++j;
obj.addEventListener(MouseEvent.CLICK, moveModel);
}
output=1;
}
function moveModel(event:Event):void {
for each (var obj in models) {
if (obj.__id > event.target.__id) {
obj.moveObjRight = 1; # всем мувикам которые правее я назначаю свойство, чтобы двигать их.
}
}
}
for each (var obj2 in models) { # теперь при каждом входе во фрейм я проверяю у каких объектов свойство moveObjRight=1 и двигаю их... И вообще такую конструкцию я замутил, чтобы двигать объекты постепенно, а не просто поменять координаты, то есть для анимации
if(obj2.moveObjRight==1){
obj2.x+=1;
}
if(obj2.st_x < obj2.x - 10 ){ # Как только они отодвинулись на нужное расстояние приравниваю свойство moveObjRight=0 и они соответственно перестают отодвигаться...
obj2.st_x = obj2.x;
obj2.moveObjRight = 0;
}
}
Извините за корявость изложения ))Для ясности скажу, что именно я пытаюсь сделать: есть ряд картинок, при щелчке по одной из них все правостоящие отодвигаются в сторону, и рядом с той по которой щелкнули появляется блок с описанием, при щелчке по другой, все обратно задвигается и действие повторяется уже относительно той, по которой щелкнули. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Ваше решение коряво уже тем, что вы код в кадре пишете.
|
|
|||||
|
Хм.. а где же его писать?
![]() |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
В классах.
|
|
|||||
|
я бы с радостью... но времени на полноценное изучение нет, а надо быстренько сделать все
|
|
|||||
|
[+3 13.02.08]
Регистрация: Apr 2006
Сообщений: 421
|
А вы так будете "быстренько" всю жизнь делать ерунду и получать за это ерунду, а оно Вам надо? Лучше потратить время на изучение раз, даже если заказчик кричит мне надо на вчера - сам он дурак значит, что довел до такого состояния
|
|
|||||
|
Уважаемые форумчане, если у вас нет желания помочь или по каким-то религиозно/политическим/психическим причинам ваше эго не позволяет это сделать, то можно ничего не писать.
VovkaMorkovka у меня абсолютно другая специализация, и изучать полноценно флеш из-за одного задания не имею возможности |
![]() |
![]() |
Часовой пояс GMT +4, время: 08:59. |
|
|
« Предыдущая тема | Следующая тема » |
|
|