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

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

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

Регистрация: Mar 2010
Адрес: 54.713862552265084 = 20.442724227905273
Сообщений: 449
Отправить сообщение для stweet с помощью Skype™
По умолчанию Создать класс во время выполнения.

Я явно что то делаю не так, укажите на ошибку.

Код AS3:
function event (e:Event):void
{
    trace(e.target.content); // [object Object] ==> { object:{ name:'name', id:0 }, object:{ name:'newxName', id:1 } } тут приходит список объектов.
 
    var my_class:MyClass = e.target.content[0] as MyClass;
 
    trace(my_class); // null
}
Код AS3:
class MyClass {
    public function MyClass ()
    {
        private var _id:int;
        private var _name:String;
    }
}
Заранее благодарен.
__________________
Спросишь, дурак на минуту. Если не спросишь, дурак на всю жизнь!


Последний раз редактировалось stweet; 14.11.2011 в 23:49.
Старый 15.11.2011, 00:19
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 2  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Неужели компилятор Вам не объясняет, что внутри метода не может указываться модификатор доступа?
Да и что Вы вообще хотели? У Обжекта свойства public. И это MyClass расширяет Object, а не наоборот, так что as обязан вернуть null.
__________________
Reality.getBounds(this);

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

Регистрация: Mar 2010
Адрес: 54.713862552265084 = 20.442724227905273
Сообщений: 449
Отправить сообщение для stweet с помощью Skype™
Спасибо.

Добавлено через 1 час 23 минуты
Код AS3:
trace(e.target.content.source[0]); // [object Object]
var vo:UserVO = e.target.content.source[0] as UserVO; trace(vo); // null
Код AS3:
package {
	public class UserVO extends Object {
		public function UserVO () { }
	}
}
блин, может до меня туго доходит, но чёт ни фига не пойму. Почему всё равно ноль?
__________________
Спросишь, дурак на минуту. Если не спросишь, дурак на всю жизнь!


Последний раз редактировалось stweet; 15.11.2011 в 02:16.
Старый 15.11.2011, 02:39
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 4  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
потому что
Код AS3:
e.target.content.source[0]
не UserVO - что тут можно не понять?

Код AS3:
var d:Dictionary = new Dictionary(true);
d['someClass'] = new UserVO();
trace(d['someClass'] as UserVO) // профит
__________________
Марк Tween

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Ну не знаю.. Вы эту тему читали? Вы поймите, что экземпляр Обжект никогда не станет экземпляром UserVO. Вообще никогда. Это разные уровни абстракции. Любой UserVO это Обжект, но Обжект это не UserVO. Джинсы это Штаны, но Штаны это не Джинсы.
Не пытайтесь тут кастовать, Ваши Обжекты не станут никакими другими классами. Создавайте новый экземпляр UserVO на основе полученного из массива Обжекта.
Код AS3:
function event (e:Event):void
{
	trace(e.target.content);
	var userInfo:UserVO = new UserVO (e.target.content[0]);
 	trace(userInfo);
}
 
package {
	public class UserVO extends Object
 	{
 	 	public var name:String;
 	 	public var id:String;
		public function UserVO (info:Object) 
 	 	{
 	 	 	this.name = info.name;
 	 	 	this.id = info.id;
 	 	}
	}
}
__________________
Reality.getBounds(this);

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

Регистрация: Mar 2010
Адрес: 54.713862552265084 = 20.442724227905273
Сообщений: 449
Отправить сообщение для stweet с помощью Skype™
Цитата:
Сообщение от Wolsh Посмотреть сообщение
Не пытайтесь тут кастовать, Ваши Обжекты не станут никакими другими классами. Создавайте новый экземпляр UserVO на основе полученного из массива Обжекта.
Я так и сделал, других вариантов не нашёл. Спасибо огромное за участие.
__________________
Спросишь, дурак на минуту. Если не спросишь, дурак на всю жизнь!

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

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

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


 


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


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