Flex 4, пакеты и классы - PullRequest
       0

Flex 4, пакеты и классы

1 голос
/ 23 июня 2010

Может кто-нибудь помочь мне понять это, потому что он работает в as3, но не так много в flex, и я действительно не могу разобраться с этим. Я могу заставить его работать, изменив мою функцию на статическую, но я не хочу этого делать.

Хорошо, сначала я создал пакет

package testPackage
{
public class TestClass
{
    public function TestClass()
    {       
    }

    public function traceName(str:String):void
    {
        trace(str);
    }       
}
}

и затем я пытаюсь импортировать этот пакет и создать класс из этого

import testPackage.TestClass;

var getClass:TestClass = new TestClass();
getClass.traceName("hello");

Но я продолжаю получать сообщение об ошибке Доступ к неопределенному свойству getClass

1 Ответ

2 голосов
/ 23 июня 2010

Скорее всего, новые операторы TestClass () помещаются непосредственно в тело тега <fx:Script>.

Это не работает так во Flex.

Тег <fx:Script> должен содержать только определения операторов импорта, переменных и функций.Нет прямого кода времени выполнения.

Вам нужно поместить код инициализации класса в один из обработчиков событий flex. Вы можете начать с обработчика событий applicationComplete приложения.

Примерно так:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" creationComplete="creationCompleteHandler(event)"
               >
    <fx:Script>
        <![CDATA[
            import mx.events.FlexEvent;
            import testPackage.TestClass;

            // This doesn't work here
            // var getClass:TestClass = new TestClass();
            // getClass.traceName("hello");


            protected function creationCompleteHandler(event:FlexEvent):void
            {
                // it works here
                var getClass:TestClass = new TestClass();
                getClass.traceName("hello");
            }

        ]]>
    </fx:Script>
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
</s:Application>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...