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

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

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

Регистрация: Jul 2012
Сообщений: 17
По умолчанию Как передать параметр обработчику событий

Здравствуйте.
Пишу код который взял бы выбранные фото и отправил бы их в JS, и столкнулся с проблемой, не знаю как передать переменную i. С помощью пользовательских событий так ничего и не смог придумать, пробовал и другие варианты но так ничего и не вышло.

Код AS3:
public function onSelect(e:Event):void
{
    /* files это объект FileReferenceList */
 
    for(var i:int = 0; i < files.fileList.length; i++)
    {
        files.fileList[i].addEventListener(Event.COMPLETE, onFileLoaded);
        files.fileList[i].load();
    }
}
 
public function onFileLoaded(e:Event):void 
{
    /* Тут байт массив передается виде строки */
 
    ExternalInterface.call("get_photo", Base64.encode(files.fileList[i].data)); // Как получить переменную i из функции onSelect
}
Если сделать переменную i глобальной на уровне класса, то функция onFileLoaded получит значения i на текущий момент а не на момент отправки.

Есть ли какой нибудь способ сделать что-то типа этого?
Код AS3:
files.fileList[i].addEventListener(Event.COMPLETE, onFileLoaded(i));

Старый 24.07.2012, 22:19
illuzor вне форума Посмотреть профиль Отправить личное сообщение для illuzor Найти все сообщения от illuzor
  № 2  
Ответить с цитированием
illuzor
 
Аватар для illuzor

Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
Код AS3:
public function onFileLoaded(e:Event):void 
{
    ExternalInterface.call("get_photo", Base64.encode(e.target.data)); // переменная i тут не нужна
}
Если не прокатит:
Код AS3:
Base64.encode ... ((e.target as YourType).data) ... // YourType - ваш тип данных, который в массиве files.fileList

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

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
Почитайте у -De-

Старый 25.07.2012, 00:20
gagaga вне форума Посмотреть профиль Отправить личное сообщение для gagaga Найти все сообщения от gagaga
  № 4  
Ответить с цитированием
gagaga
[+1 22.04.13]
[+1 06.03.13]

Регистрация: Apr 2012
Сообщений: 239
Код AS3:
public class CustomEvent extends Event {
      public static var MY_CUSTOM_EVENT:String = "myCustomEvent";
      public var myCustomEventParameter:Number;
      public function CustomEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, ...params) {
            super(type, bubbles, cancelable);
            switch(type) {
                  case MY_CUSTOM_EVENT:
                        myCustomEventParameter = params[0];
                        break;
            }
      }
}
диспатчится так:
Код AS3:
dispatchEvent(new CustomEvent(CustomEvent.MY_CUSTOM_EVENT, 25.01)); // 25.01 ваш параметр
Добавлено через 6 минут
копипастм не копипастте, писал на коленке

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

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Опять 0_o
http://www.google.ru/search?q=site%3...82%D0%B8%D0%B9
Этот вопрос просто преследует этот форум.

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Сообщение от expl Посмотреть сообщение
Опять 0_o
http://www.google.ru/search?q=site%3...82%D0%B8%D0%B9
Этот вопрос просто преследует этот форум.
Результатов: примерно 183 (0,10 сек.)
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

Регистрация: Jul 2012
Сообщений: 17
E.target конечно работает но он не решает задачу целиком, дело в том что задачу я
упростил, и получилось что с упрощенным вариантом(описанный здесь) он справляется а в целом нет,
вообщем это мой косяк.
Для того чтоб решить задачу мне нужно ответить на другой вопрос - задам его в другой теме.
Всем спасибо.

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

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

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


 


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


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