|
|
|||||
подскажите пожалуйста такой момент.
У меня на главной сцене есть несколько предметов, им даны разные имена. Я гружу XML в котором содержатся эти имена (таким образом нахожу для кода нужные предметы) но бывает либо опечатка редактора либо просто звёзды не так встали и в XML кто то написал название несуществующего предмета. короче возникает ошибка ReferenceError: Error #1069: Property ovoshi3 not found on kitchen and there is no default value. как мне проверить существует ли такой предмет по имени? я делаю это так - но почему то не срабатывает |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
hasOwnProperty
|
|
|||||
спасибо!!! *__*
|
|
|||||
может есть смысл прикрепить эту тему?
а то я частенько её кидаю своим подаванцам , а искать её всё сложнее |
|
|||||
спасибо что прикрепили - реально помогает!
у меня тут новая трудность - немогу решить. ситуация такова. есть один единственный 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 Т_Т |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Ну правильно выдает false.
Во-первых, ты передаешь не строковое значение в hasOwnProperty. Во-вторых, для того, чтобы определить, есть ли класс, можно использовать loaderInfo.applicationDomain.hasDefinition(). |
|
|||||
а hasOwnProperty - на какие свойства работает? я так понял на классы нет - потому что так тоже не пашет
trace (this.hasOwnProperty('bread')); // выдаёт false Оо спасибо - this.loaderInfo.applicationDomain.hasDefinition('bread') - прикрасно заработал. а ещё я вспомнил метод молотка и мата на любой случай жизни ) это обычный try =)) вот ещё вопрос - могу ли я как нибудь из конструктора любого класса или подкласса - получить свойства основного класса или главного Stage, без переносса ссылок ? т.е. мне например хочется узнать из под-под-под.... класса Stage.stageWidth для ресайза... или добавить общий клик. можно ли как то обойти перенос ссылок с помощью переменных? |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Естесственно, у this нет свойства bread.
Остальное не понял. |
|
|||||
есть основной класс
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); // выдаст ошибку} } |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
У класса Stage нет статического свойства stageWidth.
|
Часовой пояс GMT +4, время: 09:27. |
|
« Предыдущая тема | Следующая тема » |
|
|