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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 23.11.2008, 16:44
Evgan вне форума Посмотреть профиль Отправить личное сообщение для Evgan Найти все сообщения от Evgan
  № 1  
Ответить с цитированием
Evgan

Регистрация: Jun 2008
Сообщений: 283
Tip for + onRelease = обработчик события нажатия на нефиксированное число кнопок?

приветствую.

у меня есть кнопки, число которых не постоянное (определяется исходя из значения _global.total-1).
при нажатии на одну из них должен выдоватся её номер.

пробывал такими образом:

Код:
for (var i:Number = 0; i<_global.total-1; i++) {
	this['boot'+i].onRelease = function():Void  {
	     trace(i);
	};
}
в трее при нажатии на любую из кнопок выдаёт одно и тоже значение: а именно, последнее значение переменной i в цикле (_global.total-1);

подсабите советом кто знает решение данной задачи.

спасибо.

Старый 23.11.2008, 16:56
darksranger вне форума Посмотреть профиль Отправить личное сообщение для darksranger Посетить домашнюю страницу darksranger Найти все сообщения от darksranger
  № 2  
Ответить с цитированием
darksranger
 
Аватар для darksranger

блогер
Регистрация: Jun 2007
Адрес: in sankt - peterburg
Сообщений: 787
Записей в блоге: 2
Отправить сообщение для darksranger с помощью ICQ
Код AS1/AS2:
for ( var i:int=0;i<=_global.total-1;i++) {
var boot:MovieClip = create.....
boot.a = i
boot.onRelease = sameFunction
 
function sameFunction():Void {
trace(a)
 
}
 
 
 
}
правда незнаю будет ли работать, начинаю уже забывать as2 и писал на коленке, но если не работает и не понятна суть, я могу накидать рабочий вариант
__________________
на каком языке вы пишите?
а на каком нужно?

Старый 23.11.2008, 17:18
Evgan вне форума Посмотреть профиль Отправить личное сообщение для Evgan Найти все сообщения от Evgan
  № 3  
Ответить с цитированием
Evgan

Регистрация: Jun 2008
Сообщений: 283
Цитата:
Сообщение от darksranger Посмотреть сообщение
Код AS1/AS2:
for ( var i:int=0;i<=_global.total-1;i++) {
var boot:MovieClip = create.....
boot.a = i
boot.onRelease = sameFunction
 
function sameFunction():Void {
trace(a)
 
}
 
 
 
}
правда незнаю будет ли работать, начинаю уже забывать as2 и писал на коленке, но если не работает и не понятна суть, я могу накидать рабочий вариант
к сожелению, сути не уловил+(

Старый 23.11.2008, 17:51
darksranger вне форума Посмотреть профиль Отправить личное сообщение для darksranger Посетить домашнюю страницу darksranger Найти все сообщения от darksranger
  № 4  
Ответить с цитированием
darksranger
 
Аватар для darksranger

блогер
Регистрация: Jun 2007
Адрес: in sankt - peterburg
Сообщений: 787
Записей в блоге: 2
Отправить сообщение для darksranger с помощью ICQ
ну суть в том, что в цикле, создаем обьект, в этом обьекте создаем свойство, передаем в свойство нужное знаение и при обработке события, на нужном обьекте, читаем это значение, из созданного свойства

PS не пишите код в кадрах ... ( решил потому что используете _global )
__________________
на каком языке вы пишите?
а на каком нужно?

Старый 23.11.2008, 18:46
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 5  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Вы взяли в руки коробок и десять камушков. Кладете камушек в коробок и говорите кнопке))))) - "когда тебя нажмут, скажешь сколько камушков в коробке". И что, по-вашему, будут говорить кнопки при нажатии??? Конечно, ДЕСЯТЬ.
Вариант 2 - Камушек в коробок, пишете на бумажке цифру, сколько там сейчас камушков, и суете кнопке в карман))). И говорите ей - "Когда тебя нажмут, скажи что написано на этой бумажке".
__________________
Reality.getBounds(this);

Старый 23.11.2008, 19:05
darksranger вне форума Посмотреть профиль Отправить личное сообщение для darksranger Посетить домашнюю страницу darksranger Найти все сообщения от darksranger
  № 6  
Ответить с цитированием
darksranger
 
Аватар для darksranger

блогер
Регистрация: Jun 2007
Адрес: in sankt - peterburg
Сообщений: 787
Записей в блоге: 2
Отправить сообщение для darksranger с помощью ICQ
изящное объяснение ) у меня заумно, как то получилось
__________________
на каком языке вы пишите?
а на каком нужно?

