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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 02.12.2008, 17:05
ZlPredator вне форума Посмотреть профиль Отправить личное сообщение для ZlPredator Найти все сообщения от ZlPredator
  № 11  
Ответить с цитированием
ZlPredator

Регистрация: Nov 2008
Сообщений: 65
Запись вида Bitmap(imageLoader.content) то же самое что и (imageLoader.content as Bitmap), то есть это просто приведение к типу.
А new Bitmap(...) - попытка создать новый битмап из графических данных (вместо коих вы пытаетесь передать сам Bitmap, на что вам и ругается)

Старый 02.12.2008, 17:05
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 12  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Bitmap(someObjectMaybeBitmap) == попытка конвертации одного типа в другой, т.е. тут Bitmap() выступает в роли глобальной функции, а результат операции не создаст нового объекта, а представит уже существующий в виде Bitmap если это возможно.

new Bitmap(someBitmapData) == создание нового объекта типа Bitmap, для того, чтобы такой объект создать нужен объект типа BitmapData
__________________
Hell is the possibility of sanity

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

Регистрация: Jan 2008
Сообщений: 221
ZlPredator, wvxvw. Спасибо разобрался.

Код AS3:
pImage = imageLoader.content as Bitmap;
вроде элегантнее чем
Код AS3:
pImage = Bitmap(imageLoader.content);

Старый 02.12.2008, 19:20
ZlPredator вне форума Посмотреть профиль Отправить личное сообщение для ZlPredator Найти все сообщения от ZlPredator
  № 14  
Ответить с цитированием
ZlPredator

Регистрация: Nov 2008
Сообщений: 65
И я так думаю, а вот в Adobe (ссылка) считают по другому...
Хотя если быть точным, то разница есть. При сведении с помощью as, если тип не соответствует, то ссылка выставляется в null. А при Type(), генерируется исключение.

Старый 02.12.2008, 19:29
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 15  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
ZlPredator, а ещё попробуйте со скобками поиграться, с простыми типами, а так же XML, XMLList, Date ... в общем всё, что пишет адоба в рекомендациях, и то как это работает на самом деле, совсем разные вещи я бы даже сказал, что зачастую они диаметрально противоположны.

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

Регистрация: Jan 2008
Сообщений: 221
BlooDHounD, например.... ? огласите весь список пЖалста

Старый 02.12.2008, 20:07
ZlPredator вне форума Посмотреть профиль Отправить личное сообщение для ZlPredator Найти все сообщения от ZlPredator
  № 17  
Ответить с цитированием
ZlPredator

Регистрация: Nov 2008
Сообщений: 65
Цитата:
Сообщение от BlooDHounD Посмотреть сообщение
ZlPredator, а ещё попробуйте со скобками поиграться, с простыми типами, а так же XML, XMLList, Date ...
Вы вообще о чём?

По поводу рекомендаций от Адобы - не спорю. Мне тут просто доказывали обратное...

Старый 02.12.2008, 21:19
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 18  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
как написал выше wvxvw, одно дейстсво является приведением, второе - конвертацией.
и поэтому иногда они приводят к одинаковому результату, но на самом деле выполняют разные задачи.
Код AS3:
var a:Object = "<xml />";
trace( XML(a) );
trace( a as XML );
использование глобальных функций, должно приводить к созданию нового объекта, исходя из работы таких же нативных методов, но на самом деле, работает неоднозначно, в отличии от оператора as.

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

Регистрация: Nov 2008
Сообщений: 65
Не надо путать вызовы глобальных функций (к коим и принадлежит XML() и еще около 10 функций) с приведением типов.
Код AS3:
public class MyClass
{
}
var o:Object = new MyClass();
var c1:MyClass = o as MyClass;
var c2:MyClass = MyClass(o);
и действия и смысл абсолютно одинаков. Отличается только поведение в случае ошибки.
Глобальные же функции создаются чтобы получать нужный класс из других объектов (в случае необходимости могут и создать новый экземпляр), т.е. они действительно конвертеры.

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

Регистрация: Sep 2002
Сообщений: 30,784
ZlPredator, для приведения типов создан специальный оператор. Его и только его нужно использовать для приведения.

Взять хотя бы такой пример:

Код:
var c:Class = Array;
var n:Number = 10;
trace(c(n));
Мы получим в ответ массив вместо null, а ведь «c» может содержать в себе ссылку на любой класс, заранее неизвестный. Поэтому не стоит мешать мух и котлеты.

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

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

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


 


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


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