Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   error 1061 (http://www.flasher.ru/forum/showthread.php?t=138231)

derhab 04.09.2010 18:19

Цитата:

Сообщение от in4core
...Что за бред ??? Сам понимаешь что написал?...

Цитата:

Сообщение от in4core
...даж я с минимальными знаниями ас3 и то понимаю...

Цитата:

Сообщение от in4core
хотя если ошибаюсь мне будет оч стыдно за свои слова

уже стыдно?)

in4core 05.09.2010 02:01

стыдно конечно) ну не суть. зато много полезного

gloomyBrain 05.09.2010 21:02

А мне не нравится кастовать по 2 раза. Достаточно вспомнить, что
Код AS3:

someObject as MovieClip

вернет null, если кастинг не прошел. Поэтому, чаще всего делаю так:
Код AS3:

var someClip:MovieClip = someObject as MovieClip
if(someClip != null) {
someClip.gotoAndStop("куда-то там");
}


etc 06.09.2010 17:17

gloomyBrain, достаточно if (someClip)

i.o. 06.09.2010 17:41

Цитата:

А мне не нравится кастовать по 2 раза. Поэтому, чаще всего делаю так:
Когда кастуется два раза, то не создается лишняя переменная. Если нужно откастовать экземпляр и вызвать у него один метод, то нет смысла создавть дополнительную переменную.
Если же необходимо вызвать много методов / свойств - то ваш вариант безусловно лучше.

gloomyBrain 06.09.2010 17:44

etc, спасибо =) но я в курсе. Привык так просто, вот и пишу

@i.o.
Кастинг несколько медленнее создания переменной.

etc 06.09.2010 18:01

gloomyBrain, гм, по моему быстрее или медленнее — это сущая мелочь.

goldlider 22.11.2011 20:17

Читал предыдущие посты, но не догнал такую вещь. В Flash IDE на основной шкале имеются мувики с вложенными кадрами. Класс WeaponDemo - это Document Class.

Код AS3:

package
{
        import flash.display.*;
 
        public class WeaponsDemo extends MovieClip
        {
                public function WeaponsDemo()
                {       
                        for (var i:int = 0; i < numChildren; i++)
                        {
                                if (getChildAt(i) is MovieClip)
                                {
                                        (getChildAt(i) as MovieClip).stop(); // Если не сделать кастинг, то в строгом режиме компилятор выдает ошибку "1061: Call to a possibly undefined method stop through a reference with static type flash.display:DisplayObject".
                                }
                        }
                }
        }
}

Ведь метод stop() яв-ся родным методом класса MovieClip. Почему же тогда приходится выполнять кастинг?

Stitch512 22.11.2011 20:25

Метод getChildAt возвращает DisplayObject, не обязательно MovitClip, это уже выше обсудили.

goldlider 22.11.2011 20:29

Цитата:

Сообщение от Stitch512 (Сообщение 1047597)
Метод getChildAt возвращает DisplayObject, не обязательно MovitClip, это уже выше обсудили.

Код AS3:

trace(getChildAt(i)) выводит [object MovieClip]



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

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