Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   данные из функции AS3 (http://www.flasher.ru/forum/showthread.php?t=211769)

exsites 06.11.2015 21:30

Вы мне на моем примере покажите, как можно это реализовать. Пока что я хоть убей не понимаю как. Вы мне пытаетесь что-то донести, но это так размыто что не понятно даже что вы несете...:-))

Zebestov 06.11.2015 21:34

Да вроде первые три комментария исчерпали тему. Мы уже так, между собой, не обращай внимания :)
Таки почитай Мука (сам не читал, его рекомендуют). Тогда и вопросы будут правильней, и ответы ясней.

ZackMercury 06.11.2015 21:35

Цитата:

Глобальные переменные зло.
По-видимому, вы концепцию не уловили. Но оно то и понятно, никак-таки вы новичок.
Без них не будет ничего.
Main, главный класс в данном случае есть глобальная переменная, как и все его свойства и свойства его детей, и свойства его глобальных переменных, и так далее в рекурсии.
Ежели пишете вы в кадрах - логика начинает биться в глухой кут.

Код в методах выполняет 2 функции - он отделяет код чисто логически, например, нужна нам функция для обновления размера сцены - пишем мы её, и второе, что он делает - это обрабатывает события.
Из обработчиков событий мы вызываем функции, отвечающие за определённую логическую часть, да, является сие отличной практикой.

Пожалуй, без примера сложно на словах всё показать наглядно.

exsites 06.11.2015 21:38

Вот поэтому и прошу, на моем примере покажите как это выглядит. Тогда быстрее понимание придет.

ZackMercury 06.11.2015 21:40

exsites, ваш код построен по принципам, понятным только вам, но есть и общепринятые нормы формирования красивого кода.
Поэтому дайте какую-то задачу, и вам дадут пример решения.

Zebestov 06.11.2015 21:43

Цитата:

Сообщение от exsites (Сообщение 1188743)
Вот поэтому и прошу, на моем примере покажите как это выглядит. Тогда быстрее понимание придет.

Нет, не придет. Быстрее будет прочитать Мука.

exsites 06.11.2015 21:47

Цитата:

Сообщение от ZackMercury (Сообщение 1188744)
Поэтому дайте какую-то задачу, и вам дадут пример решения.

Вот код, не могу найти решение, помогите. Дайте решение.
Цитата:

Сообщение от Zebestov (Сообщение 1188745)
Нет, не придет. Быстрее будет прочитать Мука.

У меня даже книжки нет.

Вообщем вы не знаете как решить сию задачу.
Воды налили, умных слов наговорили, а дальше в сад:-)))

Zebestov 06.11.2015 21:49

Цитата:

Сообщение от exsites (Сообщение 1188746)
У меня даже книжки нет.

…даже в этом случае быстрее будет Мука прочитать ;)

exsites 06.11.2015 22:00

Хватит флудить, про Мука я уже услышал. Есть решение, пишите, нет дасвидания.

Psycho Tiger 06.11.2015 23:38

По идее вот этот код должен работать. Ведь обе желаемые переменные объявлены в скоупе выше.

Цитата:

Глобальные переменные зло.
Цитата:

По-видимому, вы концепцию не уловили. Но оно то и понятно, никак-таки вы новичок.
Main, главный класс в данном случае есть глобальная переменная,
Ну... Вообще то exsites прав :) А вот ты нет.
Main, что главный класс не является переменной. Как и любой класс это константа (класс-переменная... это за гранью). Не знаю, существует ли вообще в каком-либое языке с настоящими ООП классами возможность иметь переменный класс, но знаю, что это будет явно плохой затеей. Прикидываю в голове, а что если это созданные метапрограммированием классы в рантайме, чтобы как-то снизить количество шаблонного кода? Ну, даже в этом случае это константы.

Глобальные переменные это плохо. Глобальные константы – это нормально (или хорошо). Любая глобальная переменная – это неявная внешняя зависимость. Такой код сложно тестировать и сложнее поддерживать. Чем меньше зависимостей (тем более неявных), тем функции/методы ближе к pure-функциям. Конечно, полностью абстрагироваться нельзя и так или иначе иногда глобальная переменная может быть нужна, но следует понимать что это архитектурная проблема. Избегайте этого по возможности.

Цитата:

Но здесь-то не тот случай. Здесь имеется пользователь, которому надо что-то насвистывать, пока что-то грузится. Это же тебе не PHP, где все процессы и так фоновые и пользователю пабарабану, что весь код скрипта ждет, пока что-то куда-то загрузится, пользователь ждет конечного результата в той или иной форме, тупо втыкая в экран.
Ну, конечно ) Было бы вообще странно если в однопотоковом языке были блокирущие команды. Но для недавно пришедшего человека (впрочем, для любого) такой код
Код AS3:

var images:Array = ['path/image1.png', 'path/image2.png', 'path/image3.png'];
var loaded:Array = [];
for (var path:String in images) {
  loaded.push(loadImage(path));
}
 
// all images are loaded!

Был бы сильно понятней и читаемей, чем какой-то хэндлер onComplete, который считает количество загруженных и общих и что-то там потом вызывает в другом конце файла. Конечно, в случае если так было бы можно – были бы и нормальные пользовательские потоки и можно было бы сделать, например, вот так:
Код:

thread {
  // code from above
  thread.join(main);
}

(почти) Линейный код, который легко читать, легко поддерживать и легко написать.
Кстати, не могу не отметить что именно такой код было бы просто тестировать.
Код:

// pseudo test
var instance:Something = new Something();
instance.loadImages();
expect(instance.loaded.length).to(eq(3));

И представь себе тест, который тебе приходится писать? Я никогда не тестировал во флеше, но, предполагаю, что придётся много stub'ить и вызывать некоторый #flush застабленным реквестам чтобы поддерживать ассинхронную архитектуру. (к слову, так и живём с JS'ом).

Мне очень нравится Event система, но с другой стороны я разделяю недоумение новопришедших людей по поводу её недостатков.


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

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