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

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

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

Регистрация: Mar 2010
Адрес: Russian Federation
Сообщений: 59
Question Как передать параметр в фунцию, вызванную addEventListener'ом?

Нужно, чтобы в каждом фрейме трейсился заданный элемент массива. Как передать в функцию traceNumEnterFrame() параметр?
Код AS3:
package {
	import flash.display.MovieClip;
	import flash.events.*;
	public class arrayCheck extends MovieClip {
		var myArray:Array;			
		public function arrayCheck() {
			myArray = new Array(1,2,3,4,5,6,7,8,9,10);			
			var myVar:uint = 4;			
			addEventListener(Event.ENTER_FRAME, traceNumEnterFrame);
		}
		public function traceNumEnterFrame(event:Event) {
			trace(myArray[myVar]);//1120: Access of undefined property myVar.
		}
	}
}

Старый 10.04.2010, 23:32
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Ну сделайте myVar полем класса.

Старый 10.04.2010, 23:37
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 3  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Код AS3:
package {
	import flash.display.MovieClip;
	import flash.events.*;
	public class arrayCheck extends MovieClip {
		private var myArray:Array;	
		private var myVar:uint;	
		public function arrayCheck() {
			myArray = new Array(1,2,3,4,5,6,7,8,9,10);			
			myVar = 4;			
			addEventListener(Event.ENTER_FRAME, traceNumEnterFrame);
		}
		private function traceNumEnterFrame(event:Event) {
			trace(myArray[myVar]);
		}
	}
}
Но что-то мне кажется, автор имел в виду другое.


Последний раз редактировалось mikhailk; 10.04.2010 в 23:43.
Старый 11.04.2010, 00:00
gait вне форума Посмотреть профиль Отправить личное сообщение для gait Найти все сообщения от gait
  № 4  
Ответить с цитированием
gait

Регистрация: Mar 2010
Адрес: Russian Federation
Сообщений: 59
Цитата:
Сообщение от etc Посмотреть сообщение
Ну сделайте myVar полем класса.
Существует ли возможность передать параметр, не делая myVar полем класса?

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

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
В доке от адоба есть пример по программированию будильника - там про пользовательские события достаточно много написано.

ЗЫ. к своему стыду так и не могу найти время чтоб все-таки изучить эту тему. Чувствую что придется изучать по ходу выполнения очередного проекта, когда припечет
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

Старый 11.04.2010, 00:11
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 6  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
gait, а что на самом деле надо-то?

Старый 11.04.2010, 00:28
MrPoma вне форума Посмотреть профиль Отправить личное сообщение для MrPoma Посетить домашнюю страницу MrPoma Найти все сообщения от MrPoma
  № 7  
Ответить с цитированием
MrPoma
 
Аватар для MrPoma

Регистрация: Jul 2006
Адрес: Питер
Сообщений: 2,083
Отправить сообщение для MrPoma с помощью Skype™
Ему нужен LOLEvent.
__________________
жж | твттр | гглплс | фсбк | вкнткт | гтхб

Старый 11.04.2010, 01:09
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 8  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
может и так
но вообще-то, если что-то в AS3 приходится делать "через голову", то скорее всего не надо этого делать.

Старый 11.04.2010, 11:32
gait вне форума Посмотреть профиль Отправить личное сообщение для gait Найти все сообщения от gait
  № 9  
Ответить с цитированием
gait

Регистрация: Mar 2010
Адрес: Russian Federation
Сообщений: 59
н-да. обнаружились глобальные пробелы в знании и понимании as3. может быть мне и нужен LOLEvent, но я почти ничего не понимаю, что там происходит (зачем создаётся public static const LOL, для чего нужна функция override, ну и много чего еще, выходящее за рамки этой темы). думал, что может быть есть простое решение (типа addEventListener(Event.ENTER_FRAME, traceNumEnterFrame(myVar)), но всё оказалось значительно сложнее ) короче, пошёл читать форум и доки, а то будет слишком много тупых вопросов. Спасибо за наводки TanaTiX (пример по программированию будильника), MrPoma (за http://www.flasher.ru/forum/showthread.php?t=136030).


Последний раз редактировалось gait; 11.04.2010 в 11:34.
Старый 11.04.2010, 14:09
mickfallout вне форума Посмотреть профиль Отправить личное сообщение для mickfallout Найти все сообщения от mickfallout
  № 10  
Ответить с цитированием
mickfallout
 
Аватар для mickfallout

Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
можно попробовать сделать так:
Код AS3:
package {
	import flash.display.MovieClip;
	import flash.events.*;
	public class Main extends MovieClip {
		private var myArray:Array;			
		public function Main() {
			super();
			myArray = new Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);			
			var myVar:uint = 4;			
			addEventListener(Event.ENTER_FRAME, function(event:Event):void { traceNumEnterFrame(event, myVar); } );
		}
		public function traceNumEnterFrame(event:Event, myVar:int):void {
			trace(myArray[myVar]);
		}
	}
}
только вроде использование анонимных функций - плохой стиль программирования.

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

Теги
anonimous function , вложенность
Опции темы
Опции просмотра

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

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


 


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


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