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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 14.03.2008, 08:01
$mival вне форума Посмотреть профиль Отправить личное сообщение для $mival Найти все сообщения от $mival
  № 31  
Ответить с цитированием
$mival
 
Аватар для $mival

Регистрация: Oct 2005
Адрес: Russia, Irkutsk
Сообщений: 742
да это странно как то.

в чем разница первого и второго кода, кроме того что второй не работает?

Код:
Definition = as2["Index"];
new Definition();
Код:
var s:String = "Index" ;
Definition = as2[s];
new Definition();
Цитата:
Понял, почему первоначальный код не работал. Из-за того, что имя было задано как стринг, класс не включался в swf.
А как ещё то если не стрингами задавать имя класса?
Имя приходит извне во флешку только в виде строки.

UPD: конечно можно предварительно забать в массив, а потом получать себе из вне индекс массива, типа так:

Код:
// берем индекс для массива классов
var type:Number = Number(_xml.firstChild.firstChild.attributes.type);
// забиваем массив
_classes:Array = new Array(as2.pages["Index"], as2.pages["Zavod"], as2.pages["About"]);
// собственно создание
var def:Function = _classes[type];
new def();
так нормально или можно как то гибче все-таки?
__________________
smival.com


Последний раз редактировалось $mival; 14.03.2008 в 08:40.
Старый 14.03.2008, 08:43
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 32  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Класс включается в swf, если был хоть раз использован. Импорт класса этого не делает, он лишь позволяет не писать пакет перед именем класса. Поэтому, чтобы создавать экземпляры давая стринг, нужно предварительно создать по одному экземпляру каждого класса, который собираетесь использовать.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от iNils
Класс включается в swf, если был хоть раз использован. Импорт класса этого не делает, он лишь позволяет не писать пакет перед именем класса. Поэтому, чтобы создавать экземпляры давая стринг, нужно предварительно создать по одному экземпляру каждого класса, который собираетесь использовать.
Ну или хотя бы просто написать имя импортируемого класса.

Старый 14.03.2008, 16:19
$mival вне форума Посмотреть профиль Отправить личное сообщение для $mival Найти все сообщения от $mival
  № 34  
Ответить с цитированием
$mival
 
Аватар для $mival

Регистрация: Oct 2005
Адрес: Russia, Irkutsk
Сообщений: 742
Цитата:
Сообщение от __etc
Ну или хотя бы просто написать имя импортируемого класса.
так чтоли?

Код:
import as2.*;
var s:String = "Index";
s;
Definition = as2[s];
new Definition();
__________________
smival.com

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

Регистрация: Sep 2002
Сообщений: 30,787
Нет.

Код:
import as2.*;
Index;
var s:String = "Index";
Definition = as2[s];
new Definition();

Старый 14.03.2008, 16:22
$mival вне форума Посмотреть профиль Отправить личное сообщение для $mival Найти все сообщения от $mival
  № 36  
Ответить с цитированием
$mival
 
Аватар для $mival

Регистрация: Oct 2005
Адрес: Russia, Irkutsk
Сообщений: 742
в общем я клоню к тому что там по любому надо ручками вот так вот писать, динамически не получится как я попробовал. так?
__________________
smival.com

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

Регистрация: Sep 2002
Сообщений: 30,787
Именно.

Старый 14.03.2008, 16:40
$mival вне форума Посмотреть профиль Отправить личное сообщение для $mival Найти все сообщения от $mival
  № 38  
Ответить с цитированием
$mival
 
Аватар для $mival

Регистрация: Oct 2005
Адрес: Russia, Irkutsk
Сообщений: 742
ясно.
вот и разобрались
__________________
smival.com

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

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

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


 


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


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