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

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

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

Регистрация: May 2008
Адрес: Земля.Украина.Одесса
Сообщений: 219
Отправить сообщение для ERrorMAKros с помощью ICQ Отправить сообщение для ERrorMAKros с помощью Skype™
По умолчанию Вызов функции...

Возможно ли средствами actionscript3 вызвать функцию с параметрами по ее имени, если ее имя и аргументы хранятся в строковой переменной?

Код AS3:
var FuncName:String="CallFunction"; // CallFunction - имя функции;

Старый 23.04.2009, 23:38
Яски вне форума Посмотреть профиль Отправить личное сообщение для Яски Найти все сообщения от Яски
  № 2  
Ответить с цитированием
Яски

блогер
Регистрация: May 2008
Адрес: (0, 10, 185) в локальной системе
Сообщений: 721
Записей в блоге: 6
Да можно. К свойствам и методам любого объекта можно обращаться при помощи квадратных скобок. И у функций есть два метода call и apply при помощи которых ее можно вызвать.
Код AS3:
var funcName:String="CallFunction"; // CallFunction - имя функции;
object[funcName]([param1, param2);

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

Регистрация: May 2008
Адрес: Земля.Украина.Одесса
Сообщений: 219
Отправить сообщение для ERrorMAKros с помощью ICQ Отправить сообщение для ERrorMAKros с помощью Skype™
Спасибо за ответ!

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

Регистрация: May 2008
Адрес: Земля.Украина.Одесса
Сообщений: 219
Отправить сообщение для ERrorMAKros с помощью ICQ Отправить сообщение для ERrorMAKros с помощью Skype™
Что то у меня не получается таким методом вызвать функцию с параметрами по ее имени в String переменной. Можно еще какой то примерчик?

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

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
Код AS3:
function hello():void{
trace("hello");
}
 
function constructor(){
var s:String="hello";
this["hello"]();
this[s]();
}

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

Регистрация: May 2008
Адрес: Земля.Украина.Одесса
Сообщений: 219
Отправить сообщение для ERrorMAKros с помощью ICQ Отправить сообщение для ERrorMAKros с помощью Skype™
А что в данном случае означает this? ...я могу использовать такой синтаксис внутри своего класса?
И хотелось бы узнать, как я могу присвоить новому объекту объект, имя которого в строковой переменной,
что то вроде этого:
Код AS3:
    ObjectName="MyClip";
var MyClip:MovieClip = new Object(ObjectName);


Последний раз редактировалось ERrorMAKros; 27.04.2009 в 23:27.
Старый 27.04.2009, 23:56
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 7  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Ну, понеслась...
Цитата:
Сообщение от ERrorMAKros Посмотреть сообщение
А что в данном случае означает this? ...я могу использовать такой синтаксис внутри своего класса?
this в данном случае, как впрочем и всегда, указывает на область видимости "тута" или "здеся". Т.е. this.hello() указывает на то, что метод hello находится в той же области видимости, откуда и вызывается. Вы можете (а ходят упорные слухи, что это знак really tru pretty coding practice) использовать этот оператор внутри методов и getter/setter классов. Иногда его использование просто необходимо. Пример.

Код AS3:
class Ball {
 
    public var x:Number;
    public var y:Number;
 
    public function Ball(x:Number, y:Number) {
        this.x = x;
        this.y = y;
    }
}
x - локальная переменная как аргумент конструктора;
this.x - поле класса;

Цитата:
Сообщение от ERrorMAKros Посмотреть сообщение
И хотелось бы узнать, как я могу присвоить новому объекту объект, имя которого в строковой переменной,
что то вроде этого:
Код AS3:
    ObjectName="MyClip";
var MyClip:MovieClip = new Object(ObjectName);
Правильно сказать "как я могу создать объект заданного класса, если известно имя класса".

Очень просто. Получим ссылку на класс. И инстанцируем объект этого класса.

Код AS3:
var ClassReference:Class = getDefinitionByName('MyClip');
var myClip:MovieClip = new ClassReference() as MovieClip;
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 28.04.2009 в 11:38.
Старый 28.04.2009, 01:47
ERrorMAKros вне форума Посмотреть профиль Отправить личное сообщение для ERrorMAKros Посетить домашнюю страницу ERrorMAKros Найти все сообщения от ERrorMAKros
  № 8  
Ответить с цитированием
ERrorMAKros
 
Аватар для ERrorMAKros

Регистрация: May 2008
Адрес: Земля.Украина.Одесса
Сообщений: 219
Отправить сообщение для ERrorMAKros с помощью ICQ Отправить сообщение для ERrorMAKros с помощью Skype™
Спасибо! Очень приятно что на форуме такие отзывчивые участники!

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

Регистрация: May 2008
Адрес: Земля.Украина.Одесса
Сообщений: 219
Отправить сообщение для ERrorMAKros с помощью ICQ Отправить сообщение для ERrorMAKros с помощью Skype™
Опять не могу подружиться с особенностью синтаксиса Помогите пожалуйста мне вот с чем, у меня есть массив:
Код AS3:
public var MyArray: Array = new Array();
В дальнейшем, элементы массива будут содержать в себе MovieClip объекты, у которых свой класс:
Код AS3:
for(var CYcle:Number = 0; CYcle < 10; CYcle++)
{
SYS__BObjects[CYcle]=new MyObject();
....
}
Получить имя класса объекта который мне нужно будет помещать в ячейку массива, удалось методом:
Код AS3:
getQualifiedClassName(MyObject());
А как мне правильно объявить объект в ячейке массива, зная только имя класса в string переменной?

Код AS3:
// что то типа
SYS__BObjects[CYcle]=new String("Имя моего класса");

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

Регистрация: Sep 2002
Сообщений: 30,787
getQualifiedClassName возвращает строку.

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

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

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


 


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


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