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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Закрытая тема
Старый 04.10.2007, 12:52
DRAGOnoid вне форума Посмотреть профиль Отправить личное сообщение для DRAGOnoid Посетить домашнюю страницу DRAGOnoid Найти все сообщения от DRAGOnoid
  № 111  
DRAGOnoid
 
Аватар для DRAGOnoid

Регистрация: Jan 2004
Адрес: Moscow
Сообщений: 389
Отправить сообщение для DRAGOnoid с помощью ICQ
подскажите пожалуйста такой момент.
У меня на главной сцене есть несколько предметов, им даны разные имена.
Я гружу XML в котором содержатся эти имена (таким образом нахожу для кода нужные предметы)

но бывает либо опечатка редактора либо просто звёзды не так встали и в XML кто то написал название несуществующего предмета.

короче возникает ошибка
ReferenceError: Error #1069: Property ovoshi3 not found on kitchen and there is no default value.

как мне проверить существует ли такой предмет по имени?
я делаю это так - но почему то не срабатывает
Код:
for each (var item in xml.items.children()) {
if (this[item.name()]!=null)
trace (this[item.name()]);
}

Старый 04.10.2007, 12:53
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 112  
etc
Et cetera
 
Аватар для etc

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

Старый 04.10.2007, 13:29
DRAGOnoid вне форума Посмотреть профиль Отправить личное сообщение для DRAGOnoid Посетить домашнюю страницу DRAGOnoid Найти все сообщения от DRAGOnoid
  № 113  
DRAGOnoid
 
Аватар для DRAGOnoid

Регистрация: Jan 2004
Адрес: Moscow
Сообщений: 389
Отправить сообщение для DRAGOnoid с помощью ICQ
спасибо!!! *__*

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

Регистрация: Jan 2004
Адрес: Moscow
Сообщений: 389
Отправить сообщение для DRAGOnoid с помощью ICQ
может есть смысл прикрепить эту тему?
а то я частенько её кидаю своим подаванцам , а искать её всё сложнее

Старый 16.10.2007, 13:49
DRAGOnoid вне форума Посмотреть профиль Отправить личное сообщение для DRAGOnoid Посетить домашнюю страницу DRAGOnoid Найти все сообщения от DRAGOnoid
  № 115  
DRAGOnoid
 
Аватар для DRAGOnoid

Регистрация: Jan 2004
Адрес: Moscow
Сообщений: 389
Отправить сообщение для DRAGOnoid с помощью ICQ
спасибо что прикрепили - реально помогает!

у меня тут новая трудность - немогу решить.

ситуация такова. есть один единственный SWF в котором в библиотеке забиты классы спрайтов (предметов)

эти предметы могут быть а могут небыть..
их имена я подгружаю из XML. дальше по этим именам ищю такое свойство в главном классе и создаю объект.

но есть пара странностей - уже на первичном классе немогу без глюков определить есть ли класс в библиотеке.

вот как я делаю
Код:
trace (bread);		// выдаёт [class bread]
trace (this.hasOwnProperty(bread));	// выдаёт false    Оо
// ладно способ 2
trace (getDefinitionByName('bread'));	// выдаёт [class bread]
// однако
// trace (getDefinitionByName('bread2'));// ReferenceError: Error #1065: Variable bread2 is not defined.
// объединяю
trace (this.hasOwnProperty(getDefinitionByName('bread')));//  выдаёт false    Т_Т
что делать?

Старый 16.10.2007, 13:54
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 116  
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Ну правильно выдает false.
Во-первых, ты передаешь не строковое значение в hasOwnProperty. Во-вторых, для того, чтобы определить, есть ли класс, можно использовать loaderInfo.applicationDomain.hasDefinition().

Старый 16.10.2007, 14:09
DRAGOnoid вне форума Посмотреть профиль Отправить личное сообщение для DRAGOnoid Посетить домашнюю страницу DRAGOnoid Найти все сообщения от DRAGOnoid
  № 117  
DRAGOnoid
 
Аватар для DRAGOnoid

Регистрация: Jan 2004
Адрес: Moscow
Сообщений: 389
Отправить сообщение для DRAGOnoid с помощью ICQ
а hasOwnProperty - на какие свойства работает? я так понял на классы нет - потому что так тоже не пашет
trace (this.hasOwnProperty('bread')); // выдаёт false Оо

спасибо - this.loaderInfo.applicationDomain.hasDefinition('bread') - прикрасно заработал.

а ещё я вспомнил метод молотка и мата на любой случай жизни )
это обычный try =))

вот ещё вопрос - могу ли я как нибудь из конструктора любого класса или подкласса - получить свойства основного класса или главного Stage, без переносса ссылок ?

т.е. мне например хочется узнать из под-под-под.... класса Stage.stageWidth для ресайза...
или добавить общий клик.
можно ли как то обойти перенос ссылок с помощью переменных?

Старый 16.10.2007, 14:30
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 118  
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Естесственно, у this нет свойства bread.

Остальное не понял.

Старый 16.10.2007, 14:39
DRAGOnoid вне форума Посмотреть профиль Отправить личное сообщение для DRAGOnoid Посетить домашнюю страницу DRAGOnoid Найти все сообщения от DRAGOnoid
  № 119  
DRAGOnoid
 
Аватар для DRAGOnoid

Регистрация: Jan 2004
Адрес: Moscow
Сообщений: 389
Отправить сообщение для DRAGOnoid с помощью ICQ
есть основной класс
Код:
package KitchenClasses {
import flash.display.*;
import flash.events.*;

public class MenuWindow extends Sprite {
public function MenuWindow	():void	{
trace (Stage.stageWidth); // выдаст например 500
var test = new Test(this);
}
}
}

import flash.display.*;
import flash.events.*;

class Test {
public function test(Parent:Object):void{
trace (Parent.Stage.stageWidth); // выдаст например 500
trace (Stage.stageWidth); // выдаст ошибку}
}

Старый 16.10.2007, 14:45
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 120  
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
У класса Stage нет статического свойства stageWidth.

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

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

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


 


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


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