Старый 23.11.2008, 20:21
Evgan вне форума Посмотреть профиль Отправить личное сообщение для Evgan Найти все сообщения от Evgan
  № 7  
Ответить с цитированием
Evgan

Регистрация: Jun 2008
Сообщений: 283
спасибо
теперь смысл понятен
осталось теперь разобраться как это осуществить

Старый 23.11.2008, 20:43
darksranger вне форума Посмотреть профиль Отправить личное сообщение для darksranger Посетить домашнюю страницу darksranger Найти все сообщения от darksranger
  № 8  
Ответить с цитированием
darksranger
 
Аватар для darksranger

блогер
Регистрация: Jun 2007
Адрес: in sankt - peterburg
Сообщений: 787
Записей в блоге: 2
Отправить сообщение для darksranger с помощью ICQ
эм, а чем не угодил мой код ?
__________________
на каком языке вы пишите?
а на каком нужно?

Старый 24.11.2008, 17:46
nOobCrafter вне форума Посмотреть профиль Отправить личное сообщение для nOobCrafter Найти все сообщения от nOobCrafter
  № 9  
Ответить с цитированием
nOobCrafter

Регистрация: Nov 2008
Сообщений: 894
Записей в блоге: 1
Ммм люди, я извращенец похоже, НО у меня точно такая же ситуация но двумерный массив, эт что мне надо делать? О_о
Код AS1/AS2:
var Docs_Download_item_title:Array = new Array();
var Docs_Download_item_url:Array = new Array();
var Docs_header:Array = new Array();
var total_i:Array = new Array();
var total_j:Number;
var i:Number = 0;
var j:Number = 0;
var p:Number = 0;
var offset_j:Number = 0;               // вводим доп. переменную, для вычисления расстояния до след раздела
var xml:XML = new XML();
stop();
 
xml.onLoad = function(){
var nodes_j = this.firstChild.childNodes;
total_j = nodes_j.length;
 
for( j = 0; j < total_j; j++)
{
 Docs_header[j] = nodes_j[j].attributes.razdel;
 Docs_Download_item_title[j] = new Array();             // добавляем массиву размерность
 Docs_Download_item_url[j] = new Array();              // и тперь он из одномерного превращается в двумерный))))
 
 var nodes_i = this.firstChild.childNodes[j].childNodes;
 total_i = nodes_i.length;
 for( i = 0; i < total_i; i++)
 {
  Docs_Download_item_title[j][i] = nodes_i[i].attributes.title; // присваиваем значения двумерному массиву
  Docs_Download_item_url[j][i] = nodes_i[i].attributes.url;  //
 }
 create_item_list();    // тут значение total_i, принимает правильные значения, так что пока что построение возможно только в этом месте, потому и блокируем условие if ниже. Иначе total_i принимает значения только последнего абзаца для всех.
}
}
xml.load( "Docs_Download.xml" );
xml.ignoreWhite = true;
 
function create_item_list():Void
{
var Docs_list = Docs.Docs_Download_item_list.duplicateMovieClip("Docs_Download_item_list"+j, j);  //
  Docs_list._y = 0;
  Docs_list.Docs_header._y = 0;
  Docs_list.Docs_header._x = 0;
  Docs_list.Docs_header.text = Docs_header[j];                //
 
  for( i = 0; i < total_i; i++)
  {
   var Docs_Download_item = Docs_list.Docs_Download_fm_item.duplicateMovieClip("Docs_Download_fm_item"+i, i);
   Docs_Download_item._y = i * (Docs.Docs_Download_item_list.Docs_Download_fm_item._height + item_spacing) + 30;
   Docs_Download_item.Docs_Download_item_title.text = Docs_Download_item_title[j][i];
   Docs_Download_item.no = Docs_Download_item.no = Docs_Download_item_url[j][i];;    // вот тут полчается как вы описываете, определяем через св-во
   trace(Docs_Download_item.no)  // тут все шикарно определяется
   Docs_Download_item.Docs_Download_item_button.onRelease = function()
    {
   trace(Docs_Download_item.no)                // тут косяк, получаю только последнее значение из списка
     //getURL(Docs_Download_item_url[this._parent.no], '_self' ); 
    }
  }   
}

Старый 24.11.2008, 18:50
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 10  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Код AS1/AS2:
trace(this._parent.no)
__________________
Reality.getBounds(this);

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

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

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


 


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


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