Форум программистов, компьютерный форум, киберфорум
Наши страницы
ActionScript
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Челябинец
0 / 0 / 0
Регистрация: 03.02.2011
Сообщений: 1
1

Про область видимости

06.02.2011, 14:46. Просмотров 1013. Ответов 1
Метки нет (Все метки)

Пишу простенький вариант морского боя. Столкнулся с проблемой, что если создать объект в теле одной функции (локально), то в другой функции он будет недоступен. Вот код:

ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package  
{
    
    import flash.display.*;
    import flash.events.*;
    
    
    public class Game extends Sprite 
    {
        var square:Sprite = new Shoot();
        var field:Sprite = new FieldClass();
 
        public function Game() 
        {
            init();
        }
        
        public function init():void
        {
            var Razmer:int = 40;
            var StepX:int = Razmer;
            var StepY:int = Razmer;
            
            field.x = 50;
            field.y = 50;
            addChild(field);
            for (var a:int = 0; a < 5; a++)
            { 
                 for (var i:int = 0; i < 7; i++)
                {   
                    var square = new Square();
                    square.x = Razmer/2 + StepX - Razmer;
                    square.y = -Razmer/2 + StepY - Razmer+40;
                            field.addChild(square);
                    
                    square.addEventListener(MouseEvent.CLICK, opa);
                    StepX = StepX + Razmer;
                }
            StepY = StepY + Razmer;
            StepX = Razmer;
            }
            trace(field.numChildren);
            
            
        }
        
        private function opa (e:MouseEvent)
        {
            trace("Это поле номер " + field.getChildIndex(square));
            //trace(e.target.x + " " + e.target.y);
        }
    }
При компиляции выдается ошибка ну эту строчку trace("Это поле номер " + field.getChildIndex(square));
Пишет, что объект square не является наследником объекта field.
По-моему дело в том, что в фунrции Ора вызывается локальный объект square, созданный в функции init. Что можно сделать, чтобы объект, созданный в одной функции можно было использовать и в других?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.02.2011, 14:46
Ответы с готовыми решениями:

Область видимости функции
Добрый день! Есть класс, конструктор отрисовывает три кнопки, пытаюсь к событию Release привязать...

function функция get return область видимости возвращаемая переменная
просмотрел..почитал про видимость и про функции :) ...на сколько понимаю я функция bytesFoo()...

Теоретический про область видимости
Привет, есть мой &quot;класс&quot; и в нем метод который недоступен из вне, на него забиндин клик по div'у....

Вопрос про область видимости
День, добрый. В С++ можно использовать идентификатор некоторой области видимости, без...

Область видимости
func { int someVariable; { int someVariable; //можно ли как нибудь...

1
RaiderSk8
108 / 44 / 2
Регистрация: 27.10.2010
Сообщений: 206
06.02.2011, 21:26 2
делай так
ActionScript 3
1
trace("Это поле номер " + field.getChildIndex(e.target.valueOf()));
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.02.2011, 21:26

Область видимости в С++
В книге С++ Бархатный путь. (...

Область видимости
Есть код,полностью рабочий,но это-то мне и странно,ведь переменная i1 определена в функции p1(), а...

Область видимости
Подскажите пожалуйста. Два варианта программки: Вар1: using System; namespace...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru